diff options
| author | Fuwn <[email protected]> | 2025-09-28 15:52:10 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-09-28 15:52:10 -0700 |
| commit | 42267aab86347cd9a3755e05b7f465e399c6098c (patch) | |
| tree | 0ac3f34e5a46b932a4b3a21de4d5ab02ce676908 /packages/gateway/src/commands | |
| parent | feat(commands): Add delete command (diff) | |
| download | umabotdiscord-42267aab86347cd9a3755e05b7f465e399c6098c.tar.xz umabotdiscord-42267aab86347cd9a3755e05b7f465e399c6098c.zip | |
feat(commands:delete): Update delete command parameters
Diffstat (limited to 'packages/gateway/src/commands')
| -rw-r--r-- | packages/gateway/src/commands/delete.ts | 39 |
1 files changed, 24 insertions, 15 deletions
diff --git a/packages/gateway/src/commands/delete.ts b/packages/gateway/src/commands/delete.ts index eee057b..78b17be 100644 --- a/packages/gateway/src/commands/delete.ts +++ b/packages/gateway/src/commands/delete.ts @@ -17,13 +17,14 @@ export const handleDeleteCommand = async (message: Message) => { if (parameters.length < 1) { await message.reply( - "❌ Usage: `uma!delete <message_id>`\nExample: `uma!delete 1234567890123456789`" + "❌ Usage: `uma!delete <message_id> [channel_id]`\nExamples:\n- `uma!delete 1234567890123456789` (current channel)\n- `uma!delete 1234567890123456789 9876543210987654321` (specific channel)" ); return; } const messageId = parameters[0]; + const channelId = parameters[1]; if (!/^\d{17,19}$/.test(messageId)) { await message.reply("❌ Invalid message ID format. Please provide a valid Discord message ID."); @@ -31,29 +32,37 @@ export const handleDeleteCommand = async (message: Message) => { return; } + if (channelId && !/^\d{17,19}$/.test(channelId)) { + await message.reply("❌ Invalid channel ID format. Please provide a valid Discord channel ID."); + + return; + } + try { let targetMessage = null; + let targetChannel = 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 (channelId) { + targetChannel = message.client.channels.cache.get(channelId); + + if (!targetChannel || !targetChannel.isTextBased()) { + await message.reply("❌ Channel not found or is not a text channel."); + + return; + } + } else { + targetChannel = message.channel; } - if (!targetMessage) { - await message.reply("❌ Message not found. Make sure the message ID is correct and the message exists."); + try { + targetMessage = await targetChannel.messages.fetch(messageId); + } catch { + await message.reply("❌ Message not found in the specified channel."); return; } + await targetMessage.delete(); await message.delete(); } catch (error) { |