mirror of
https://github.com/arthur-pbty/gestion.git
synced 2026-06-03 23:36:35 +02:00
quel que petit truc mdr
This commit is contained in:
@@ -0,0 +1,12 @@
|
|||||||
|
module.exports = {
|
||||||
|
name: 'dnd',
|
||||||
|
description: 'Changer le status du bot en dnd',
|
||||||
|
emote: '🔕',
|
||||||
|
utilisation: 'dnd',
|
||||||
|
category: 'botcontrol',
|
||||||
|
async execute(message, args, client) {
|
||||||
|
|
||||||
|
client.user.setStatus('dnd');
|
||||||
|
message.channel.send(`Le bot est maintenant en de pas deranger`);
|
||||||
|
},
|
||||||
|
};
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
module.exports = {
|
||||||
|
name: 'idle',
|
||||||
|
description: 'Changer le status du bot en idle',
|
||||||
|
emote: '🔄',
|
||||||
|
utilisation: 'idle',
|
||||||
|
category: 'botcontrol',
|
||||||
|
|
||||||
|
async execute(message, args, client) {
|
||||||
|
client.user.setStatus('idle');
|
||||||
|
message.channel.send(`Le bot est maintenant en mode idle`);
|
||||||
|
},
|
||||||
|
};
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
module.exports = {
|
||||||
|
name: 'invisible',
|
||||||
|
description: 'Changer le status du bot en invisible',
|
||||||
|
emote: '🕶️',
|
||||||
|
utilisation: 'invisible',
|
||||||
|
category: 'botcontrol',
|
||||||
|
|
||||||
|
async execute(message, args, client) {
|
||||||
|
client.user.setStatus('invisible');
|
||||||
|
message.channel.send(`Le bot est maintenant invisible`);
|
||||||
|
},
|
||||||
|
};
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
module.exports = {
|
||||||
|
name: 'online',
|
||||||
|
description: 'Changer le status du bot en online',
|
||||||
|
emote: '🟢',
|
||||||
|
utilisation: 'online',
|
||||||
|
category: 'botcontrol',
|
||||||
|
|
||||||
|
async execute(message, args, client) {
|
||||||
|
client.user.setStatus('online');
|
||||||
|
message.channel.send(`Le bot est maintenant en ligne`);
|
||||||
|
},
|
||||||
|
};
|
||||||
@@ -16,7 +16,6 @@ async function getPermissionLevel(member, client) {
|
|||||||
for (let i = 1; i <= 9; i++) {
|
for (let i = 1; i <= 9; i++) {
|
||||||
const roleIds = await GestionDb.get(`${botId}.${member.guild.id}.p${i}`);
|
const roleIds = await GestionDb.get(`${botId}.${member.guild.id}.p${i}`);
|
||||||
if (roleIds) {
|
if (roleIds) {
|
||||||
// Si roleIds n'est pas un tableau, le convertir en tableau
|
|
||||||
if (!Array.isArray(roleIds)) {
|
if (!Array.isArray(roleIds)) {
|
||||||
roleIds = [roleIds];
|
roleIds = [roleIds];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,21 +5,17 @@ module.exports = {
|
|||||||
emote: '📧',
|
emote: '📧',
|
||||||
utilisation: 'dm <@utilisateur> <message>',
|
utilisation: 'dm <@utilisateur> <message>',
|
||||||
category: 'gestion',
|
category: 'gestion',
|
||||||
|
|
||||||
async execute(message, args) {
|
async execute(message, args) {
|
||||||
// Vérifie si un utilisateur a été mentionné
|
|
||||||
const user = message.mentions.users.first();
|
const user = message.mentions.users.first();
|
||||||
if (!user) {
|
if (!user) {
|
||||||
return message.reply('Veuillez mentionner un utilisateur à qui envoyer un message privé.');
|
return message.reply('Veuillez mentionner un utilisateur à qui envoyer un message privé.');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Vérifie si un message a été spécifié
|
|
||||||
const dmMessage = args.slice(1).join(' ');
|
const dmMessage = args.slice(1).join(' ');
|
||||||
if (!dmMessage) {
|
if (!dmMessage) {
|
||||||
return message.reply('Veuillez spécifier un message à envoyer.');
|
return message.reply('Veuillez spécifier un message à envoyer.');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Envoie le message privé à l'utilisateur
|
|
||||||
try {
|
try {
|
||||||
await user.send(dmMessage);
|
await user.send(dmMessage);
|
||||||
message.reply(`Message envoyé à ${user.tag} : "${dmMessage}"`);
|
message.reply(`Message envoyé à ${user.tag} : "${dmMessage}"`);
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
const { EmbedBuilder } = require('discord.js');
|
const { EmbedBuilder, ButtonBuilder , ActionRowBuilder, ButtonStyle } = require('discord.js');
|
||||||
const db = require('quick.db');
|
const db = require('quick.db');
|
||||||
const GestionDb = new db.table('gestion');
|
const GestionDb = new db.table('gestion');
|
||||||
|
|
||||||
@@ -27,7 +27,39 @@ module.exports = {
|
|||||||
.setTitle(`Salons avec un greet ${guildGreetings.length}/5`)
|
.setTitle(`Salons avec un greet ${guildGreetings.length}/5`)
|
||||||
.setDescription(`${greetingChannels}`)
|
.setDescription(`${greetingChannels}`)
|
||||||
.setColor('#0099ff');
|
.setColor('#0099ff');
|
||||||
message.channel.send({ embeds: [embed] });
|
const greet = new ButtonBuilder()
|
||||||
|
.setCustomId(`greet_${guildId}`)
|
||||||
|
.setLabel('↪️ greet')
|
||||||
|
.setStyle(ButtonStyle.Primary)
|
||||||
|
const row = new ActionRowBuilder()
|
||||||
|
.addComponents(greet);
|
||||||
|
const sentMessage = await message.channel.send({ embeds: [embed], components: [row] });
|
||||||
|
const greetfilter = i => i.customId.startsWith('greet_') && i.user.id === message.author.id;
|
||||||
|
const collector = sentMessage.createMessageComponentCollector({ filter: greetfilter, time: 15000 });
|
||||||
|
collector.on('collect', async (interaction) => {
|
||||||
|
const member = interaction.member;
|
||||||
|
const guild = interaction.guild;
|
||||||
|
const welcomeMessage = `Bienvenue <@${member.id}> sur le serveur ${guild.name} !`;
|
||||||
|
const messagePromises = [];
|
||||||
|
for (const greeting of guildGreetings) {
|
||||||
|
try {
|
||||||
|
const channel = await guild.channels.fetch(greeting.channelId);
|
||||||
|
if (channel && channel.type === 0) {
|
||||||
|
messagePromises.push(
|
||||||
|
channel.send(welcomeMessage)
|
||||||
|
.then(message => {
|
||||||
|
setTimeout(() => message.delete(), 1000);
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
await Promise.all(messagePromises);
|
||||||
|
} catch (error) {
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@@ -9,7 +9,6 @@ module.exports = {
|
|||||||
category: 'gestion',
|
category: 'gestion',
|
||||||
|
|
||||||
async execute(message, args) {
|
async execute(message, args) {
|
||||||
// Vérifie si un rôle a été mentionné
|
|
||||||
const role = message.mentions.roles.first();
|
const role = message.mentions.roles.first();
|
||||||
if (!role) {
|
if (!role) {
|
||||||
return message.reply('Veuillez mentionner un rôle.');
|
return message.reply('Veuillez mentionner un rôle.');
|
||||||
@@ -24,7 +23,6 @@ module.exports = {
|
|||||||
.setTitle('Attribution de rôle')
|
.setTitle('Attribution de rôle')
|
||||||
.addFields(fields);
|
.addFields(fields);
|
||||||
|
|
||||||
// Crée un menu déroulant avec les options
|
|
||||||
const selectMenu = new StringSelectMenuBuilder()
|
const selectMenu = new StringSelectMenuBuilder()
|
||||||
.setCustomId('massiverole_select')
|
.setCustomId('massiverole_select')
|
||||||
.setPlaceholder('Sélectionnez le type de membres')
|
.setPlaceholder('Sélectionnez le type de membres')
|
||||||
@@ -34,13 +32,10 @@ module.exports = {
|
|||||||
{ label: '🤖 Bot', value: 'bot' },
|
{ label: '🤖 Bot', value: 'bot' },
|
||||||
{ label: '🚀 Lancer', value: 'launch' },
|
{ label: '🚀 Lancer', value: 'launch' },
|
||||||
]);
|
]);
|
||||||
// Crée une action de ligne avec le menu déroulant
|
|
||||||
const row = new ActionRowBuilder()
|
const row = new ActionRowBuilder()
|
||||||
.addComponents(selectMenu);
|
.addComponents(selectMenu);
|
||||||
|
|
||||||
const sentMessage = await message.channel.send({ embeds: [embed], components: [row] });
|
const sentMessage = await message.channel.send({ embeds: [embed], components: [row] });
|
||||||
|
|
||||||
// Crée un collecteur d'interactions pour le menu déroulant
|
|
||||||
const filter = i => i.customId === 'massiverole_select' && i.user.id === message.author.id;
|
const filter = i => i.customId === 'massiverole_select' && i.user.id === message.author.id;
|
||||||
const collector = sentMessage.createMessageComponentCollector({ filter, time: 15000 })
|
const collector = sentMessage.createMessageComponentCollector({ filter, time: 15000 })
|
||||||
collector.on('collect', async (interaction) => {
|
collector.on('collect', async (interaction) => {
|
||||||
@@ -57,22 +52,18 @@ module.exports = {
|
|||||||
name2 = '🤖 Bot';
|
name2 = '🤖 Bot';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Trouvez l'index du champ 'Type de membres' et mettez à jour sa valeur
|
|
||||||
const memberTypeFieldIndex = fields.findIndex(field => field.name === 'Type de membres');
|
const memberTypeFieldIndex = fields.findIndex(field => field.name === 'Type de membres');
|
||||||
if (memberTypeFieldIndex !== -1) {
|
if (memberTypeFieldIndex !== -1) {
|
||||||
fields[memberTypeFieldIndex].value = name2;
|
fields[memberTypeFieldIndex].value = name2;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Recréez l'embed avec les champs mis à jour
|
|
||||||
const updatedEmbed = new EmbedBuilder()
|
const updatedEmbed = new EmbedBuilder()
|
||||||
.setTitle('Attribution de rôle')
|
.setTitle('Attribution de rôle')
|
||||||
.addFields(fields);
|
.addFields(fields);
|
||||||
|
|
||||||
// Mettre à jour l'embed dans le message
|
|
||||||
await interaction.update({ embeds: [updatedEmbed] });
|
await interaction.update({ embeds: [updatedEmbed] });
|
||||||
}
|
}
|
||||||
|
|
||||||
// Si l'option "Lancer" est sélectionnée, attribuez le rôle
|
|
||||||
if (interaction.values[0] === 'launch') {
|
if (interaction.values[0] === 'launch') {
|
||||||
await assignRole(interaction, role, memberType, message);
|
await assignRole(interaction, role, memberType, message);
|
||||||
}
|
}
|
||||||
@@ -83,7 +74,6 @@ module.exports = {
|
|||||||
async function assignRole(interaction, role, memberType, message) {
|
async function assignRole(interaction, role, memberType, message) {
|
||||||
let count = 0;
|
let count = 0;
|
||||||
|
|
||||||
// Récupère tous les membres pour s'assurer que le cache est complet
|
|
||||||
const members = await interaction.guild.members.fetch();
|
const members = await interaction.guild.members.fetch();
|
||||||
|
|
||||||
if (memberType === 'human') {
|
if (memberType === 'human') {
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ module.exports = {
|
|||||||
let roleIds = await GestionDb.get(`${botId}.${message.guild.id}.p${i}`);
|
let roleIds = await GestionDb.get(`${botId}.${message.guild.id}.p${i}`);
|
||||||
let roles = 'Aucun rôle défini';
|
let roles = 'Aucun rôle défini';
|
||||||
if (roleIds) {
|
if (roleIds) {
|
||||||
// Si roleIds n'est pas un tableau, le convertir en tableau
|
|
||||||
if (!Array.isArray(roleIds)) {
|
if (!Array.isArray(roleIds)) {
|
||||||
roleIds = [roleIds];
|
roleIds = [roleIds];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,20 +11,15 @@ module.exports = {
|
|||||||
const guild = message.guild;
|
const guild = message.guild;
|
||||||
const channel = message.mentions.channels.first() || message.channel;
|
const channel = message.mentions.channels.first() || message.channel;
|
||||||
const botMember = guild.members.cache.get(client.user.id);
|
const botMember = guild.members.cache.get(client.user.id);
|
||||||
// Check if the bot has the 'MANAGE_CHANNELS' permission
|
|
||||||
if (!botMember.permissions.has(PermissionsBitField.Flags.ManageChannels)) {
|
if (!botMember.permissions.has(PermissionsBitField.Flags.ManageChannels)) {
|
||||||
return message.reply("Je n'ai pas la permission de gére les salon");
|
return message.reply("Je n'ai pas la permission de gére les salon");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if the channel is deletable
|
|
||||||
if (channel.deletable) {
|
if (channel.deletable) {
|
||||||
// Clone the channel
|
|
||||||
const newChannel = await channel.clone();
|
const newChannel = await channel.clone();
|
||||||
|
|
||||||
// Delete the old channel
|
|
||||||
await channel.delete();
|
await channel.delete();
|
||||||
|
|
||||||
// Send a message in the new channel
|
|
||||||
newChannel.send(`${message.author}, ce salon a été renouvelé.`);
|
newChannel.send(`${message.author}, ce salon a été renouvelé.`);
|
||||||
} else {
|
} else {
|
||||||
return message.reply("Je ne peux pas supprimer ce salon.");
|
return message.reply("Je ne peux pas supprimer ce salon.");
|
||||||
|
|||||||
@@ -0,0 +1,43 @@
|
|||||||
|
const db = require('quick.db');
|
||||||
|
const GestionDb = new db.table("gestion");
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
name: 'suggest',
|
||||||
|
description: 'configure le salon de suggestion',
|
||||||
|
emote: '🛡️',
|
||||||
|
utilisation: 'suggest #channel',
|
||||||
|
category: 'gestion',
|
||||||
|
async execute(message, args, client) {
|
||||||
|
const botid = client.user.id;
|
||||||
|
const guildId = message.guild.id;
|
||||||
|
const currentSuggestChannelId = GestionDb.get(`${botid}.${guildId}.suggestchannel`);
|
||||||
|
|
||||||
|
const mentionedChannel = message.mentions.channels.first();
|
||||||
|
if (mentionedChannel) {
|
||||||
|
if (mentionedChannel.id === currentSuggestChannelId) {
|
||||||
|
GestionDb.delete(`${botid}.${guildId}.suggestchannel`);
|
||||||
|
message.channel.send(`Le salon de suggestion a été supprimé.`);
|
||||||
|
} else {
|
||||||
|
GestionDb.set(`${botid}.${guildId}.suggestchannel`, mentionedChannel.id);
|
||||||
|
message.channel.send(`Le salon de suggestion a été configuré à <#${mentionedChannel.id}>`);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args[0]) {
|
||||||
|
const channel = message.guild.channels.cache.get(args[0]);
|
||||||
|
if (channel) {
|
||||||
|
if (channel.id === currentSuggestChannelId) {
|
||||||
|
GestionDb.delete(`${botid}.${guildId}.suggestchannel`);
|
||||||
|
message.channel.send(`Le salon de suggestion a été supprimé.`);
|
||||||
|
} else {
|
||||||
|
GestionDb.set(`${botid}.${guildId}.suggestchannel`, args[0]);
|
||||||
|
message.channel.send(`Le salon de suggestion a été configuré à <#${args[0]}>`);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
message.channel.send("Veuillez mentionner un salon ou fournir un ID de salon valide.");
|
||||||
|
},
|
||||||
|
};
|
||||||
@@ -34,14 +34,12 @@ module.exports = {
|
|||||||
{ label: '🤖 Bot', value: 'bot' },
|
{ label: '🤖 Bot', value: 'bot' },
|
||||||
{ label: '🚀 Lancer', value: 'launch' },
|
{ label: '🚀 Lancer', value: 'launch' },
|
||||||
]);
|
]);
|
||||||
// Crée une action de ligne avec le menu déroulant
|
|
||||||
const row = new ActionRowBuilder()
|
const row = new ActionRowBuilder()
|
||||||
.addComponents(selectMenu);
|
.addComponents(selectMenu);
|
||||||
|
|
||||||
const sentMessage = await message.channel.send({ embeds: [embed], components: [row] });
|
const sentMessage = await message.channel.send({ embeds: [embed], components: [row] });
|
||||||
|
|
||||||
|
|
||||||
// Crée un collecteur d'interactions pour le menu déroulant
|
|
||||||
const filter = i => i.customId === 'unmassiverole_select' && i.user.id === message.author.id;
|
const filter = i => i.customId === 'unmassiverole_select' && i.user.id === message.author.id;
|
||||||
const collector = sentMessage.createMessageComponentCollector({ filter, time: 15000 });
|
const collector = sentMessage.createMessageComponentCollector({ filter, time: 15000 });
|
||||||
collector.on('collect', async (interaction) => {
|
collector.on('collect', async (interaction) => {
|
||||||
@@ -57,23 +55,18 @@ module.exports = {
|
|||||||
if (interaction.values[0] === 'bot') {
|
if (interaction.values[0] === 'bot') {
|
||||||
name2 = '🤖 Bot';
|
name2 = '🤖 Bot';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Trouvez l'index du champ 'Type de membres' et mettez à jour sa valeur
|
|
||||||
const memberTypeFieldIndex = fields.findIndex(field => field.name === 'Type de membres');
|
const memberTypeFieldIndex = fields.findIndex(field => field.name === 'Type de membres');
|
||||||
if (memberTypeFieldIndex !== -1) {
|
if (memberTypeFieldIndex !== -1) {
|
||||||
fields[memberTypeFieldIndex].value = name2;
|
fields[memberTypeFieldIndex].value = name2;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Recréez l'embed avec les champs mis à jour
|
|
||||||
const updatedEmbed = new EmbedBuilder()
|
const updatedEmbed = new EmbedBuilder()
|
||||||
.setTitle('Retrait de rôle')
|
.setTitle('Retrait de rôle')
|
||||||
.addFields(fields);
|
.addFields(fields);
|
||||||
|
|
||||||
// Mettre à jour l'embed dans le message
|
|
||||||
await interaction.update({ embeds: [updatedEmbed] });
|
await interaction.update({ embeds: [updatedEmbed] });
|
||||||
}
|
}
|
||||||
|
|
||||||
// Si l'option "Lancer" est sélectionnée, retirez le rôle
|
|
||||||
if (interaction.values[0] === 'launch') {
|
if (interaction.values[0] === 'launch') {
|
||||||
await removeRole(interaction, role, memberType, message);
|
await removeRole(interaction, role, memberType, message);
|
||||||
}
|
}
|
||||||
@@ -84,7 +77,6 @@ module.exports = {
|
|||||||
async function removeRole(interaction, role, memberType, message) {
|
async function removeRole(interaction, role, memberType, message) {
|
||||||
let count = 0;
|
let count = 0;
|
||||||
|
|
||||||
// Récupère tous les membres pour s'assurer que le cache est complet
|
|
||||||
const members = await interaction.guild.members.fetch();
|
const members = await interaction.guild.members.fetch();
|
||||||
|
|
||||||
if (memberType === 'human') {
|
if (memberType === 'human') {
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
const {Events} = require("discord.js")
|
||||||
|
module.exports = {
|
||||||
|
name: Events.InteractionCreate,
|
||||||
|
async execute(interaction) {
|
||||||
|
if (!interaction.isButton()) return;
|
||||||
|
if (interaction.customId.startsWith('deletesuggestion_')) {
|
||||||
|
const userId = interaction.customId.split('_')[1];
|
||||||
|
if (interaction.user.id !== userId) {
|
||||||
|
await interaction.reply({ content: "vous n'avez pas la permission de suprimer cette suggestion.", ephemeral: true });
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
await interaction.message.delete();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
const { ActionRowBuilder, ButtonBuilder,ButtonStyle , EmbedBuilder } = require('discord.js');
|
||||||
|
const db = require('quick.db');
|
||||||
|
const GestionDb = new db.table('gestion')
|
||||||
|
const {Events} = require("discord.js")
|
||||||
|
module.exports = {
|
||||||
|
name: Events.MessageCreate,
|
||||||
|
async execute(message) {
|
||||||
|
const botid = message.client.user.id;
|
||||||
|
const suggestChannelId = GestionDb.get(`${botid}.${message.guild.id}.suggestchannel`);
|
||||||
|
if (message.channel.id === suggestChannelId && !message.author.bot) {
|
||||||
|
await message.delete();
|
||||||
|
|
||||||
|
const embed = new EmbedBuilder()
|
||||||
|
.setAuthor({ name: message.author.tag, iconURL: message.author.displayAvatarURL() })
|
||||||
|
.setDescription(message.content || 'Aucun contenu fourni')
|
||||||
|
.setFooter({ text: `${message.guild.name} | ${message.client.user.username}`, })
|
||||||
|
.setColor('#409CED');
|
||||||
|
|
||||||
|
const row = new ActionRowBuilder()
|
||||||
|
.addComponents(
|
||||||
|
new ButtonBuilder()
|
||||||
|
.setCustomId(`deletesuggestion_${message.author.id}`)
|
||||||
|
.setLabel('Supprimer')
|
||||||
|
.setStyle(ButtonStyle.Danger)
|
||||||
|
);
|
||||||
|
|
||||||
|
const suggestionmesssage = await message.channel.send({ embeds: [embed], components: [row] });
|
||||||
|
suggestionmesssage.react('👎')
|
||||||
|
suggestionmesssage.react('👍')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
|
const {Events} = require("discord.js")
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'messageDelete',
|
name: Events.MessageDelete,
|
||||||
once: false,
|
once: false,
|
||||||
async execute(message, client) {
|
async execute(message, client) {
|
||||||
if (message.author.bot) return;
|
if (message.author.bot) return;
|
||||||
|
|||||||
Reference in New Issue
Block a user