chore: 🎉 initial commit
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
const { SlashCommandBuilder, PermissionFlagsBits } = require("discord.js");
|
||||
const { config, lang } = require("../../handlers/configLoader");
|
||||
const { getTicketByChannel } = require("../../handlers/database");
|
||||
|
||||
module.exports = {
|
||||
data: new SlashCommandBuilder()
|
||||
.setName("remove")
|
||||
.setDescription(lang.commands.remove.description)
|
||||
.addUserOption(option =>
|
||||
option.setName("utilisateur")
|
||||
.setDescription("L'utilisateur à retirer du ticket")
|
||||
.setRequired(true)
|
||||
),
|
||||
|
||||
async execute(interaction) {
|
||||
const member = interaction.member;
|
||||
|
||||
const staffRoles = (Array.isArray(config.staffRoles) ? config.staffRoles : [config.staffRole || config.staffRoles])
|
||||
.filter(r => r && r.trim() !== "");
|
||||
|
||||
if (!staffRoles.some(roleId => member.roles.cache.has(roleId))) {
|
||||
return interaction.reply({
|
||||
content: lang.permissions.staff_only,
|
||||
flags: 64
|
||||
});
|
||||
}
|
||||
|
||||
const ticket = getTicketByChannel(interaction.channel.id);
|
||||
if (!ticket) {
|
||||
return interaction.reply({
|
||||
content: lang.ticket.not_in_ticket,
|
||||
flags: 64
|
||||
});
|
||||
}
|
||||
|
||||
const userToRemove = interaction.options.getUser("utilisateur");
|
||||
|
||||
const existingOverwrite = interaction.channel.permissionOverwrites.cache.get(userToRemove.id);
|
||||
if (!existingOverwrite || !existingOverwrite.allow.has(PermissionFlagsBits.ViewChannel)) {
|
||||
return interaction.reply({
|
||||
content: lang.commands.remove.not_in_ticket.replace("{user}", userToRemove),
|
||||
flags: 64
|
||||
});
|
||||
}
|
||||
|
||||
try {
|
||||
await interaction.channel.permissionOverwrites.edit(userToRemove.id, {
|
||||
[PermissionFlagsBits.ViewChannel]: false,
|
||||
[PermissionFlagsBits.SendMessages]: false,
|
||||
[PermissionFlagsBits.ReadMessageHistory]: false,
|
||||
});
|
||||
|
||||
await interaction.reply({
|
||||
content: lang.commands.remove.success.replace("{user}", userToRemove),
|
||||
flags: 64
|
||||
});
|
||||
|
||||
await interaction.channel.send(
|
||||
lang.commands.remove.goodbye.replace("{user}", userToRemove)
|
||||
);
|
||||
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
await interaction.reply({
|
||||
content: lang.commands.remove.error,
|
||||
flags: 64
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user