chore: Ajout du transcript fonctionnel pour les tickets

This commit is contained in:
UltraLionFr
2025-08-26 14:41:28 +02:00
parent bb22e65117
commit 4f1a0379ea
21 changed files with 778 additions and 41 deletions
+3 -3
View File
@@ -6,8 +6,9 @@ const {
ActionRowBuilder,
} = require('discord.js');
const { config, lang } = require('../../handlers/configLoader');
const { getTicketByChannel, closeTicket } = require('../../handlers/database');
const { getTicketByChannel } = require('../../handlers/database');
const { scheduleTicketClosure } = require('../../handlers/alertManager');
const { closeTicketWithTranscript } = require('../../handlers/ticketCloser');
const ms = require('ms');
module.exports = {
@@ -106,8 +107,7 @@ module.exports = {
});
scheduleTicketClosure(interaction.channel, alertDuration, async () => {
closeTicket(interaction.channel.id);
await interaction.channel.delete().catch(() => {});
await closeTicketWithTranscript(interaction.channel, interaction.user);
});
},
};
+6 -31
View File
@@ -1,10 +1,7 @@
const {
SlashCommandBuilder,
EmbedBuilder,
MessageFlags,
} = require('discord.js');
const { getTicketByChannel, closeTicket } = require('../../handlers/database');
const { config, lang } = require('../../handlers/configLoader');
const { SlashCommandBuilder, MessageFlags } = require('discord.js');
const { getTicketByChannel } = require('../../handlers/database');
const { lang } = require('../../handlers/configLoader');
const { closeTicketWithTranscript } = require('../../handlers/ticketCloser');
module.exports = {
data: new SlashCommandBuilder()
@@ -21,32 +18,10 @@ module.exports = {
});
}
closeTicket(interaction.channel.id);
await interaction.reply(lang.ticket.closing);
// Log fermeture
const logChannel = await interaction.client.channels
.fetch(config.logsChannel)
.catch(() => null);
if (logChannel) {
const embed = new EmbedBuilder()
.setTitle('🔒 Ticket fermé')
.addFields(
{ name: 'Salon', value: `${interaction.channel.name}`, inline: true },
{
name: 'Fermé par',
value: `${interaction.user.tag} (${interaction.user.id})`,
inline: true,
}
)
.setColor(0xe74c3c)
.setTimestamp();
logChannel.send({ embeds: [embed] });
}
setTimeout(() => {
interaction.channel.delete().catch(() => {});
setTimeout(async () => {
await closeTicketWithTranscript(interaction.channel, interaction.user);
}, 5000);
},
};