feat: show text if emote failed to load (#6355)

This commit is contained in:
nerix
2025-07-26 12:24:56 +02:00
committed by GitHub
parent 32c927d084
commit cd7b710d94
26 changed files with 47 additions and 1025 deletions
+1
View File
@@ -49,6 +49,7 @@
- Bugfix: Fixed eventsub message delete notifications not being affected by "Show deletions of single messages". (#6233)
- Bugfix: Don't add reply buttons to messages that are invalid reply targets. (#6119)
- Bugfix: Fixed invalid commands from being forwarded to Helix, making it possible for information to leak (e.g. if you typed `/bann username ban reason` it would be seen by others in chat as `username ban reason`). (#6272, #6330)
- Bugfix: Emotes that failed to load their images now show as text. (#6355)
- Bugfix: Fixed a crash that occurs when searching for emotes in channel-less contexts. (#6357)
- Dev: Mini refactor of Split. (#6148)
- Dev: Conan will no longer generate a `CMakeUserPresets.json` file. (#6117)
+41 -21
View File
@@ -181,11 +181,9 @@ QJsonObject CircularImageElement::toJson() const
EmoteElement::EmoteElement(const EmotePtr &emote, MessageElementFlags flags,
const MessageColor &textElementColor)
: MessageElement(flags)
, textColor_(textElementColor)
, emote_(emote)
{
this->textElement_.reset(new TextElement(
emote->getCopyString(), MessageElementFlag::Misc, textElementColor));
this->setTooltip(emote->tooltip.string);
}
@@ -197,33 +195,38 @@ EmotePtr EmoteElement::getEmote() const
void EmoteElement::addToContainer(MessageLayoutContainer &container,
const MessageLayoutContext &ctx)
{
if (ctx.flags.hasAny(this->getFlags()))
if (ctx.flags.hasNone(this->getFlags()))
{
if (ctx.flags.has(MessageElementFlag::EmoteImages))
{
auto image = this->emote_->images.getImageOrLoaded(
container.getImageScale());
if (image->isEmpty())
{
return;
}
return;
}
if (ctx.flags.has(MessageElementFlag::EmoteImages))
{
auto image =
this->emote_->images.getImageOrLoaded(container.getImageScale());
if (image->isEmpty())
{
this->ensureText(true);
}
else
{
auto emoteScale = getSettings()->emoteScale.getValue();
auto size = image->size() * container.getScale() * emoteScale;
container.addElement(this->makeImageLayoutElement(image, size));
}
else
{
if (this->textElement_)
{
auto textCtx = ctx;
textCtx.flags = MessageElementFlag::Misc;
this->textElement_->addToContainer(container, textCtx);
}
return;
}
}
else
{
this->ensureText(false);
}
auto textCtx = ctx;
textCtx.flags = MessageElementFlag::Misc;
this->textElement_->addToContainer(container, textCtx);
}
MessageLayoutElement *EmoteElement::makeImageLayoutElement(
@@ -232,6 +235,23 @@ MessageLayoutElement *EmoteElement::makeImageLayoutElement(
return new ImageLayoutElement(*this, image, size);
}
void EmoteElement::ensureText(bool asFallback)
{
if (this->textElement_ && asFallback == this->usingFallbackColor_)
{
return;
}
auto color = this->textColor_;
if (asFallback)
{
color = MessageColor::System;
}
this->textElement_ = std::make_unique<TextElement>(
this->emote_->getCopyString(), MessageElementFlag::Misc, color);
this->usingFallbackColor_ = asFallback;
}
QJsonObject EmoteElement::toJson() const
{
auto base = MessageElement::toJson();
+5
View File
@@ -397,7 +397,12 @@ protected:
QSizeF size);
private:
void ensureText(bool asFallback);
std::unique_ptr<TextElement> textElement_;
MessageColor textColor_;
bool usingFallbackColor_ = false;
EmotePtr emote_;
};
@@ -144,21 +144,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "#ffcc44ff",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"Kappa"
]
},
"tooltip": "Kappa<br>Twitch Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -112,21 +112,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"Kappa"
]
},
"tooltip": "Kappa Tooltip",
"trailingSpace": true,
"type": "EmoteElement"
@@ -112,21 +112,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"Kappa"
]
},
"tooltip": "Kappa Tooltip",
"trailingSpace": true,
"type": "EmoteElement"
@@ -113,22 +113,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"cheer",
"emote"
]
},
"tooltip": "Cheer1<br>Twitch Cheer Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -148,22 +132,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"cheer",
"emote"
]
},
"tooltip": "Cheer1<br>Twitch Cheer Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -213,22 +181,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"cheer",
"emote"
]
},
"tooltip": "Cheer1<br>Twitch Cheer Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -248,22 +200,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"cheer",
"emote"
]
},
"tooltip": "Cheer1<br>Twitch Cheer Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -298,22 +234,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"cheer",
"emote"
]
},
"tooltip": "Cheer1<br>Twitch Cheer Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -333,22 +253,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"cheer",
"emote"
]
},
"tooltip": "Cheer1<br>Twitch Cheer Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -383,22 +287,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"cheer",
"emote"
]
},
"tooltip": "Cheer1<br>Twitch Cheer Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -418,22 +306,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"cheer",
"emote"
]
},
"tooltip": "Cheer1<br>Twitch Cheer Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -468,22 +340,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"cheer",
"emote"
]
},
"tooltip": "Cheer1<br>Twitch Cheer Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -503,22 +359,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"cheer",
"emote"
]
},
"tooltip": "Cheer1<br>Twitch Cheer Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -113,22 +113,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"cheer",
"emote"
]
},
"tooltip": "Cheer1<br>Twitch Cheer Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -148,22 +132,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"cheer",
"emote"
]
},
"tooltip": "Cheer1<br>Twitch Cheer Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -113,22 +113,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"cheer",
"emote"
]
},
"tooltip": "Cheer1<br>Twitch Cheer Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -148,22 +132,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"cheer",
"emote"
]
},
"tooltip": "Cheer1<br>Twitch Cheer Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -144,21 +144,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"Kappa"
]
},
"tooltip": "Kappa<br>Twitch Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -176,21 +161,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"😂"
]
},
"tooltip": ":joy:<br/>Emoji",
"trailingSpace": true,
"type": "EmoteElement"
@@ -210,21 +180,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"Kappa"
]
},
"tooltip": "Kappa<br>Twitch Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -112,21 +112,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"Keepo"
]
},
"tooltip": "Keepo<br>Twitch Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -112,21 +112,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"Kappa"
]
},
"tooltip": "Kappa<br>Twitch Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -146,21 +131,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"Keepo"
]
},
"tooltip": "Keepo<br>Twitch Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -180,21 +150,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"PogChamp"
]
},
"tooltip": "PogChamp<br>Twitch Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -94,21 +94,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"BTTVEmote"
]
},
"tooltip": "BTTVEmote Tooltip",
"trailingSpace": true,
"type": "EmoteElement"
@@ -128,21 +113,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"Kappa"
]
},
"tooltip": "Kappa<br>Twitch Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -235,21 +205,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"😂"
]
},
"tooltip": ":joy:<br/>Emoji",
"trailingSpace": true,
"type": "EmoteElement"
@@ -267,21 +222,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"😂"
]
},
"tooltip": ":joy:<br/>Emoji",
"trailingSpace": true,
"type": "EmoteElement"
@@ -301,21 +241,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"PogChamp"
]
},
"tooltip": "PogChamp<br>Twitch Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -336,21 +261,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"7TVGlobal"
]
},
"tooltip": "7TVGlobal Tooltip",
"trailingSpace": true,
"type": "EmoteElement"
@@ -370,21 +280,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"Keepo"
]
},
"tooltip": "Keepo<br>Twitch Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -404,21 +299,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"FFZEmote"
]
},
"tooltip": "FFZEmote Tooltip",
"trailingSpace": true,
"type": "EmoteElement"
@@ -438,21 +318,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"FFZGlobal"
]
},
"tooltip": "FFZGlobal Tooltip",
"trailingSpace": true,
"type": "EmoteElement"
@@ -92,21 +92,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"😂"
]
},
"tooltip": ":joy:<br/>Emoji",
"trailingSpace": true,
"type": "EmoteElement"
@@ -126,21 +111,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"Kappa"
]
},
"tooltip": "Kappa<br>Twitch Emote",
"trailingSpace": false,
"type": "EmoteElement"
@@ -158,21 +128,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"😂"
]
},
"tooltip": ":joy:<br/>Emoji",
"trailingSpace": true,
"type": "EmoteElement"
@@ -207,21 +162,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"Kappa"
]
},
"tooltip": "Kappa<br>Twitch Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -92,21 +92,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"f"
]
},
"tooltip": "f<br>Twitch Emote",
"trailingSpace": false,
"type": "EmoteElement"
@@ -92,21 +92,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"fo"
]
},
"tooltip": "fo<br>Twitch Emote",
"trailingSpace": false,
"type": "EmoteElement"
@@ -114,21 +114,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"Kappa"
]
},
"tooltip": "Kappa<br>Twitch Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -94,21 +94,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"PogChamp"
]
},
"tooltip": "PogChamp<br>Twitch Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -143,21 +128,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"Kappa"
]
},
"tooltip": "Kappa<br>Twitch Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -192,21 +162,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"Keepo"
]
},
"tooltip": "Keepo<br>Twitch Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -247,21 +202,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"Kappa"
]
},
"tooltip": "Kappa<br>Twitch Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -298,21 +238,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"MyCoolTwitchEmote"
]
},
"tooltip": "MyCoolTwitchEmote Tooltip",
"trailingSpace": true,
"type": "EmoteElement"
@@ -119,21 +119,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"Kreygasm"
]
},
"tooltip": "Kreygasm<br>Twitch Emote",
"trailingSpace": false,
"type": "EmoteElement"
@@ -168,21 +153,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"Kreygasm"
]
},
"tooltip": "Kreygasm<br>Twitch Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -92,21 +92,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"Kappa"
]
},
"tooltip": "Kappa Tooltip",
"trailingSpace": true,
"type": "EmoteElement"
@@ -94,21 +94,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"BTTVGlobal"
]
},
"tooltip": "BTTVGlobal Tooltip",
"trailingSpace": true,
"type": "EmoteElement"
@@ -143,21 +128,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
":)"
]
},
"tooltip": ":)<br>Twitch Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -169,21 +169,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"Keepo"
]
},
"tooltip": "Keepo<br>Twitch Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -203,21 +188,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"FFZEmote"
]
},
"tooltip": "FFZEmote Tooltip",
"trailingSpace": true,
"type": "EmoteElement"
@@ -235,21 +205,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"😭"
]
},
"tooltip": ":sob:<br/>Emoji",
"trailingSpace": true,
"type": "EmoteElement"
@@ -84,21 +84,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"MyBitsEmote"
]
},
"tooltip": "MyBitsEmote<br>Twitch Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -95,21 +95,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"7TVEmote"
]
},
"tooltip": "7TVEmote Tooltip",
"trailingSpace": true,
"type": "EmoteElement"
@@ -129,21 +114,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"Kappa"
]
},
"tooltip": "Kappa<br>Twitch Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -180,21 +150,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"7TVEmote"
]
},
"tooltip": "7TVEmote Tooltip",
"trailingSpace": true,
"type": "EmoteElement"
@@ -212,21 +167,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"❤️"
]
},
"tooltip": ":heart:<br/>Emoji",
"trailingSpace": true,
"type": "EmoteElement"
@@ -112,21 +112,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"Kappa"
]
},
"tooltip": "Kappa<br>Twitch Emote",
"trailingSpace": true,
"type": "EmoteElement"
@@ -161,21 +146,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"BTTVGlobal"
]
},
"tooltip": "BTTVGlobal Tooltip",
"trailingSpace": true,
"type": "EmoteElement"
@@ -211,21 +181,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"7TVGlobal"
]
},
"tooltip": "7TVGlobal Tooltip",
"trailingSpace": true,
"type": "EmoteElement"
@@ -260,21 +215,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"FFZGlobal"
]
},
"tooltip": "FFZGlobal Tooltip",
"trailingSpace": true,
"type": "EmoteElement"
@@ -294,21 +234,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"BTTVTwitchDev"
]
},
"tooltip": "BTTVTwitchDev Tooltip",
"trailingSpace": true,
"type": "EmoteElement"
@@ -329,21 +254,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"7TVTwitchDev"
]
},
"tooltip": "7TVTwitchDev Tooltip",
"trailingSpace": true,
"type": "EmoteElement"
@@ -363,21 +273,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"FFZTwitchDev"
]
},
"tooltip": "FFZTwitchDev Tooltip",
"trailingSpace": true,
"type": "EmoteElement"
@@ -114,21 +114,6 @@
"type": "None",
"value": ""
},
"text": {
"color": "Text",
"flags": "Misc",
"link": {
"type": "None",
"value": ""
},
"style": "ChatMedium",
"tooltip": "",
"trailingSpace": true,
"type": "TextElement",
"words": [
"Kappa"
]
},
"tooltip": "Kappa<br>Twitch Emote",
"trailingSpace": true,
"type": "EmoteElement"