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++) {
|
||||
const roleIds = await GestionDb.get(`${botId}.${member.guild.id}.p${i}`);
|
||||
if (roleIds) {
|
||||
// Si roleIds n'est pas un tableau, le convertir en tableau
|
||||
if (!Array.isArray(roleIds)) {
|
||||
roleIds = [roleIds];
|
||||
}
|
||||
|
||||
@@ -5,21 +5,17 @@ module.exports = {
|
||||
emote: '📧',
|
||||
utilisation: 'dm <@utilisateur> <message>',
|
||||
category: 'gestion',
|
||||
|
||||
async execute(message, args) {
|
||||
// Vérifie si un utilisateur a été mentionné
|
||||
const user = message.mentions.users.first();
|
||||
if (!user) {
|
||||
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(' ');
|
||||
if (!dmMessage) {
|
||||
return message.reply('Veuillez spécifier un message à envoyer.');
|
||||
}
|
||||
|
||||
// Envoie le message privé à l'utilisateur
|
||||
try {
|
||||
await user.send(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 GestionDb = new db.table('gestion');
|
||||
|
||||
@@ -27,7 +27,39 @@ module.exports = {
|
||||
.setTitle(`Salons avec un greet ${guildGreetings.length}/5`)
|
||||
.setDescription(`${greetingChannels}`)
|
||||
.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',
|
||||
|
||||
async execute(message, args) {
|
||||
// Vérifie si un rôle a été mentionné
|
||||
const role = message.mentions.roles.first();
|
||||
if (!role) {
|
||||
return message.reply('Veuillez mentionner un rôle.');
|
||||
@@ -24,7 +23,6 @@ module.exports = {
|
||||
.setTitle('Attribution de rôle')
|
||||
.addFields(fields);
|
||||
|
||||
// Crée un menu déroulant avec les options
|
||||
const selectMenu = new StringSelectMenuBuilder()
|
||||
.setCustomId('massiverole_select')
|
||||
.setPlaceholder('Sélectionnez le type de membres')
|
||||
@@ -34,13 +32,10 @@ module.exports = {
|
||||
{ label: '🤖 Bot', value: 'bot' },
|
||||
{ label: '🚀 Lancer', value: 'launch' },
|
||||
]);
|
||||
// Crée une action de ligne avec le menu déroulant
|
||||
const row = new ActionRowBuilder()
|
||||
.addComponents(selectMenu);
|
||||
|
||||
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 collector = sentMessage.createMessageComponentCollector({ filter, time: 15000 })
|
||||
collector.on('collect', async (interaction) => {
|
||||
@@ -57,22 +52,18 @@ module.exports = {
|
||||
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');
|
||||
if (memberTypeFieldIndex !== -1) {
|
||||
fields[memberTypeFieldIndex].value = name2;
|
||||
}
|
||||
|
||||
// Recréez l'embed avec les champs mis à jour
|
||||
const updatedEmbed = new EmbedBuilder()
|
||||
.setTitle('Attribution de rôle')
|
||||
.addFields(fields);
|
||||
|
||||
// Mettre à jour l'embed dans le message
|
||||
await interaction.update({ embeds: [updatedEmbed] });
|
||||
}
|
||||
|
||||
// Si l'option "Lancer" est sélectionnée, attribuez le rôle
|
||||
if (interaction.values[0] === 'launch') {
|
||||
await assignRole(interaction, role, memberType, message);
|
||||
}
|
||||
@@ -83,7 +74,6 @@ module.exports = {
|
||||
async function assignRole(interaction, role, memberType, message) {
|
||||
let count = 0;
|
||||
|
||||
// Récupère tous les membres pour s'assurer que le cache est complet
|
||||
const members = await interaction.guild.members.fetch();
|
||||
|
||||
if (memberType === 'human') {
|
||||
|
||||
@@ -20,7 +20,6 @@ module.exports = {
|
||||
let roleIds = await GestionDb.get(`${botId}.${message.guild.id}.p${i}`);
|
||||
let roles = 'Aucun rôle défini';
|
||||
if (roleIds) {
|
||||
// Si roleIds n'est pas un tableau, le convertir en tableau
|
||||
if (!Array.isArray(roleIds)) {
|
||||
roleIds = [roleIds];
|
||||
}
|
||||
|
||||
@@ -11,20 +11,15 @@ module.exports = {
|
||||
const guild = message.guild;
|
||||
const channel = message.mentions.channels.first() || message.channel;
|
||||
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)) {
|
||||
return message.reply("Je n'ai pas la permission de gére les salon");
|
||||
}
|
||||
|
||||
// Check if the channel is deletable
|
||||
if (channel.deletable) {
|
||||
// Clone the channel
|
||||
const newChannel = await channel.clone();
|
||||
|
||||
// Delete the old channel
|
||||
await channel.delete();
|
||||
|
||||
// Send a message in the new channel
|
||||
newChannel.send(`${message.author}, ce salon a été renouvelé.`);
|
||||
} else {
|
||||
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: '🚀 Lancer', value: 'launch' },
|
||||
]);
|
||||
// Crée une action de ligne avec le menu déroulant
|
||||
const row = new ActionRowBuilder()
|
||||
.addComponents(selectMenu);
|
||||
|
||||
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 collector = sentMessage.createMessageComponentCollector({ filter, time: 15000 });
|
||||
collector.on('collect', async (interaction) => {
|
||||
@@ -57,23 +55,18 @@ module.exports = {
|
||||
if (interaction.values[0] === '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');
|
||||
if (memberTypeFieldIndex !== -1) {
|
||||
fields[memberTypeFieldIndex].value = name2;
|
||||
}
|
||||
|
||||
// Recréez l'embed avec les champs mis à jour
|
||||
const updatedEmbed = new EmbedBuilder()
|
||||
.setTitle('Retrait de rôle')
|
||||
.addFields(fields);
|
||||
|
||||
// Mettre à jour l'embed dans le message
|
||||
await interaction.update({ embeds: [updatedEmbed] });
|
||||
}
|
||||
|
||||
// Si l'option "Lancer" est sélectionnée, retirez le rôle
|
||||
if (interaction.values[0] === 'launch') {
|
||||
await removeRole(interaction, role, memberType, message);
|
||||
}
|
||||
@@ -84,7 +77,6 @@ module.exports = {
|
||||
async function removeRole(interaction, role, memberType, message) {
|
||||
let count = 0;
|
||||
|
||||
// Récupère tous les membres pour s'assurer que le cache est complet
|
||||
const members = await interaction.guild.members.fetch();
|
||||
|
||||
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 = {
|
||||
name: 'messageDelete',
|
||||
name: Events.MessageDelete,
|
||||
once: false,
|
||||
async execute(message, client) {
|
||||
if (message.author.bot) return;
|
||||
|
||||
Reference in New Issue
Block a user