feat(plugins): add basic message construction (#5754)
This commit is contained in:
Vendored
+208
@@ -57,6 +57,12 @@ declare namespace c2 {
|
||||
|
||||
add_system_message(message: string): void;
|
||||
|
||||
add_message(
|
||||
message: Message,
|
||||
context?: MessageContext,
|
||||
override_flags?: MessageFlag | null
|
||||
): void;
|
||||
|
||||
is_twitch_channel(): boolean;
|
||||
|
||||
get_room_modes(): RoomModes;
|
||||
@@ -152,4 +158,206 @@ declare namespace c2 {
|
||||
) => WebSocket;
|
||||
}
|
||||
var WebSocket: WebSocketConstructor;
|
||||
|
||||
interface Message {
|
||||
__dummy: void; // avoid being an empty interface
|
||||
}
|
||||
interface MessageConstructor {
|
||||
new: (this: void, init: MessageInit) => Message;
|
||||
}
|
||||
var Message: MessageConstructor;
|
||||
|
||||
interface MessageInit {
|
||||
flags?: MessageFlag;
|
||||
id?: string;
|
||||
parse_time?: number;
|
||||
search_text?: string;
|
||||
message_text?: string;
|
||||
login_name?: string;
|
||||
display_name?: string;
|
||||
localized_name?: string;
|
||||
user_id?: string;
|
||||
channel_name?: string;
|
||||
username_color?: string;
|
||||
server_received_time?: number;
|
||||
highlight_color?: string | null;
|
||||
elements?: MessageElementInit[];
|
||||
}
|
||||
|
||||
interface MessageElementInitBase {
|
||||
tooltip?: string;
|
||||
trailing_space?: boolean;
|
||||
}
|
||||
|
||||
type MessageColor = "text" | "link" | "system" | string;
|
||||
|
||||
type MessageElementInit =
|
||||
| TextElementInit
|
||||
| SingleLineTextElementInit
|
||||
| MentionElementInit
|
||||
| TimestampElementInit
|
||||
| TwitchModerationElementInit
|
||||
| LinebreakElementInit
|
||||
| ReplyCurveElementInit;
|
||||
|
||||
interface TextElementInit extends MessageElementInitBase {
|
||||
type: "text";
|
||||
text: string;
|
||||
flags?: MessageElementFlag;
|
||||
color?: MessageColor;
|
||||
style?: FontStyle;
|
||||
}
|
||||
|
||||
interface SingleLineTextElementInit extends MessageElementInitBase {
|
||||
type: "single-line-text";
|
||||
text: string;
|
||||
flags?: MessageElementFlag;
|
||||
color?: MessageColor;
|
||||
style?: FontStyle;
|
||||
}
|
||||
|
||||
interface MentionElementInit extends MessageElementInitBase {
|
||||
type: "mention";
|
||||
display_name: string;
|
||||
login_name: string;
|
||||
fallback_color: MessageColor;
|
||||
user_color: MessageColor;
|
||||
}
|
||||
|
||||
interface TimestampElementInit extends MessageElementInitBase {
|
||||
type: "timestamp";
|
||||
time?: number;
|
||||
}
|
||||
|
||||
interface TwitchModerationElementInit extends MessageElementInitBase {
|
||||
type: "twitch-moderation";
|
||||
}
|
||||
|
||||
interface LinebreakElementInit extends MessageElementInitBase {
|
||||
type: "linebreak";
|
||||
flags?: MessageElementFlag;
|
||||
}
|
||||
|
||||
interface ReplyCurveElementInit extends MessageElementInitBase {
|
||||
type: "reply-curve";
|
||||
}
|
||||
|
||||
enum MessageFlag {
|
||||
None = 0,
|
||||
System = 0,
|
||||
Timeout = 0,
|
||||
Highlighted = 0,
|
||||
DoNotTriggerNotification = 0,
|
||||
Centered = 0,
|
||||
Disabled = 0,
|
||||
DisableCompactEmotes = 0,
|
||||
Collapsed = 0,
|
||||
ConnectedMessage = 0,
|
||||
DisconnectedMessage = 0,
|
||||
Untimeout = 0,
|
||||
PubSub = 0,
|
||||
Subscription = 0,
|
||||
DoNotLog = 0,
|
||||
AutoMod = 0,
|
||||
RecentMessage = 0,
|
||||
Whisper = 0,
|
||||
HighlightedWhisper = 0,
|
||||
Debug = 0,
|
||||
Similar = 0,
|
||||
RedeemedHighlight = 0,
|
||||
RedeemedChannelPointReward = 0,
|
||||
ShowInMentions = 0,
|
||||
FirstMessage = 0,
|
||||
ReplyMessage = 0,
|
||||
ElevatedMessage = 0,
|
||||
SubscribedThread = 0,
|
||||
CheerMessage = 0,
|
||||
LiveUpdatesAdd = 0,
|
||||
LiveUpdatesRemove = 0,
|
||||
LiveUpdatesUpdate = 0,
|
||||
AutoModOffendingMessageHeader = 0,
|
||||
AutoModOffendingMessage = 0,
|
||||
LowTrustUsers = 0,
|
||||
RestrictedMessage = 0,
|
||||
MonitoredMessage = 0,
|
||||
Action = 0,
|
||||
SharedMessage = 0,
|
||||
AutoModBlockedTerm = 0,
|
||||
ClearChat = 0,
|
||||
EventSub = 0,
|
||||
ModerationAction = 0,
|
||||
InvalidReplyTarget = 0,
|
||||
}
|
||||
|
||||
enum MessageElementFlag {
|
||||
None = 0,
|
||||
Misc = 0,
|
||||
Text = 0,
|
||||
Username = 0,
|
||||
Timestamp = 0,
|
||||
TwitchEmoteImage = 0,
|
||||
TwitchEmoteText = 0,
|
||||
TwitchEmote = 0,
|
||||
BttvEmoteImage = 0,
|
||||
BttvEmoteText = 0,
|
||||
BttvEmote = 0,
|
||||
ChannelPointReward = 0,
|
||||
ChannelPointRewardImage = 0,
|
||||
FfzEmoteImage = 0,
|
||||
FfzEmoteText = 0,
|
||||
FfzEmote = 0,
|
||||
SevenTVEmoteImage = 0,
|
||||
SevenTVEmoteText = 0,
|
||||
SevenTVEmote = 0,
|
||||
EmoteImages = 0,
|
||||
EmoteText = 0,
|
||||
BitsStatic = 0,
|
||||
BitsAnimated = 0,
|
||||
BadgeSharedChannel = 0,
|
||||
BadgeGlobalAuthority = 0,
|
||||
BadgePredictions = 0,
|
||||
BadgeChannelAuthority = 0,
|
||||
BadgeSubscription = 0,
|
||||
BadgeVanity = 0,
|
||||
BadgeChatterino = 0,
|
||||
BadgeSevenTV = 0,
|
||||
BadgeFfz = 0,
|
||||
Badges = 0,
|
||||
ChannelName = 0,
|
||||
BitsAmount = 0,
|
||||
ModeratorTools = 0,
|
||||
EmojiImage = 0,
|
||||
EmojiText = 0,
|
||||
EmojiAll = 0,
|
||||
AlwaysShow = 0,
|
||||
Collapsed = 0,
|
||||
Mention = 0,
|
||||
LowercaseLinks = 0,
|
||||
RepliedMessage = 0,
|
||||
ReplyButton = 0,
|
||||
Default = 0,
|
||||
}
|
||||
|
||||
enum FontStyle {
|
||||
Tiny,
|
||||
ChatSmall,
|
||||
ChatMediumSmall,
|
||||
ChatMedium,
|
||||
ChatMediumBold,
|
||||
ChatMediumItalic,
|
||||
ChatLarge,
|
||||
ChatVeryLarge,
|
||||
TimestampMedium,
|
||||
UiMedium,
|
||||
UiMediumBold,
|
||||
UiTabs,
|
||||
EndType,
|
||||
ChatStart,
|
||||
ChatEnd,
|
||||
}
|
||||
|
||||
enum MessageContext {
|
||||
Original,
|
||||
Repost,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user