mirror of
https://github.com/arthur-pbty/gestion.git
synced 2026-06-03 15:07:26 +02:00
upgrade clear , add : presetlog , changeall , best configuration of the ready.js and add anticrash module,
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
|
||||
module.exports = {
|
||||
name: 'changeall',
|
||||
aliases: ['permchangeall'],
|
||||
description: 'Change le niveau de permission de toutes les commandes ayant un niveau de permission spécifié',
|
||||
emote: '🔄',
|
||||
utilisation: 'changeall <niveau actuel> <nouveau niveau>',
|
||||
category: 'botcontrol',
|
||||
|
||||
async execute(message, args, client) {
|
||||
const botId = client.user.id;
|
||||
const unchangeableCommands = ['owner', 'unowner', 'buyer'];
|
||||
|
||||
if (args.length < 2) {
|
||||
return message.reply('Veuillez spécifier un niveau de permission actuel et un nouveau niveau de permission.');
|
||||
}
|
||||
|
||||
const currentPermissionLevel = parseInt(args[0]);
|
||||
const newPermissionLevel = parseInt(args[1]);
|
||||
|
||||
if (isNaN(currentPermissionLevel) || isNaN(newPermissionLevel) || currentPermissionLevel < 0 || currentPermissionLevel > 9 || newPermissionLevel < 0 || newPermissionLevel > 9) {
|
||||
return message.reply('Veuillez spécifier des niveaux de permission valides (entre 0 et 9).');
|
||||
}
|
||||
|
||||
const db = new sqlite3.Database('myDatabase.db');
|
||||
let permissions = await new Promise((resolve, reject) => {
|
||||
db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
reject(err);
|
||||
}
|
||||
resolve(row ? JSON.parse(row.value) : {});
|
||||
});
|
||||
});
|
||||
|
||||
if (!permissions.permissions) {
|
||||
permissions.permissions = {};
|
||||
}
|
||||
|
||||
// Parcourir toutes les commandes et mettre à jour le niveau de permission
|
||||
for (const commandName in permissions.permissions) {
|
||||
if (permissions.permissions[commandName] === currentPermissionLevel) {
|
||||
permissions.permissions[commandName] = newPermissionLevel;
|
||||
}
|
||||
}
|
||||
|
||||
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify(permissions)], (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
}
|
||||
});
|
||||
|
||||
message.reply(`Le niveau de permission de toutes les commandes ayant le niveau ${currentPermissionLevel} a été changé à ${newPermissionLevel}.`);
|
||||
},
|
||||
};
|
||||
+24
-15
@@ -1,21 +1,30 @@
|
||||
const { PermissionsBitField} = require("discord.js")
|
||||
const { PermissionsBitField } = require("discord.js");
|
||||
|
||||
module.exports = {
|
||||
name: 'clear',
|
||||
aliases: ['purge', 'delete', 'suppr', 'efface', 'nettoie', 'vide', 'clean', 'effacer'],
|
||||
description: 'Clear des messages',
|
||||
emote: '🗑️',
|
||||
utilisation: 'clear <nombre de messages>',
|
||||
category: 'gestion',
|
||||
async execute(message, args, client) {
|
||||
const amount = parseInt(args[0]) + 1;
|
||||
if (isNaN(amount)) {
|
||||
return message.reply('Veuillez entrer un nombre valide');
|
||||
} else if (amount <= 1 || amount > 100) {
|
||||
return message.reply('Vous devez entrer un nombre entre 1 et 99');
|
||||
name: 'clear',
|
||||
aliases: ['purge', 'delete', 'suppr', 'efface', 'nettoie', 'vide', 'clean', 'effacer'],
|
||||
description: 'Clear des messages',
|
||||
emote: '🗑️',
|
||||
utilisation: 'clear <nombre de messages>',
|
||||
category: 'gestion',
|
||||
async execute(message, args, client) {
|
||||
let amount;
|
||||
if (args[0]) {
|
||||
amount = parseInt(args[0]);
|
||||
if (isNaN(amount)) {
|
||||
return message.reply('Veuillez entrer un nombre valide');
|
||||
} else if (amount <= 1 || amount > 100) {
|
||||
return message.reply('Vous devez entrer un nombre entre 1 et 99');
|
||||
}
|
||||
amount = amount + 2;
|
||||
} else {
|
||||
const messages = await message.channel.messages.fetch({ limit: 100 });
|
||||
amount = messages.size;
|
||||
}
|
||||
console.log(amount)
|
||||
await message.reply('🗑️ Clear en cours...');
|
||||
await message.channel.bulkDelete(amount + 1, true).catch((err) => {
|
||||
await message.channel.bulkDelete(amount).catch((err) => {
|
||||
message.reply('Une erreur est survenue lors du clear');
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
@@ -27,7 +27,7 @@ module.exports = {
|
||||
{ name: '🎙️ Logs vocaux', value: data[message.guild.id]?.vocallog ? `<#${data[message.guild.id].vocallog}>` : 'Non configuré', inline: true },
|
||||
{ name: '🛡️ Logs de raid', value: data[message.guild.id]?.raidlog ? `<#${data[message.guild.id].raidlog}>` : 'Non configuré', inline: true },
|
||||
{ name: '🔧 Logs de modération', value: data[message.guild.id]?.modlog ? `<#${data[message.guild.id].modlog}>` : 'Non configuré', inline: true },
|
||||
{ name: '🛡️ raidping', value: data[message.guild.id]?.modlog ? `<#${data[message.guild.id].modlog}>` : 'Non configuré', inline: true },
|
||||
{ name: '🛡️ raidping', value: data[message.guild.id]?.modlog ? `${data[message.guild.id].raidping}` : 'Non configuré', inline: true },
|
||||
);
|
||||
|
||||
const selectMenu = new StringSelectMenuBuilder()
|
||||
@@ -120,7 +120,7 @@ module.exports = {
|
||||
{ name: '🎙️ Logs vocaux', value: data2[message.guild.id]?.vocallog ? `<#${data2[message.guild.id].vocallog}>` : 'Non configuré', inline: true },
|
||||
{ name: '🛡️ Logs de raid', value: data2[message.guild.id]?.raidlog ? `<#${data2[message.guild.id].raidlog}>` : 'Non configuré', inline: true },
|
||||
{ name: '🔧 Logs de modération', value: data2[message.guild.id]?.modlog ? `<#${data2[message.guild.id].modlog}>` : 'Non configuré', inline: true },
|
||||
{ name: '🛡️ raidping', value: data2[message.guild.id]?.modlog ? `<#${data2[message.guild.id].modlog}>` : 'Non configuré', inline: true },
|
||||
{ name: '🛡️ raidping', value: data2[message.guild.id]?.modlog ? `${data2[message.guild.id].raidping}` : 'Non configuré', inline: true },
|
||||
);
|
||||
|
||||
logmessage.edit({ embeds: [updatedEmbed], components: [row] });
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
const { ChannelType, PermissionsBitField } = require('discord.js');
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
const db = new sqlite3.Database('myDatabase.db');
|
||||
|
||||
module.exports = {
|
||||
name: 'presetlog',
|
||||
description: 'Crée les salons de logs et les enregistre dans la base de données.',
|
||||
category: 'gestion',
|
||||
emote: '📝',
|
||||
utilisation: 'presetlog',
|
||||
async execute(message, args) {
|
||||
const sendmessage = await message.reply("\`🔄\` Les salon de log sont entrain d'etre crée...")
|
||||
const guild = message.guild;
|
||||
const categoryName = 'log';
|
||||
const channelNames = ['modlog', 'messagelog', 'vocallog', 'rolelog', 'raidlog'];
|
||||
const channelTypes = [ChannelType.GuildText, ChannelType.GuildText, ChannelType.GuildText, ChannelType.GuildText, ChannelType.GuildText];
|
||||
|
||||
let data = await new Promise((resolve, reject) => {
|
||||
db.get('SELECT value FROM gestion WHERE id = ?', [message.client.user.id], (err, row) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
reject(err);
|
||||
}
|
||||
resolve(row ? JSON.parse(row.value) : {});
|
||||
});
|
||||
});
|
||||
|
||||
if (!data[message.guild.id]) {
|
||||
data[message.guild.id] = {};
|
||||
}
|
||||
let logCategory = guild.channels.cache.find(channel => channel.type === ChannelType.GuildCategory && channel.name === categoryName);
|
||||
if (!logCategory) {
|
||||
try {
|
||||
logCategory = await guild.channels.create({
|
||||
name: categoryName,
|
||||
type: ChannelType.GuildCategory,
|
||||
});
|
||||
|
||||
} catch (error) {
|
||||
return message.channel.send('Une erreur est survenue lors de la création de la catégorie de logs.');
|
||||
}
|
||||
}
|
||||
|
||||
for (let i = 0; i < channelNames.length; i++) {
|
||||
const channelName = channelNames[i];
|
||||
const channelType = channelTypes[i];
|
||||
|
||||
const existingChannel = guild.channels.cache.find(channel => channel.parentID === logCategory.id && channel.name === channelName && channel.type === channelType);
|
||||
|
||||
|
||||
if (!existingChannel) {
|
||||
try {
|
||||
const channel = await guild.channels.create({
|
||||
name: channelName,
|
||||
type: channelType,
|
||||
parent: logCategory.id
|
||||
});
|
||||
await channel.permissionOverwrites.set([
|
||||
{
|
||||
id: guild.roles.everyone,
|
||||
deny: [PermissionsBitField.Flags.ViewChannel],
|
||||
},
|
||||
]);
|
||||
data[message.guild.id][channelName] = channel.id;
|
||||
} catch (error) {
|
||||
return message.channel.send(`Une erreur est survenue lors de la création du salon ${channelName}.`);
|
||||
}
|
||||
} else {
|
||||
data[message.guild.id][channelName] = existingChannel.id;
|
||||
}
|
||||
}
|
||||
|
||||
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [message.client.user.id, JSON.stringify(data)], function(err) {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
return message.channel.send('Une erreur est survenue lors de la mise à jour de la base de données.');
|
||||
}
|
||||
});
|
||||
|
||||
sendmessage.edit('\`✅\`Les salons de logs ont été créés et enregistrés dans la base de données.');
|
||||
},
|
||||
};
|
||||
@@ -34,7 +34,7 @@ module.exports = {
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setColor('#0099ff')
|
||||
.setDescription(`le message de raid est ${messageContent}`);
|
||||
.setDescription(`le message de raid est:** ${messageContent}**`);
|
||||
message.channel.send({ embeds: [embed] });
|
||||
},
|
||||
};
|
||||
+46
-36
@@ -33,55 +33,65 @@ module.exports = {
|
||||
}
|
||||
});
|
||||
|
||||
db.get('SELECT value FROM gestion WHERE id = ?', [client.user.id], (err, row) => {
|
||||
db.get('SELECT value FROM gestion WHERE id = ?', [client.user.id], (err, row) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
reject(err);
|
||||
console.error(err.message);
|
||||
reject(err);
|
||||
} else {
|
||||
let permissionsData = row ? JSON.parse(row.value) : {};
|
||||
|
||||
if (!permissionsData.permissions) {
|
||||
permissionsData.permissions = {};
|
||||
}
|
||||
|
||||
permissionsData.permissions = permissions;
|
||||
const permissionsJson = JSON.stringify(permissionsData);
|
||||
|
||||
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [client.user.id, permissionsJson], (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
reject(err);
|
||||
let permissionsData = row ? JSON.parse(row.value) : {};
|
||||
if (!permissionsData.permissions || Object.keys(permissionsData.permissions).length === 0) {
|
||||
permissionsData.permissions = permissions;
|
||||
const permissionsJson = JSON.stringify(permissionsData);
|
||||
|
||||
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [client.user.id, permissionsJson], (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
reject(err);
|
||||
} else {
|
||||
console.log(`Les permissions ont été chargées pour le bot ${client.user.tag}`);
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
console.log(`Les permissions ont été chargées pour le bot ${client.user.tag}`);
|
||||
resolve();
|
||||
console.log(`Les permissions existent déjà pour le bot ${client.user.tag}`);
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
client.snipes = new Map();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
console.log(`Le bot ${client.user.tag} est en ligne
|
||||
lien d'invite > https://discord.com/oauth2/authorize?client_id=${client.user.id}&scope=bot&permissions=8`);
|
||||
|
||||
|
||||
//AntiCrash
|
||||
process.on('unhandledRejection', (reason, p) => {
|
||||
console.log(' [antiCrash] :: Unhandled Rejection/Catch');
|
||||
console.log(reason, p);
|
||||
});
|
||||
|
||||
process.on('uncaughtException', (err, origin) => {
|
||||
console.log(' [antiCrash] :: Uncaught Exception/Catch');
|
||||
console.log(err, origin);
|
||||
});
|
||||
process.on('unhandledRejection', (error) => {
|
||||
console.log(' [antiCrash] :: Unhandled Rejection/Catch');
|
||||
console.log(error);
|
||||
});
|
||||
|
||||
process.on("uncaughtException", (error, origin) => {
|
||||
console.log(' [antiCrash] :: Uncaught Exception/Catch');
|
||||
console.log(error);
|
||||
console.log('Information supplémentaire:', origin);
|
||||
});
|
||||
|
||||
process.on('uncaughtExceptionMonitor', (error, origin) => {
|
||||
console.log(' [antiCrash] :: Uncaught Exception Monitor/Catch');
|
||||
console.log(error);
|
||||
console.log('Information supplémentaire:', origin);
|
||||
});
|
||||
|
||||
process.on('beforeExit', (code) => {
|
||||
console.log(' [antiCrash] :: Before Exit');
|
||||
console.log('Code de sortie:', code);
|
||||
});
|
||||
|
||||
process.on('exit', (code) => {
|
||||
console.log(' [antiCrash] :: Exit');
|
||||
console.log('Code de sortie:', code);
|
||||
});
|
||||
|
||||
},
|
||||
};
|
||||
@@ -70,8 +70,10 @@ module.exports = (client) => {
|
||||
|
||||
client.on('messageCreate', async message => {
|
||||
const botId = client.user.id;
|
||||
if (message.channel.type === ChannelType.DM){
|
||||
return
|
||||
} else {
|
||||
const guildId = message.guild.id;
|
||||
if (message.channel.type === ChannelType.DM) return
|
||||
let data = await new Promise((resolve, reject) => {
|
||||
db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => {
|
||||
if (err) {
|
||||
@@ -131,5 +133,6 @@ module.exports = (client) => {
|
||||
message.reply('Une erreur est survenue lors de l\'exécution de cette commande.');
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ const loadCommands = require("./loaders/loadCommands");
|
||||
const loadEvents = require("./loaders/loadEvents");
|
||||
const client = new Client({intents: new IntentsBitField(3276799)});
|
||||
const { GiveawaysManager } = require('discord-giveaways');
|
||||
|
||||
client.events = new Collection();
|
||||
client.commands = new Collection();
|
||||
client.giveawaysManager = new GiveawaysManager(client, {
|
||||
|
||||
Reference in New Issue
Block a user