diff options
| author | Fuwn <[email protected]> | 2025-09-28 15:44:42 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-09-28 15:44:42 -0700 |
| commit | fdeaebf11ba805f0fc9757221b28817cc7497eea (patch) | |
| tree | 29151f1fe055576170ace1fe5f17e2055ccf7af4 /packages/gateway/src/commands/delete.ts | |
| parent | feat(listeners:moderationAgent): Update mistake portion of removal notification (diff) | |
| download | umabotdiscord-fdeaebf11ba805f0fc9757221b28817cc7497eea.tar.xz umabotdiscord-fdeaebf11ba805f0fc9757221b28817cc7497eea.zip | |
feat(commands): Add delete command
Diffstat (limited to 'packages/gateway/src/commands/delete.ts')
| -rw-r--r-- | packages/gateway/src/commands/delete.ts | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/packages/gateway/src/commands/delete.ts b/packages/gateway/src/commands/delete.ts new file mode 100644 index 0000000..eee057b --- /dev/null +++ b/packages/gateway/src/commands/delete.ts @@ -0,0 +1,64 @@ +import { Message } from "discord.js"; + +export const handleDeleteCommand = async (message: Message) => { + if (message.author.bot) return; + + if (message.content.toLowerCase().startsWith("uma!delete")) { + const application = await message.client.application?.fetch(); + const ownerId = application?.owner?.id; + + if (message.author.id !== ownerId) { + await message.reply("❌ Only the server owner can use this command."); + + return; + } + + const parameters = message.content.split(" ").slice(1); + + if (parameters.length < 1) { + await message.reply( + "❌ Usage: `uma!delete <message_id>`\nExample: `uma!delete 1234567890123456789`" + ); + + return; + } + + const messageId = parameters[0]; + + if (!/^\d{17,19}$/.test(messageId)) { + await message.reply("❌ Invalid message ID format. Please provide a valid Discord message ID."); + + return; + } + + try { + let targetMessage = null; + + try { + targetMessage = await message.channel.messages.fetch(messageId); + } catch { + if (message.guild) + for (const channel of message.guild.channels.cache.values()) + if (channel.isTextBased()) + try { + targetMessage = await channel.messages.fetch(messageId); + if (targetMessage) break; + } catch { + continue; + } + } + + if (!targetMessage) { + await message.reply("❌ Message not found. Make sure the message ID is correct and the message exists."); + + return; + } + + await targetMessage.delete(); + await message.delete(); + } catch (error) { + console.error("Error deleting message:", error); + await message.reply("❌ Failed to delete the message. Check bot permissions and try again."); + } + } +}; |