diff options
Diffstat (limited to 'packages/gateway/src/commands/react.ts')
| -rw-r--r-- | packages/gateway/src/commands/react.ts | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/packages/gateway/src/commands/react.ts b/packages/gateway/src/commands/react.ts new file mode 100644 index 0000000..ef18d8f --- /dev/null +++ b/packages/gateway/src/commands/react.ts @@ -0,0 +1,39 @@ +import { Client, Events, Message } from "discord.js"; + +export const handleReactCommand = (client: Client) => { + client.on(Events.MessageCreate, async (message: Message) => { + if (message.author.bot) return; + + if (!message.content.startsWith("uma!react")) return; + + if (!message.guild || message.author.id !== message.guild.ownerId) + return; + + const parameters = message.content.split(" "); + + if (parameters.length < 3) { + await message.reply("Usage: `uma!react <message_id> <emoji>`"); + + return; + } + + const messageId = parameters[1]; + const emoji = parameters[2]; + + try { + const targetMessage = await message.channel.messages.fetch(messageId); + + if (!targetMessage) { + await message.reply("Message not found."); + + return; + } + + await targetMessage.react(emoji); + } catch (error) { + console.error("Error reacting to message:", error); + + await message.reply("Failed to react to the message."); + } + }); +}; |