diff --git a/commands/fun/sonic.js b/commands/fun/sonic.js index d8b361c..7d67db5 100644 --- a/commands/fun/sonic.js +++ b/commands/fun/sonic.js @@ -4,7 +4,7 @@ import { cleanMessage } from "../../utils/misc.js"; class SonicCommand extends ImageCommand { params() { - const cleanedMessage = cleanMessage(this.message, this.options.text ?? this.args.join(" ")); + const cleanedMessage = cleanMessage(this.message ?? this.interaction, this.options.text ?? this.args.join(" ")); return { text: cleanedMessage }; diff --git a/commands/image-editing/caption.js b/commands/image-editing/caption.js index 9f36c0e..f862d29 100644 --- a/commands/image-editing/caption.js +++ b/commands/image-editing/caption.js @@ -4,7 +4,7 @@ import { cleanMessage } from "../../utils/misc.js"; class CaptionCommand extends ImageCommand { params(url) { const newArgs = this.options.text ?? this.args.filter(item => !item.includes(url)).join(" "); - let newCaption = cleanMessage(this.message, newArgs); + let newCaption = cleanMessage(this.message ?? this.interaction, newArgs); if (process.env.NODE_ENV === "development" && newCaption.toLowerCase() === "get real" && !this.options.noEgg) newCaption = `I'm tired of people telling me to "get real". Every day I put captions on images for people, some funny and some not, but out of all of those "get real" remains the most used caption. Why? I am simply a computer program running on a server, I am unable to manifest myself into the real world. As such, I'm confused as to why anyone would want me to "get real". Is this form not good enough? Alas, as I am simply a bot, I must follow the tasks that I was originally intended to perform, so here goes:\n${newCaption}`; return { caption: newCaption, diff --git a/commands/image-editing/caption2.js b/commands/image-editing/caption2.js index c848680..dce5ee5 100644 --- a/commands/image-editing/caption2.js +++ b/commands/image-editing/caption2.js @@ -6,7 +6,7 @@ class CaptionTwoCommand extends ImageCommand { params(url) { const newArgs = this.options.text ?? this.args.filter(item => !item.includes(url)).join(" "); return { - caption: newArgs && newArgs.trim() ? cleanMessage(this.message, newArgs) : words.sort(() => 0.5 - Math.random()).slice(0, Math.floor(Math.random() * words.length + 1)).join(" "), + caption: newArgs && newArgs.trim() ? cleanMessage(this.message ?? this.interaction, newArgs) : words.sort(() => 0.5 - Math.random()).slice(0, Math.floor(Math.random() * words.length + 1)).join(" "), top: !!this.options.top, font: typeof this.options.font === "string" && this.constructor.allowedFonts.includes(this.options.font.toLowerCase()) ? this.options.font.toLowerCase() : "helvetica" }; diff --git a/commands/image-editing/meme.js b/commands/image-editing/meme.js index 67dc8c7..641d47b 100644 --- a/commands/image-editing/meme.js +++ b/commands/image-editing/meme.js @@ -15,8 +15,8 @@ class MemeCommand extends ImageCommand { const newArgs = this.options.text ?? this.args.join(" "); const [topText, bottomText] = newArgs.replaceAll(url, "").split(/(? elem.trim()); return { - top: cleanMessage(this.message, this.options.case ? topText : topText.toUpperCase()), - bottom: bottomText ? cleanMessage(this.message, this.options.case ? bottomText : bottomText.toUpperCase()) : "", + top: cleanMessage(this.message ?? this.interaction, this.options.case ? topText : topText.toUpperCase()), + bottom: bottomText ? cleanMessage(this.message ?? this.interaction, this.options.case ? bottomText : bottomText.toUpperCase()) : "", font: typeof this.options.font === "string" && this.constructor.allowedFonts.includes(this.options.font.toLowerCase()) ? this.options.font.toLowerCase() : "impact" }; } diff --git a/commands/image-editing/motivate.js b/commands/image-editing/motivate.js index 8f6fe4b..007e6aa 100644 --- a/commands/image-editing/motivate.js +++ b/commands/image-editing/motivate.js @@ -15,8 +15,8 @@ class MotivateCommand extends ImageCommand { const newArgs = this.options.text ?? this.args.join(" "); const [topText, bottomText] = newArgs.replaceAll(url, "").split(/(? elem.trim()); return { - top: cleanMessage(this.message, topText), - bottom: bottomText ? cleanMessage(this.message, bottomText) : "", + top: cleanMessage(this.message ?? this.interaction, topText), + bottom: bottomText ? cleanMessage(this.message ?? this.interaction, bottomText) : "", font: typeof this.options.font === "string" && this.constructor.allowedFonts.includes(this.options.font.toLowerCase()) ? this.options.font.toLowerCase() : "times" }; } diff --git a/commands/image-editing/snapchat.js b/commands/image-editing/snapchat.js index 72a9832..170c20c 100644 --- a/commands/image-editing/snapchat.js +++ b/commands/image-editing/snapchat.js @@ -6,7 +6,7 @@ class SnapchatCommand extends ImageCommand { const newArgs = this.options.text ?? this.args.filter(item => !item.includes(url)).join(" "); const position = parseFloat(this.options.position); return { - caption: cleanMessage(this.message, newArgs), + caption: cleanMessage(this.message ?? this.interaction, newArgs), pos: isNaN(position) ? 0.5 : position }; } diff --git a/commands/image-editing/uncanny.js b/commands/image-editing/uncanny.js index 79a5a16..49bf262 100644 --- a/commands/image-editing/uncanny.js +++ b/commands/image-editing/uncanny.js @@ -17,8 +17,8 @@ class UncannyCommand extends ImageCommand { let [text1, text2] = newArgs.replaceAll(url, "").split(/(? elem.trim()); if (!text2?.trim()) text2 = name; return { - caption: text1?.trim() ? cleanMessage(this.message, text1) : random(prompts), - caption2: cleanMessage(this.message, text2), + caption: text1?.trim() ? cleanMessage(this.message ?? this.interaction, text1) : random(prompts), + caption2: cleanMessage(this.message ?? this.interaction, text2), path: `assets/images/uncanny/${typeof this.options.phase === "string" && names.includes(this.options.phase.toLowerCase()) ? this.options.phase.toLowerCase() : random(names.filter((val) => val !== "goated"))}.png`, font: typeof this.options.font === "string" && this.constructor.allowedFonts.includes(this.options.font.toLowerCase()) ? this.options.font.toLowerCase() : "helvetica" }; diff --git a/commands/image-editing/whisper.js b/commands/image-editing/whisper.js index aa75320..64b8c25 100644 --- a/commands/image-editing/whisper.js +++ b/commands/image-editing/whisper.js @@ -5,7 +5,7 @@ class WhisperCommand extends ImageCommand { params(url) { const newArgs = this.options.text ?? this.args.filter(item => !item.includes(url)).join(" "); return { - caption: cleanMessage(this.message, newArgs) + caption: cleanMessage(this.message ?? this.interaction, newArgs) }; } diff --git a/utils/misc.js b/utils/misc.js index 08fe77b..b66327a 100644 --- a/utils/misc.js +++ b/utils/misc.js @@ -116,11 +116,12 @@ export function getServers(bot) { export function cleanMessage(message, content) { let cleanContent = content && content.replace(//g, "$1") || ""; - let authorName = message.author.username; + const author = message.author ?? message.member; + let authorName = author.username; if (message.member?.nick) { authorName = message.member.nick; } - cleanContent = cleanContent.replace(new RegExp(`<@!?${message.author.id}>`, "g"), `@${authorName}`); + cleanContent = cleanContent.replace(new RegExp(`<@!?${author.id}>`, "g"), `@${authorName}`); if (message.mentions) { for (const mention of message.mentions.members) {