69 lines
1.9 KiB
JavaScript
69 lines
1.9 KiB
JavaScript
const supportbot = require("../Structures/ConfigStore").supportbot;
|
|
const supportbotai = require("../Structures/ConfigStore").supportbotAi;
|
|
const cmdconfig = require("../Structures/ConfigStore").commands;
|
|
|
|
const Event = require("../Structures/Event.js");
|
|
|
|
module.exports = new Event(
|
|
"messageReactionAdd",
|
|
async (client, reaction, user) => {
|
|
try {
|
|
if (user.bot) return;
|
|
|
|
if (reaction.partial) {
|
|
await reaction.fetch().catch(() => null);
|
|
}
|
|
|
|
const message = reaction.message;
|
|
if (!message || !message.guild) return;
|
|
|
|
const reactionEmoji = reaction.emoji?.name || reaction.emoji?.id || null;
|
|
const expectedReaction =
|
|
supportbotai.Messages?.SuggestTicketReaction || "🎫";
|
|
|
|
if (reactionEmoji !== expectedReaction) return;
|
|
if (supportbotai.Features?.SuggestTickets !== true) return;
|
|
if (message.author?.id !== client.user.id) return;
|
|
|
|
const expectedText =
|
|
supportbotai.Messages?.SuggestTicketText ||
|
|
"Need more help? React with 🎫 to open a ticket.";
|
|
|
|
if ((message.content || "").trim() !== expectedText.trim()) return;
|
|
|
|
await message.delete().catch(() => {});
|
|
|
|
const cmd = client.commands.get(cmdconfig.OpenTicket.Command);
|
|
if (!cmd) {
|
|
console.error("Open ticket command not found.");
|
|
return;
|
|
}
|
|
|
|
const member = await message.guild.members
|
|
.fetch(user.id)
|
|
.catch(() => null);
|
|
|
|
if (!member) return;
|
|
|
|
const fakeInteraction = {
|
|
user,
|
|
member,
|
|
guild: message.guild,
|
|
channel: message.channel,
|
|
client,
|
|
replied: true,
|
|
deferred: false,
|
|
reason: `Opened from AI suggestion in #${message.channel.name}`,
|
|
options: {
|
|
getString: () => null,
|
|
},
|
|
reply: async () => null,
|
|
};
|
|
|
|
await cmd.run(fakeInteraction);
|
|
} catch (error) {
|
|
console.error("Error handling AI ticket reaction:", error);
|
|
}
|
|
},
|
|
);
|