summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
Diffstat (limited to 'packages')
-rw-r--r--packages/gateway/src/commands/commandHandler.ts2
-rw-r--r--packages/gateway/src/commands/delete.ts64
2 files changed, 66 insertions, 0 deletions
diff --git a/packages/gateway/src/commands/commandHandler.ts b/packages/gateway/src/commands/commandHandler.ts
index 5d8b77a..e985e11 100644
--- a/packages/gateway/src/commands/commandHandler.ts
+++ b/packages/gateway/src/commands/commandHandler.ts
@@ -3,6 +3,7 @@ import { handleSayCommand } from "./say";
import { handleStartCommand } from "./start";
import { handleCrpCommand } from "./crp";
import { handleReactCommand } from "./react";
+import { handleDeleteCommand } from "./delete";
export const handleCommandHandler = (client: Client) => {
client.on(Events.MessageCreate, async (message: Message) => {
@@ -13,6 +14,7 @@ export const handleCommandHandler = (client: Client) => {
handleStartCommand(message),
handleCrpCommand(message),
handleReactCommand(message),
+ handleDeleteCommand(message),
]);
});
};
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.");
+ }
+ }
+};