mirror of
https://github.com/arthur-pbty/gestion.git
synced 2026-06-03 23:36:35 +02:00
finish soutien module and reworked help commande
This commit is contained in:
+243
-117
@@ -25,14 +25,15 @@ module.exports = {
|
|||||||
});
|
});
|
||||||
const role = message.guild.roles.cache.get(soutienData.roleID);
|
const role = message.guild.roles.cache.get(soutienData.roleID);
|
||||||
const roleValue = role ? `<@&${role.id}>` : "Rôle non trouvé";
|
const roleValue = role ? `<@&${role.id}>` : "Rôle non trouvé";
|
||||||
const messagesSoutien = Array.isArray(soutienData.messageSoutien) ? soutienData.messageSoutien.join(', ') : soutienData.messageSoutien;
|
const messagesArray = JSON.parse(soutienData.message);
|
||||||
|
const messagesSoutien = messagesArray.join(', ');
|
||||||
|
|
||||||
const embed = new EmbedBuilder()
|
const embed = new EmbedBuilder()
|
||||||
.setTitle('Soutien mis à jour')
|
.setTitle('Configuration Soutien')
|
||||||
.addFields(
|
.addFields(
|
||||||
{ name: '✅ Status', value: soutienData.status === "on" ? "✅" : "❌", inline: true },
|
{ name: '✅ Status', value: soutienData.status === "on" ? "✅" : "❌", inline: true },
|
||||||
{ name: '📍 Rôle', value: roleValue, inline: true },
|
{ name: '📍 Rôle', value: roleValue, inline: true },
|
||||||
{ name: '📝 Message', value: messagesSoutien || 'Non défini', inline: true },
|
{ name: '📝 Messsage Autorisé', value: messagesSoutien || 'Non défini', inline: true },
|
||||||
{ name: '🔧 Paramètre', value: soutienData.parametre === 'inclus' || !soutienData.parametre ?'Inclus dans la status': "Ne contien que le status", inline: true }
|
{ name: '🔧 Paramètre', value: soutienData.parametre === 'inclus' || !soutienData.parametre ?'Inclus dans la status': "Ne contien que le status", inline: true }
|
||||||
)
|
)
|
||||||
.setColor('#0099ff');
|
.setColor('#0099ff');
|
||||||
@@ -58,9 +59,9 @@ module.exports = {
|
|||||||
.setLabel("Il n'y a que le message dans le status")
|
.setLabel("Il n'y a que le message dans le status")
|
||||||
.setValue('fixstatus'),
|
.setValue('fixstatus'),
|
||||||
);
|
);
|
||||||
const row = new ActionRowBuilder().addComponents(select1);
|
const rowactionrow = new ActionRowBuilder().addComponents(select1);
|
||||||
|
|
||||||
const sendmessage = await message.reply({ embeds: [embed], components: [row] });
|
const sendmessage = await message.reply({ embeds: [embed], components: [rowactionrow] });
|
||||||
const filter = i => i.customId === 'soutieninteraction' && i.user.id === message.author.id;
|
const filter = i => i.customId === 'soutieninteraction' && i.user.id === message.author.id;
|
||||||
const collector = sendmessage.createMessageComponentCollector({ filter: filter, time: 120000 });
|
const collector = sendmessage.createMessageComponentCollector({ filter: filter, time: 120000 });
|
||||||
collector.on('collect', async i => {
|
collector.on('collect', async i => {
|
||||||
@@ -75,96 +76,103 @@ const row = new ActionRowBuilder().addComponents(select1);
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
if (i.values[0] === 'onoroff') {
|
if (i.values[0] === 'onoroff') {
|
||||||
let newStatus = currentSoutienData.status === "on" ? "off" : "on";
|
let newStatus = currentSoutienData.status === "on" ? "off" : "on";
|
||||||
|
|
||||||
await new Promise((resolve, reject) => {
|
db.run(`INSERT OR IGNORE INTO soutiens (guildID) VALUES (?)`, [guildID], function(err) {
|
||||||
db.run(`INSERT OR REPLACE INTO soutiens (status, guildID) VALUES (?, ?)`, [newStatus, guildID], function(err) {
|
if (err) {
|
||||||
|
console.error(err.message);
|
||||||
|
} else {
|
||||||
|
// Mise à jour
|
||||||
|
db.run(`UPDATE soutiens SET status = ? WHERE guildID = ?`, [newStatus, guildID], function(err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.log(err.message);
|
console.error(err.message);
|
||||||
reject(err);
|
|
||||||
} else {
|
} else {
|
||||||
resolve();
|
db.get(`SELECT * FROM soutiens WHERE guildID = ?`, [guildID], (err, row) => {
|
||||||
}
|
if (err) {
|
||||||
});
|
console.error(err.message);
|
||||||
});
|
} else {
|
||||||
let soutienData = await new Promise((resolve, reject) => {
|
let soutienData = row ? row : {};
|
||||||
db.get(`SELECT * FROM soutiens WHERE guildID = ?`, [guildID], (err, row) => {
|
const role = message.guild.roles.cache.get(soutienData.roleID);
|
||||||
if (err) {
|
const roleValue = role ? `<@&${role.id}>` : "Rôle non trouvé";
|
||||||
console.log(err.message);
|
const messagesArray = JSON.parse(soutienData.message);
|
||||||
reject(err);
|
const messagesSoutien = messagesArray.join(', ');
|
||||||
} else {
|
|
||||||
resolve(row ? row : {});
|
const updatedEmbed = new EmbedBuilder()
|
||||||
|
.setTitle('Configuration Soutien')
|
||||||
|
.addFields(
|
||||||
|
{ name: '✅ Status', value: newStatus === "on" ? "✅" : "❌", inline: true },
|
||||||
|
{ name: '📍 Rôle', value: roleValue, inline: true },
|
||||||
|
{ name: '📝 Message', value: messagesSoutien || 'Non défini', inline: true },
|
||||||
|
{ name: '🔧 Paramètre', value: soutienData.parametre === 'inclus' || !soutienData.parametre ?'Inclus dans la status': "Ne contien que le status", inline: true }
|
||||||
|
)
|
||||||
|
.setColor('#0099ff');
|
||||||
|
i.update({ embeds: [updatedEmbed], components: [rowactionrow] }).catch(console.error);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
const role = message.guild.roles.cache.get(soutienData.roleID);
|
});
|
||||||
const roleValue = role ? role : "Rôle non trouvé";
|
} else if (i.values[0] === 'role') {
|
||||||
const messagesSoutien = Array.isArray(soutienData.messageSoutien) ? soutienData.messageSoutien.join(', ') : soutienData.messageSoutien;
|
|
||||||
|
|
||||||
const updatedEmbed = new EmbedBuilder()
|
|
||||||
.setTitle('Soutien mis à jour')
|
|
||||||
.addFields(
|
|
||||||
{ name: '✅ Status', value: newStatus === "on" ? "✅" : "❌", inline: true },
|
|
||||||
{ name: '📍 Rôle', value: roleValue, inline: true },
|
|
||||||
{ name: '📝 Message', value: messagesSoutien || 'Non défini', inline: true },
|
|
||||||
{ name: '🔧 Paramètre', value: currentSoutienData.parametre === 'inclus' || !currentSoutienData.parametre ?'Inclus dans la status': "Ne contien que le status", inline: true }
|
|
||||||
)
|
|
||||||
.setColor('#0099ff');
|
|
||||||
await i.update({ embeds: [updatedEmbed], components: [row] });
|
|
||||||
} else if (i.values[0] === 'role') {
|
|
||||||
console.log("dddd")
|
|
||||||
await message.reply('Veuillez fournir une mention de rôle ou un ID pour la mise à jour.');
|
await message.reply('Veuillez fournir une mention de rôle ou un ID pour la mise à jour.');
|
||||||
|
|
||||||
const filter = m => m.author.id === message.author.id;
|
const filter = m => m.author.id === message.author.id;
|
||||||
const collector2 = message.channel.createMessageCollector({ filter: filter, max: 1, time: 60000 });
|
const collector2 = message.channel.createMessageCollector({ filter: filter, max: 1, time: 60000 });
|
||||||
|
|
||||||
collector2.on('collect', async collected => {
|
collector2.on('collect', async collected => {
|
||||||
const roleMention = collected.mentions.roles.first();
|
const roleMention = collected.mentions.roles.first();
|
||||||
const roleID = roleMention ? roleMention.id : collected.content;
|
const roleID = roleMention ? roleMention.id : collected.content;
|
||||||
|
|
||||||
const role = message.guild.roles.cache.get(roleID);
|
const role = message.guild.roles.cache.get(roleID);
|
||||||
if (!role) {
|
if (!role) {
|
||||||
await i.followUp('L\'ID du rôle fourni n\'est pas valide. Veuillez réessayer.');
|
await i.followUp('L\'ID du rôle fourni n\'est pas valide. Veuillez réessayer.');
|
||||||
} else {
|
} else {
|
||||||
db.run(`INSERT OR REPLACE INTO soutiens (roleID, guildID) VALUES (?, ?)`, [roleID, guildID], async function(err) {
|
// Utilisation de INSERT OR IGNORE pour éviter de supprimer les données existantes
|
||||||
if (err) {
|
db.run(`INSERT OR IGNORE INTO soutiens (guildID) VALUES (?)`, [guildID], function(err) {
|
||||||
console.log(err.message);
|
if (err) {
|
||||||
} else {
|
console.log(err.message);
|
||||||
|
} else {
|
||||||
let soutienData = await new Promise((resolve, reject) => {
|
db.run(`UPDATE soutiens SET roleID = ? WHERE guildID = ?`, [roleID, guildID], async function(err) {
|
||||||
db.get(`SELECT * FROM soutiens WHERE guildID = ?`, [guildID], (err, row) => {
|
if (err) {
|
||||||
if (err) {
|
console.log(err.message);
|
||||||
console.log(err.message);
|
} else {
|
||||||
reject(err);
|
let soutienData = await new Promise((resolve, reject) => {
|
||||||
} else {
|
db.get(`SELECT * FROM soutiens WHERE guildID = ?`, [guildID], (err, row) => {
|
||||||
resolve(row ? row : {});
|
if (err) {
|
||||||
}
|
console.log(err.message);
|
||||||
});
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve(row ? row : {});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
const role = message.guild.roles.cache.get(soutienData.roleID);
|
});
|
||||||
const roleValue = role ? role : "Rôle non trouvé";
|
const role = message.guild.roles.cache.get(soutienData.roleID);
|
||||||
const messagesSoutien = Array.isArray(soutienData.messageSoutien) ? soutienData.messageSoutien.join(', ') : soutienData.messageSoutien;
|
const roleValue = role ? `<@&${role.id}>` : "Rôle non trouvé";
|
||||||
|
const messagesArray = JSON.parse(soutienData.message);
|
||||||
|
const messagesSoutien = messagesArray.join(', ');
|
||||||
|
|
||||||
const updatedEmbed = new EmbedBuilder()
|
const updatedEmbed = new EmbedBuilder()
|
||||||
.setTitle('Soutien mis à jour')
|
.setTitle('Configuration Soutien')
|
||||||
.addFields(
|
.addFields(
|
||||||
{ name: '✅ Status', value: soutienData.status === "on" ? "✅" : "❌", inline: true },
|
{ name: '✅ Status', value: soutienData.status === "on" ? "✅" : "❌", inline: true },
|
||||||
{ name: '📍 Rôle', value: roleValue, inline: true },
|
{ name: '📍 Rôle', value: roleValue, inline: true },
|
||||||
{ name: '📝 Message', value: messagesSoutien || 'Non défini', inline: true },
|
{ name: '📝 Message', value: messagesSoutien || 'Non défini', inline: true },
|
||||||
{ name: '🔧 Paramètre', value: soutienData.parametre === 'inclus' || !soutienData.parametre ?'Inclus dans la status': "Ne contien que le status", inline: true }
|
{ name: '🔧 Paramètre', value: soutienData.parametre === 'inclus' || !soutienData.parametre ?'Inclus dans la status': "Ne contien que le status", inline: true }
|
||||||
)
|
)
|
||||||
.setColor('#0099ff');
|
.setColor('#0099ff');
|
||||||
await i.update({ embeds: [updatedEmbed], components: [row] });
|
await i.update({ embeds: [updatedEmbed], components: [rowactionrow] });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
collector2.on('end', collected => {
|
collector2.on('end', collected => {
|
||||||
if (collected.size === 0) {
|
if (collected.size === 0) {
|
||||||
message.reply('Vous n\'avez pas fourni de mention de rôle ou d\'ID.');
|
message.reply('Vous n\'avez pas fourni de mention de rôle ou d\'ID.');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
} else if (i.values[0] === 'addstatus') {
|
} else if (i.values[0] === 'addstatus') {
|
||||||
@@ -174,42 +182,151 @@ const row = new ActionRowBuilder().addComponents(select1);
|
|||||||
const collector = message.channel.createMessageCollector({ filter: filter, max: 1, time: 60000 });
|
const collector = message.channel.createMessageCollector({ filter: filter, max: 1, time: 60000 });
|
||||||
|
|
||||||
collector.on('collect', async collected => {
|
collector.on('collect', async collected => {
|
||||||
const newStatus = collected.content;
|
const newStatus = collected.content;
|
||||||
|
|
||||||
let currentSoutienData = await new Promise((resolve, reject) => {
|
let currentSoutienData = await new Promise((resolve, reject) => {
|
||||||
db.get(`SELECT * FROM soutiens WHERE guildID = ?`, [guildID], (err, row) => {
|
db.get(`SELECT * FROM soutiens WHERE guildID = ?`, [guildID], (err, row) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.error(err.message);
|
console.error(err.message);
|
||||||
reject(err);
|
reject(err);
|
||||||
} else {
|
} else {
|
||||||
resolve(row ? row : {});
|
resolve(row ? row : {});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
let messagesSoutien = currentSoutienData.message ? JSON.parse(currentSoutienData.message) : [];
|
||||||
|
// Ajouter le nouveau statut au tableau
|
||||||
|
messagesSoutien.push(newStatus);
|
||||||
|
|
||||||
|
await new Promise((resolve, reject) => {
|
||||||
|
db.run(`INSERT OR IGNORE INTO soutiens (guildID) VALUES (?)`, [guildID], function(err) {
|
||||||
|
if (err) {
|
||||||
|
console.log(err.message);
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
// Mettre à jour la base de données avec le nouveau tableau
|
||||||
|
db.run(`UPDATE soutiens SET message = ? WHERE guildID = ?`, [JSON.stringify(messagesSoutien), guildID], function(err) {
|
||||||
|
if (err) {
|
||||||
|
console.log(err.message);
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
let soutienData = await new Promise((resolve, reject) => {
|
||||||
|
db.get(`SELECT * FROM soutiens WHERE guildID = ?`, [guildID], (err, row) => {
|
||||||
|
if (err) {
|
||||||
|
console.log(err.message);
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve(row ? row : {});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
const role = message.guild.roles.cache.get(soutienData.roleID);
|
||||||
|
const roleValue = role ? `<@&${role.id}>` : "Rôle non trouvé";
|
||||||
|
const messagesArray = JSON.parse(soutienData.message);
|
||||||
|
const messagesSoutien2 = messagesArray.join(', ');
|
||||||
|
|
||||||
let messagesSoutien = Array.isArray(currentSoutienData.message) ? currentSoutienData.message : [];
|
const updatedEmbed = new EmbedBuilder()
|
||||||
messagesSoutien.push(newStatus);
|
.setTitle('Configuration Soutien')
|
||||||
|
.addFields(
|
||||||
await new Promise((resolve, reject) => {
|
{ name: '✅ Status', value: soutienData.status === "on" ? "✅" : "❌", inline: true },
|
||||||
db.run(`INSERT OR REPLACE INTO soutiens (message, guildID) VALUES (?, ?)`, [JSON.stringify(messagesSoutien), guildID], function(err) {
|
{ name: '📍 Rôle', value: roleValue, inline: true },
|
||||||
if (err) {
|
{ name: '📝 Message', value: messagesSoutien2 || 'Non défini', inline: true },
|
||||||
console.log(err.message);
|
{ name: '🔧 Paramètre', value: soutienData.parametre === 'inclus' || !soutienData.parametre ?'Inclus dans la status': "Ne contien que le status", inline: true }
|
||||||
reject(err);
|
)
|
||||||
} else {
|
.setColor('#0099ff');
|
||||||
resolve();
|
await i.update({ embeds: [updatedEmbed], components: [rowactionrow] });
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
collector.on('end', collected => {
|
collector.on('end', collected => {
|
||||||
if (collected.size === 0) {
|
if (collected.size === 0) {
|
||||||
message.reply('Vous n\'avez pas fourni de nouveau statut.');
|
message.reply('Vous n\'avez pas fourni de nouveau statut.');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
} else if (i.values[0] === 'delstatus') {
|
||||||
else if (i.values[0] === 'delstatus') {
|
await message.reply('Veuillez fournir le statut à supprimer.');
|
||||||
} else if (i.values[0] === 'inclusstatus') {
|
|
||||||
|
const filter = m => m.author.id === message.author.id;
|
||||||
|
const collector = message.channel.createMessageCollector({ filter: filter, max: 1, time: 60000 });
|
||||||
|
|
||||||
|
collector.on('collect', async collected => {
|
||||||
|
const statusToDelete = collected.content;
|
||||||
|
|
||||||
|
let currentSoutienData = await new Promise((resolve, reject) => {
|
||||||
|
db.get(`SELECT * FROM soutiens WHERE guildID = ?`, [guildID], (err, row) => {
|
||||||
|
if (err) {
|
||||||
|
console.error(err.message);
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve(row ? row : {});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
let messagesSoutien = currentSoutienData.message ? JSON.parse(currentSoutienData.message) : [];
|
||||||
|
// Vérifier si le statut existe dans le tableau
|
||||||
|
const index = messagesSoutien.indexOf(statusToDelete);
|
||||||
|
if (index !== -1) {
|
||||||
|
// Supprimer le statut du tableau
|
||||||
|
messagesSoutien.splice(index, 1);
|
||||||
|
await new Promise((resolve, reject) => {
|
||||||
|
db.run(`INSERT OR IGNORE INTO soutiens (guildID) VALUES (?)`, [guildID], function(err) {
|
||||||
|
if (err) {
|
||||||
|
console.log(err.message);
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
db.run(`UPDATE soutiens SET message = ? WHERE guildID = ?`, [JSON.stringify(messagesSoutien), guildID], function(err) {
|
||||||
|
if (err) {
|
||||||
|
console.log(err.message);
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
let soutienData = await new Promise((resolve, reject) => {
|
||||||
|
db.get(`SELECT * FROM soutiens WHERE guildID = ?`, [guildID], (err, row) => {
|
||||||
|
if (err) {
|
||||||
|
console.log(err.message);
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve(row ? row : {});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
const role = message.guild.roles.cache.get(soutienData.roleID);
|
||||||
|
const roleValue = role ? `<@&${role.id}>` : "Rôle non trouvé";
|
||||||
|
const messagesArray = JSON.parse(soutienData.message);
|
||||||
|
const messagesSoutien2 = messagesArray.join(', ');
|
||||||
|
|
||||||
|
const updatedEmbed = new EmbedBuilder()
|
||||||
|
.setTitle('Configuration Soutien')
|
||||||
|
.addFields(
|
||||||
|
{ name: '✅ Status', value: soutienData.status === "on" ? "✅" : "❌", inline: true },
|
||||||
|
{ name: '📍 Rôle', value: roleValue, inline: true },
|
||||||
|
{ name: '📝 Message', value: messagesSoutien2 || 'Non défini', inline: true },
|
||||||
|
{ name: '🔧 Paramètre', value: soutienData.parametre === 'inclus' || !soutienData.parametre ?'Inclus dans la status': "Ne contien que le status", inline: true }
|
||||||
|
)
|
||||||
|
.setColor('#0099ff');
|
||||||
|
await i.update({ embeds: [updatedEmbed], components: [rowactionrow] });
|
||||||
|
} else {
|
||||||
|
await i.reply(`Le statut "${statusToDelete}" n'a pas été trouvé.`);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
collector.on('end', collected => {
|
||||||
|
if (collected.size === 0) {
|
||||||
|
message.reply('Vous n\'avez pas fourni de statut à supprimer.');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else if (i.values[0] === 'inclusstatus') {
|
||||||
await updateStatusType(guildID, 'inclus');
|
await updateStatusType(guildID, 'inclus');
|
||||||
let soutienData = await new Promise((resolve, reject) => {
|
let soutienData = await new Promise((resolve, reject) => {
|
||||||
db.get(`SELECT * FROM soutiens WHERE guildID = ?`, [guildID], (err, row) => {
|
db.get(`SELECT * FROM soutiens WHERE guildID = ?`, [guildID], (err, row) => {
|
||||||
@@ -222,11 +339,12 @@ const row = new ActionRowBuilder().addComponents(select1);
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
const role = message.guild.roles.cache.get(soutienData.roleID);
|
const role = message.guild.roles.cache.get(soutienData.roleID);
|
||||||
const roleValue = role ? role : "Rôle non trouvé";
|
const roleValue = role ? `<@&${role.id}>` : "Rôle non trouvé";
|
||||||
const messagesSoutien = Array.isArray(soutienData.messageSoutien) ? soutienData.messageSoutien.join(', ') : soutienData.messageSoutien;
|
const messagesArray = JSON.parse(soutienData.message);
|
||||||
|
const messagesSoutien = messagesArray.join(', ');
|
||||||
|
|
||||||
const updatedEmbed = new EmbedBuilder()
|
const updatedEmbed = new EmbedBuilder()
|
||||||
.setTitle('Soutien mis à jour')
|
.setTitle('Configuration Soutien')
|
||||||
.addFields(
|
.addFields(
|
||||||
{ name: '✅ Status', value: soutienData.status === "on" ? "✅" : "❌", inline: true },
|
{ name: '✅ Status', value: soutienData.status === "on" ? "✅" : "❌", inline: true },
|
||||||
{ name: '📍 Rôle', value: roleValue, inline: true },
|
{ name: '📍 Rôle', value: roleValue, inline: true },
|
||||||
@@ -234,7 +352,7 @@ const row = new ActionRowBuilder().addComponents(select1);
|
|||||||
{ name: '🔧 Paramètre', value: soutienData.parametre === 'inclus' || !soutienData.parametre ?'Inclus dans la status': "Ne contien que le status", inline: true }
|
{ name: '🔧 Paramètre', value: soutienData.parametre === 'inclus' || !soutienData.parametre ?'Inclus dans la status': "Ne contien que le status", inline: true }
|
||||||
)
|
)
|
||||||
.setColor('#0099ff');
|
.setColor('#0099ff');
|
||||||
await i.update({ embeds: [updatedEmbed], components: [row] });
|
await i.update({ embeds: [updatedEmbed], components: [rowactionrow] });
|
||||||
} else if (i.values[0] === 'fixstatus') {
|
} else if (i.values[0] === 'fixstatus') {
|
||||||
await updateStatusType(guildID, 'fix');
|
await updateStatusType(guildID, 'fix');
|
||||||
let soutienData = await new Promise((resolve, reject) => {
|
let soutienData = await new Promise((resolve, reject) => {
|
||||||
@@ -248,11 +366,12 @@ const row = new ActionRowBuilder().addComponents(select1);
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
const role = message.guild.roles.cache.get(soutienData.roleID);
|
const role = message.guild.roles.cache.get(soutienData.roleID);
|
||||||
const roleValue = role ? role : "Rôle non trouvé";
|
const roleValue = role ? `<@&${role.id}>` : "Rôle non trouvé";
|
||||||
const messagesSoutien = Array.isArray(soutienData.messageSoutien) ? soutienData.messageSoutien.join(', ') : soutienData.messageSoutien;
|
const messagesArray = JSON.parse(soutienData.message);
|
||||||
|
const messagesSoutien = messagesArray.join(', ');
|
||||||
|
|
||||||
const updatedEmbed = new EmbedBuilder()
|
const updatedEmbed = new EmbedBuilder()
|
||||||
.setTitle('Soutien mis à jour')
|
.setTitle('Configuration Soutien')
|
||||||
.addFields(
|
.addFields(
|
||||||
{ name: '✅ Status', value: soutienData.status === "on" ? "✅" : "❌", inline: true },
|
{ name: '✅ Status', value: soutienData.status === "on" ? "✅" : "❌", inline: true },
|
||||||
{ name: '📍 Rôle', value: roleValue, inline: true },
|
{ name: '📍 Rôle', value: roleValue, inline: true },
|
||||||
@@ -260,7 +379,7 @@ const row = new ActionRowBuilder().addComponents(select1);
|
|||||||
{ name: '🔧 Paramètre', value: soutienData.parametre === 'inclus' || !soutienData.parametre ?'Inclus dans la status': "Ne contien que le status", inline: true }
|
{ name: '🔧 Paramètre', value: soutienData.parametre === 'inclus' || !soutienData.parametre ?'Inclus dans la status': "Ne contien que le status", inline: true }
|
||||||
)
|
)
|
||||||
.setColor('#0099ff');
|
.setColor('#0099ff');
|
||||||
await i.update({ embeds: [updatedEmbed], components: [row] });
|
await i.update({ embeds: [updatedEmbed], components: [rowactionrow] });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -271,12 +390,19 @@ const row = new ActionRowBuilder().addComponents(select1);
|
|||||||
};
|
};
|
||||||
async function updateStatusType(guildID, statusType) {
|
async function updateStatusType(guildID, statusType) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
db.run(`INSERT OR REPLACE INTO soutiens (guildID, parametre) VALUES (?, ?)`, [guildID, statusType], function(err) {
|
db.run(`INSERT OR IGNORE INTO soutiens (guildID) VALUES (?)`, [guildID], function(err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.error(err.message);
|
console.error(err.message);
|
||||||
reject(err);
|
reject(err);
|
||||||
} else {
|
} else {
|
||||||
resolve();
|
db.run(`UPDATE soutiens SET parametre = ? WHERE guildID = ?`, [statusType, guildID], function(err) {
|
||||||
|
if (err) {
|
||||||
|
console.error(err.message);
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
+41
-36
@@ -186,18 +186,6 @@ module.exports = {
|
|||||||
|
|
||||||
return message.reply({ embeds: [embed_command] });
|
return message.reply({ embeds: [embed_command] });
|
||||||
}
|
}
|
||||||
|
|
||||||
const categories = {
|
|
||||||
antiraid: [],
|
|
||||||
botcontrol: [],
|
|
||||||
moderation: [],
|
|
||||||
buyer: [],
|
|
||||||
game: [],
|
|
||||||
gestion: [],
|
|
||||||
utils: [],
|
|
||||||
invitation: [],
|
|
||||||
other: [],
|
|
||||||
};
|
|
||||||
const categoryEmojis = {
|
const categoryEmojis = {
|
||||||
antiraid: '🛡️',
|
antiraid: '🛡️',
|
||||||
botcontrol: '🛠️',
|
botcontrol: '🛠️',
|
||||||
@@ -209,39 +197,56 @@ module.exports = {
|
|||||||
invitation: '📩',
|
invitation: '📩',
|
||||||
other: '❓',
|
other: '❓',
|
||||||
};
|
};
|
||||||
|
let liste = [];
|
||||||
|
let categories = {
|
||||||
|
antiraid: [],
|
||||||
|
botcontrol: [],
|
||||||
|
moderation: [],
|
||||||
|
buyer: [],
|
||||||
|
game: [],
|
||||||
|
gestion: [],
|
||||||
|
utils: [],
|
||||||
|
invitation: [],
|
||||||
|
other: [],
|
||||||
|
};
|
||||||
|
|
||||||
let liste = [];
|
for (const command of client.commands.values()) {
|
||||||
for (const command of client.commands.values()) {
|
|
||||||
const existingCommand = liste.find(cmd => cmd.name === command.name);
|
const existingCommand = liste.find(cmd => cmd.name === command.name);
|
||||||
if (!existingCommand) {
|
if (!existingCommand) {
|
||||||
liste.push(command);
|
liste.push(command);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (const command of liste) {
|
|
||||||
|
for (const command of liste) {
|
||||||
if (command.category && categories[command.category]) {
|
if (command.category && categories[command.category]) {
|
||||||
categories[command.category].push({ name: command.name, description: command.description, emote: command.emote, utilisation: command.utilisation});
|
categories[command.category].push(command);
|
||||||
} else {
|
} else {
|
||||||
categories['other'].push({ name: command.name, description: command.description, emote: command.emote, utilisation: command.utilisation});
|
categories['other'].push(command);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let totalCommands = liste.length
|
let totalCommands = liste.length;
|
||||||
let description = `Sélectionnez une catégorie parmi les options ci-dessous pour obtenir de l'aide sur les commandes correspondantes.\n Il y a ${totalCommands} commandes disponibles\n\n`;
|
|
||||||
|
|
||||||
for (const [category, commands] of Object.entries(categories)) {
|
let commandCounts = {};
|
||||||
description += `**Catégorie ${category}** (${commands.length})\n`;
|
for (const [category, commands] of Object.entries(categories)) {
|
||||||
description += commands.length > 0 ? '> ' + commands.map(command => `\`${command.name}\``).join(', ') : '> Aucune commande dans cette catégorie';
|
commandCounts[category] = commands.length;
|
||||||
description += '\n\n';
|
}
|
||||||
}
|
|
||||||
|
|
||||||
const embeds = {
|
const embeds = {
|
||||||
home: new EmbedBuilder()
|
home: new EmbedBuilder()
|
||||||
.setColor('#0099ff')
|
.setColor('#0099ff')
|
||||||
.setTitle('📚 Information')
|
.setTitle('📚 Information')
|
||||||
.setDescription(description)
|
.setDescription(`Sélectionnez une catégorie parmi les options ci-dessous pour obtenir de l'aide sur les commandes correspondantes.Il y a ${totalCommands} commandes disponibles`)
|
||||||
.setThumbnail(message.guild.iconURL())
|
.setThumbnail(message.guild.iconURL())
|
||||||
.setTimestamp()
|
.setTimestamp()
|
||||||
.setFooter({text: `${client.user.tag} © 2024`, iconURL: client.user.displayAvatarURL({dynamic: true})})
|
.setFooter({text: `By Valou336 and tuturp33`, iconURL: client.user.displayAvatarURL({dynamic: true})})
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let categoriesString = '';
|
||||||
|
for (const [category, emoji] of Object.entries(categoryEmojis)) {
|
||||||
|
categoriesString += `${emoji} ${category.charAt(0).toUpperCase() + category.slice(1)}: ${commandCounts[category]} \n`;
|
||||||
|
}
|
||||||
|
|
||||||
|
embeds.home.addFields({name: ' ', value: `\`\`\`${categoriesString}\`\`\``});
|
||||||
|
|
||||||
for (const [category, commands] of Object.entries(categories)) {
|
for (const [category, commands] of Object.entries(categories)) {
|
||||||
let description;
|
let description;
|
||||||
@@ -263,7 +268,7 @@ module.exports = {
|
|||||||
.setCustomId('help_menu')
|
.setCustomId('help_menu')
|
||||||
.setPlaceholder('Sélectionnez une catégorie')
|
.setPlaceholder('Sélectionnez une catégorie')
|
||||||
.addOptions([
|
.addOptions([
|
||||||
{ label: 'Accueil', value: 'home' },
|
{ label: '🏠 Accueil', value: 'home' },
|
||||||
...Object.keys(categories).map(category => ({ label: `${categoryEmojis[category]} ${category}`, value: category })),
|
...Object.keys(categories).map(category => ({ label: `${categoryEmojis[category]} ${category}`, value: category })),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|||||||
@@ -13,20 +13,38 @@ module.exports = {
|
|||||||
if (row) {
|
if (row) {
|
||||||
const status = row.status;
|
const status = row.status;
|
||||||
if (status === 'on'){
|
if (status === 'on'){
|
||||||
const roleSoutien = row.roleID;
|
const parameter = row.parametre;
|
||||||
const messageSoutien = row.message;
|
const roleSoutien = row.roleID;
|
||||||
|
const messageSoutien = row.message;
|
||||||
|
let messagesSoutien = Array.isArray(messageSoutien) ? messageSoutien : JSON.parse(messageSoutien);
|
||||||
|
const role = newPresence.guild.roles.cache.find(role => role.id === roleSoutien);
|
||||||
|
const hasRole = newPresence.member.roles.cache.has(roleSoutien);
|
||||||
|
|
||||||
if (newPresence.activities[0].state.includes(messageSoutien)) {
|
if (parameter === 'inclus') {
|
||||||
const role = newPresence.guild.roles.cache.find(role => role.id === roleSoutien);
|
const isStatusMatched = messagesSoutien.some(message => newPresence.activities[0].state.includes(message));
|
||||||
if (role) {
|
if (isStatusMatched && !hasRole) {
|
||||||
newPresence.member.roles.add(role);
|
newPresence.member.roles.add(role);
|
||||||
}
|
} else if (!isStatusMatched && hasRole) {
|
||||||
} else if (!newPresence.activities[0].state.includes(messageSoutien)) {
|
newPresence.member.roles.remove(role);
|
||||||
const role = newPresence.guild.roles.cache.find(role => role.id === roleSoutien);
|
}
|
||||||
if (role) {
|
} else if (parameter === 'fix') {
|
||||||
newPresence.member.roles.remove(role);
|
const hasRole = newPresence.member.roles.cache.has(roleSoutien);
|
||||||
}
|
const isStatusExactMatch = messagesSoutien.includes(newPresence.activities[0].state);
|
||||||
}
|
|
||||||
|
if (isStatusExactMatch && !hasRole) {
|
||||||
|
const role = newPresence.guild.roles.cache.find(role => role.id === roleSoutien);
|
||||||
|
//ajouter le rôle
|
||||||
|
if (role) {
|
||||||
|
newPresence.member.roles.add(role);
|
||||||
|
}
|
||||||
|
} else if (!isStatusExactMatch && hasRole) {
|
||||||
|
// Supprimer le rôle
|
||||||
|
const role = newPresence.guild.roles.cache.find(role => role.id === roleSoutien);
|
||||||
|
if (role) {
|
||||||
|
newPresence.member.roles.remove(role);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user