chore: 🎉 initial commit

This commit is contained in:
UltraLionFr
2025-08-26 01:01:34 +02:00
parent bf6d61e5a3
commit 30cfbd73fc
27 changed files with 1341 additions and 0 deletions
+61
View File
@@ -0,0 +1,61 @@
module.exports = {
name: "interactionCreate",
once: false,
async execute(interaction, client) {
try {
// Slash commands
if (interaction.isChatInputCommand()) {
const command = client.commands.get(interaction.commandName);
if (command) return command.execute(interaction, client);
}
// Buttons
if (interaction.isButton()) {
for (const button of client.buttons.values()) {
if (typeof button.id === "string" && button.id === interaction.customId) {
return button.execute(interaction, client);
}
if (button.id instanceof RegExp && button.id.test(interaction.customId)) {
return button.execute(interaction, client);
}
}
}
// Modals
if (interaction.isModalSubmit()) {
for (const modal of client.modals.values()) {
if (typeof modal.id === "string" && modal.id === interaction.customId) {
return modal.execute(interaction, client);
}
if (modal.id instanceof RegExp && modal.id.test(interaction.customId)) {
return modal.execute(interaction, client);
}
}
}
// Menus
if (
interaction.isStringSelectMenu() ||
interaction.isUserSelectMenu() ||
interaction.isRoleSelectMenu() ||
interaction.isChannelSelectMenu()
) {
for (const menu of client.menus.values()) {
if (typeof menu.id === "string" && menu.id === interaction.customId) {
return menu.execute(interaction, client);
}
if (menu.id instanceof RegExp && menu.id.test(interaction.customId)) {
return menu.execute(interaction, client);
}
}
}
} catch (error) {
console.error(error);
if (interaction.replied || interaction.deferred) {
await interaction.followUp({ content: "❌ Une erreur est survenue.", flags: 64 });
} else {
await interaction.reply({ content: "❌ Une erreur est survenue.", flags: 64 });
}
}
}
};
+26
View File
@@ -0,0 +1,26 @@
const { getTicketByChannel } = require("../../handlers/database");
const { cancelTicketClosure } = require("../../handlers/alertManager");
const { lang } = require("../../handlers/configLoader");
const { EmbedBuilder } = require("discord.js");
module.exports = {
name: "messageCreate",
once: false,
async execute(message) {
if (message.author.bot) return;
const ticket = getTicketByChannel(message.channel.id);
if (!ticket) return;
if (message.author.id === ticket.userId) {
if (cancelTicketClosure(message.channel.id)) {
const embed = new EmbedBuilder()
.setDescription(lang.commands.alert.auto_cancelled)
.setColor(0x2ecc71)
.setTimestamp();
await message.channel.send({ embeds: [embed] });
}
}
}
};