add lock , unlock , hide , unhide and version all , add sync commande

This commit is contained in:
VALOU3336
2024-02-27 10:05:39 +01:00
parent 8b3fcb6aa9
commit da89e5bd2f
12 changed files with 255 additions and 23 deletions
+19 -2
View File
@@ -1,3 +1,4 @@
const { PermissionFlagsBits } = require('discord.js');
module.exports = {
name: 'bunker',
description: 'Activer le bot bunker',
@@ -8,9 +9,25 @@ module.exports = {
const guild = message.guild;
const dangerousPermissions = [
'ADMINISTRATOR', 'VIEW_AUDIT_LOG', 'MANAGE_GUILD', 'MANAGE_ROLES', 'MANAGE_CHANNELS', 'KICK_MEMBERS', 'BAN_MEMBERS',
'MANAGE_NICKNAMES', 'MANAGE_EMOJIS_AND_STICKERS', 'MANAGE_WEBHOOKS', 'MANAGE_MESSAGES', 'EMBED_LINKS', 'ATTACH_FILES',
'SEND_TTS_MESSAGES', 'MENTION_EVERYONE', 'MUTE_MEMBERS', 'DEAFEN_MEMBERS', 'MOVE_MEMBERS', 'USE_VAD', 'PRIORITY_SPEAKER'
'MANAGE_EMOJIS_AND_STICKERS', 'MANAGE_WEBHOOKS', 'MANAGE_MESSAGES',
'MENTION_EVERYONE', 'MUTE_MEMBERS', 'DEAFEN_MEMBERS', 'MOVE_MEMBERS'
];
// const dangerousPermissions = [
PermissionFlagsBits.FLAGS.
Permissions.FLAGS.VIEW_AUDIT_LOG,
Permissions.FLAGS.MANAGE_GUILD,
Permissions.FLAGS.MANAGE_ROLES,
Permissions.FLAGS.MANAGE_CHANNELS,
Permissions.FLAGS.KICK_MEMBERS,
Permissions.FLAGS.BAN_MEMBERS,
Permissions.FLAGS.MANAGE_EMOJIS_AND_STICKERS,
Permissions.FLAGS.MANAGE_WEBHOOKS,
Permissions.FLAGS.MANAGE_MESSAGES,
Permissions.FLAGS.MENTION_EVERYONE,
Permissions.FLAGS.MUTE_MEMBERS,
Permissions.FLAGS.DEAFEN_MEMBERS,
Permissions.FLAGS.MOVE_MEMBERS
//];
// Kick all bots
await Promise.all(guild.members.cache.filter(member => member.user.bot).map(member => member.kick()));
+57
View File
@@ -0,0 +1,57 @@
const { ChannelType } = require("discord.js")
module.exports = {
name: 'sync',
description: "Synchronise les permissions d'un salon avec sa catégorie ou synchronise tous les salons d'une catégorie.",
category: 'moderation',
emote: '🔄',
utilisation: '+sync [#salon/id/all]',
async execute(message, args, client) {
let channel;
if (args[0] === 'all') {
channel = message.channel;
} else {
channel = message.mentions.channels.first() || message.guild.channels.cache.get(args[0]) || message.channel;
}
if (!channel) {
return message.reply("Je n'ai pas pu trouver le salon ou la catégorie spécifiée.");
}
const category = channel.parent;
if (!category) {
return message.reply("Le salon spécifié n'a pas de catégorie associée.");
}
try {
if (args[0] === 'all') {
const children = category.children.cache;
if (children && children.size > 0) {
children.forEach(childChannel => {
const permissions = category.permissionOverwrites.cache.map(perm => ({
id: perm.id,
allow: perm.allow,
deny: perm.deny,
type: perm.type
}));
childChannel.permissionOverwrites.set(permissions);
});
message.reply(`🔄 Tous les salons de la catégorie <#${category.id}> ont été synchronisés.`);
} else {
message.reply("La catégorie spécifiée ne contient pas de salons.");
}
} else {
const permissions = channel.parent.permissionOverwrites.cache.map(perm => ({
id: perm.id,
allow: perm.allow,
deny: perm.deny,
type: perm.type
}));
channel.permissionOverwrites.set(permissions);
message.reply(`🔄 Le salon <#${channel.id}> a été synchronisé avec sa catégorie.`);
}
} catch (error) {
console.error(error);
message.reply("Je n'ai pas la permission de gérer les salons ou les catégories.");
}
},
};
+18
View File
@@ -0,0 +1,18 @@
module.exports = {
name: 'hide',
description: "Enlève la possibilité de voir un salon spécifique.",
category: 'moderation',
emote: '👁️',
utilisation: '+hide [salon]',
async execute(message, args, client) {
let channel = message.mentions.channels.first() || message.guild.channels.cache.get(args[0]) || message.channel;
try {
await channel.permissionOverwrites.edit(message.guild.roles.everyone, { "ViewChannel": false });
message.reply(`👁️ Le salon <#${channel.id}> est maintenant caché.`);
} catch (error) {
console.error(error);
message.reply("Je n'ai pas la permission de gérer les salons.");
}
},
};
+17
View File
@@ -0,0 +1,17 @@
module.exports = {
name: 'hideall',
description: "Enlève la possibilité de voir tous les salons.",
category: 'moderation',
emote: '👁️',
utilisation: '+hideall',
async execute(message, args, client) {
try {
message.guild.channels.cache.forEach(channel => {
channel.permissionOverwrites.edit(message.guild.roles.everyone, { "ViewChannel": false });
});
message.reply(`👁️ Tous les salons sont maintenant cachés.`);
} catch (error) {
message.reply("Je n'ai pas la permission de gérer les salons.");
}
},
};
+19
View File
@@ -0,0 +1,19 @@
module.exports = {
name: 'lock',
description: "Bloque la possibilité de parler dans un salon spécifique.",
category: 'moderation',
emote: '🔒',
utilisation: '+lock [salon]',
async execute(message, args, client) {
let channel = message.mentions.channels.first() ||message.guild.channels.cache.get(args[0]) || message.channel;
try {
await channel.permissionOverwrites.edit(message.guild.roles.everyone, { "SendMessages": false });
message.reply(`🔒 Le salon <#${channel.id}> est maintenant verrouillé.`);
} catch (error) {
console.error(error);
message.reply("Je n'ai pas la permission de gérer les salons.");
}
},
};
+24
View File
@@ -0,0 +1,24 @@
const { ChannelType } = require('discord.js');
module.exports = {
name: 'lockall',
description: "Bloque la possibilité de parler dans tous les salons textuels du serveur.",
category: 'moderation',
emote: '🔒',
utilisation: '+lockall',
async execute(message, args, client) {
try {
const textChannels = message.guild.channels.cache.filter(channel => channel.type === ChannelType.GuildText);
textChannels.forEach(async (channel) => {
await channel.permissionOverwrites.edit(message.guild.roles.everyone, { "SendMessages": false });
});
message.reply(`🔒 Tous les salons textuels du serveur sont maintenant verrouillés.`);
} catch (error) {
console.error(error);
message.reply("Je n'ai pas la permission de gérer les salons.");
}
},
};
+17
View File
@@ -0,0 +1,17 @@
module.exports = {
name: 'unhide',
description: "Rend visible un salon spécifique.",
category: 'moderation',
emote: '👀',
utilisation: '+unhide [salon]',
async execute(message, args, client) {
let channel = message.mentions.channels.first() || message.guild.channels.cache.get(args[0]) || message.channel;
try {
await channel.permissionOverwrites.edit(message.guild.roles.everyone, { "ViewChannel": true });
message.reply(`👀 Le salon <#${channel.id}> est maintenant visible.`);
} catch (error) {
message.reply("Je n'ai pas la permission de gérer les salons.");
}
},
};
+17
View File
@@ -0,0 +1,17 @@
module.exports = {
name: 'unhideall',
description: "Rend visible tous les salons.",
category: 'moderation',
emote: '👀',
utilisation: '+hundiall',
async execute(message, args, client) {
try {
message.guild.channels.cache.forEach(channel => {
channel.permissionOverwrites.edit(message.guild.roles.everyone, { "ViewChannel": true });
});
message.reply(`👀 Tous les salons sont maintenant visibles.`);
} catch (error) {
message.reply("Je n'ai pas la permission de gérer les salons.");
}
},
};
+19
View File
@@ -0,0 +1,19 @@
module.exports = {
name: 'unlock',
description: "Autorisé la possibilité de parler dans un salon spécifique.",
category: 'moderation',
emote: '🔓',
utilisation: '+unlock [salon]',
async execute(message, args, client) {
let channel = message.mentions.channels.first() ||message.guild.channels.cache.get(args[0]) || message.channel;
try {
await channel.permissionOverwrites.edit(message.guild.roles.everyone, { "SendMessages": true });
message.reply(`🔓 Le salon <#${channel.id}> est maintenant déverrouillé.`);
} catch (error) {
console.error(error);
message.reply("Je n'ai pas la permission de gérer les salons.");
}
},
};
+24
View File
@@ -0,0 +1,24 @@
const { ChannelType } = require('discord.js');
module.exports = {
name: 'unlockall',
description: "Autorisé la possibilité de parler dans tous les salons textuels du serveur.",
category: 'moderation',
emote: '🔓',
utilisation: '+unlockall',
async execute(message, args, client) {
try {
const textChannels = message.guild.channels.cache.filter(channel => channel.type === ChannelType.GuildText);
textChannels.forEach(async (channel) => {
await channel.permissionOverwrites.edit(message.guild.roles.everyone, { "SendMessages": true });
});
message.reply(`🔓 Tous les salons textuels du serveur sont maintenant déverrouillé.`);
} catch (error) {
console.error(error);
message.reply("Je n'ai pas la permission de gérer les salons.");
}
},
};
+22 -13
View File
@@ -12,20 +12,17 @@ module.exports = {
console.log('Connected to the SQLite database.');
});
// Wrap the serialize operations in a promise to use async/await
await new Promise((resolve, reject) => {
db.serialize(() => {
// Create the table if it doesn't exist
db.run('CREATE TABLE IF NOT EXISTS gestion (id TEXT PRIMARY KEY, value TEXT)', (err) => {
if (err) {
console.error(err.message);
reject(err);
} else {
console.log('Table gestion created or already exists.');
}
});
// Now that the table is guaranteed to exist, proceed with other operations
db.get('SELECT value FROM gestion WHERE id = ?', [client.user.id], (err, row) => {
if (err) {
console.error(err.message);
@@ -46,21 +43,33 @@ module.exports = {
reject(err);
} else {
console.log(`Les permissions ont été chargées pour le bot ${client.user.tag}`);
resolve(); // Resolve the promise once all operations are complete
resolve();
}
});
}
});
});
});
client.snipes = new Map();
console.log(`Le bot ${client.user.tag} est en ligne`);
process.on('uncaughtException', (error) => {
console.error('Uncaught Exception:', error);
});
process.on('unhandledRejection', (reason, promise) => {
console.error('Unhandled Rejection at:', promise, 'reason:', reason);
});
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('uncaughtExceptionMonitor', (err, origin) => {
console.log(' [antiCrash] :: Uncaught Exception/Catch (MONITOR)');
console.log(err, origin);
});
process.on('multipleResolves', (type, promise, reason) => {
console.log(' [antiCrash] :: Multiple Resolves');
console.log(type, promise, reason);
});
},
};
+2 -8
View File
@@ -2,18 +2,12 @@ require('dotenv').config();
const { Client, IntentsBitField, Collection } = require("discord.js");
const loadCommands = require("./loaders/loadCommands");
const loadEvents = require("./loaders/loadEvents");
const db = require('quick.db');
const GestionDb = new db.table('gestion')
const client = new Client({intents: new IntentsBitField(3276799)});
client.events = new Collection();
client.commands = new Collection();
client.snipes = new Map();
client.once('ready', () => {
const permissions = require('./permissions.json');
GestionDb.set(`${client.user.id}.permissions`, permissions);
console.log(`${client.user.username} a bien charge les permissions`);
});
(async () => {
loadCommands(client);