mirror of
https://github.com/arthur-pbty/gestion.git
synced 2026-06-03 15:07:26 +02:00
add lock , unlock , hide , unhide and version all , add sync commande
This commit is contained in:
@@ -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()));
|
||||
|
||||
@@ -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.");
|
||||
}
|
||||
|
||||
},
|
||||
};
|
||||
@@ -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.");
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -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.");
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -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.");
|
||||
}
|
||||
|
||||
},
|
||||
};
|
||||
@@ -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.");
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -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.");
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -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.");
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -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.");
|
||||
}
|
||||
|
||||
},
|
||||
};
|
||||
@@ -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
@@ -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,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);
|
||||
|
||||
Reference in New Issue
Block a user