mirror of
https://github.com/Equicord/Equicord.git
synced 2025-06-29 08:24:26 -04:00
FakeNitro: fix crash when embed.url is undefined (#3510)
This commit is contained in:
parent
658a62860e
commit
9b24535d44
1 changed files with 27 additions and 21 deletions
|
@ -671,32 +671,38 @@ export default definePlugin({
|
||||||
},
|
},
|
||||||
|
|
||||||
shouldIgnoreEmbed(embed: Message["embeds"][number], message: Message) {
|
shouldIgnoreEmbed(embed: Message["embeds"][number], message: Message) {
|
||||||
const contentItems = message.content.split(/\s/);
|
try {
|
||||||
if (contentItems.length > 1 && !settings.store.transformCompoundSentence) return false;
|
const contentItems = message.content.split(/\s/);
|
||||||
|
if (contentItems.length > 1 && !settings.store.transformCompoundSentence) return false;
|
||||||
|
|
||||||
switch (embed.type) {
|
switch (embed.type) {
|
||||||
case "image": {
|
case "image": {
|
||||||
if (
|
const url = embed.url ?? embed.image?.url;
|
||||||
!settings.store.transformCompoundSentence
|
if (!url) return false;
|
||||||
&& !contentItems.some(item => item === embed.url! || item.match(hyperLinkRegex)?.[1] === embed.url!)
|
if (
|
||||||
) return false;
|
!settings.store.transformCompoundSentence
|
||||||
|
&& !contentItems.some(item => item === url || item.match(hyperLinkRegex)?.[1] === url)
|
||||||
|
) return false;
|
||||||
|
|
||||||
if (settings.store.transformEmojis) {
|
if (settings.store.transformEmojis) {
|
||||||
if (fakeNitroEmojiRegex.test(embed.url!)) return true;
|
if (fakeNitroEmojiRegex.test(url)) return true;
|
||||||
}
|
|
||||||
|
|
||||||
if (settings.store.transformStickers) {
|
|
||||||
if (fakeNitroStickerRegex.test(embed.url!)) return true;
|
|
||||||
|
|
||||||
const gifMatch = embed.url!.match(fakeNitroGifStickerRegex);
|
|
||||||
if (gifMatch) {
|
|
||||||
// There is no way to differentiate a regular gif attachment from a fake nitro animated sticker, so we check if the StickerStore contains the id of the fake sticker
|
|
||||||
if (StickerStore.getStickerById(gifMatch[1])) return true;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
if (settings.store.transformStickers) {
|
||||||
|
if (fakeNitroStickerRegex.test(url)) return true;
|
||||||
|
|
||||||
|
const gifMatch = url.match(fakeNitroGifStickerRegex);
|
||||||
|
if (gifMatch) {
|
||||||
|
// There is no way to differentiate a regular gif attachment from a fake nitro animated sticker, so we check if the StickerStore contains the id of the fake sticker
|
||||||
|
if (StickerStore.getStickerById(gifMatch[1])) return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} catch (e) {
|
||||||
|
new Logger("FakeNitro").error("Error in shouldIgnoreEmbed:", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue