summaryrefslogtreecommitdiff
path: root/packages/gateway/src/commands
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-09-28 15:52:10 -0700
committerFuwn <[email protected]>2025-09-28 15:52:10 -0700
commit42267aab86347cd9a3755e05b7f465e399c6098c (patch)
tree0ac3f34e5a46b932a4b3a21de4d5ab02ce676908 /packages/gateway/src/commands
parentfeat(commands): Add delete command (diff)
downloadumabotdiscord-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.ts39
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) {