mirror of
https://github.com/arthur-pbty/gestion.git
synced 2026-06-11 11:21:00 +02:00
add slownmode commande and prison system
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
const db = new sqlite3.Database('myDatabase.db');
|
||||
|
||||
module.exports = {
|
||||
name: 'prison',
|
||||
description: "Configure le salon de prison pour le serveur.",
|
||||
category: 'gestion',
|
||||
emote: '🔒',
|
||||
utilisation: '+prison config #salon ou id du salon',
|
||||
async execute(message, args) {
|
||||
|
||||
if (args[0] === 'config') {
|
||||
let channel;
|
||||
if (args[1].startsWith('<#') && args[1].endsWith('>')) {
|
||||
const channelId = args[1].slice(2, -1);
|
||||
channel = message.guild.channels.cache.get(channelId);
|
||||
} else {
|
||||
channel = message.guild.channels.cache.get(args[1]);
|
||||
}
|
||||
|
||||
if (!channel) {
|
||||
return message.reply("Le salon spécifié n'existe pas ou l'ID est incorrect.");
|
||||
}
|
||||
|
||||
|
||||
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) : {});
|
||||
});
|
||||
});
|
||||
|
||||
data.prisonchannel = data.prisonchannel || {};
|
||||
data.prisonchannel[message.guild.id] = channel.id;
|
||||
|
||||
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [message.client.user.id, JSON.stringify(data)], function(err) {
|
||||
if (err) {
|
||||
return console.error(err.message);
|
||||
}
|
||||
});
|
||||
|
||||
message.reply(`Le salon de prison a été défini sur <#${channel.id}>.`);
|
||||
} else if (args[0] === 'remove') {
|
||||
const users = message.mentions.users.first() || message.guild.members.cache.get(args[1])
|
||||
if (!users) {
|
||||
return message.reply("Veuillez mentionner un utilisateur valide.");
|
||||
}
|
||||
try {
|
||||
message.guild.channels.cache.forEach(channel => {
|
||||
channel.permissionOverwrites.edit(users, { });
|
||||
});
|
||||
} catch (err) {
|
||||
message.reply(`Je n'est pas pu libérer <@${users.id} de la prison`);
|
||||
}
|
||||
message.reply(`<@${users.id}> est libérer de prison`);
|
||||
}else {
|
||||
const users = message.mentions.users.first() || message.guild.members.cache.get(args[1])
|
||||
if (!users) {
|
||||
return message.reply("Veuillez mentionner un utilisateur valide.");
|
||||
}
|
||||
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) : {});
|
||||
});
|
||||
});
|
||||
data.prisonchannel = data.prisonchannel || {};
|
||||
const prisonChannelId = data.prisonchannel[message.guild.id];
|
||||
if (!prisonChannelId) {
|
||||
return message.reply("Aucun salon de prison n'est configuré pour ce serveur.");
|
||||
}
|
||||
const prisonChannel = message.guild.channels.cache.get(prisonChannelId);
|
||||
if (prisonChannel) {
|
||||
message.guild.channels.cache.forEach(channel => {
|
||||
if (channel.id !== prisonChannelId) {
|
||||
channel.permissionOverwrites.edit(users, { "ViewChannel": false });
|
||||
}
|
||||
});
|
||||
|
||||
message.reply(`<@${users.id}> est maintenant en prison`);
|
||||
} else {
|
||||
message.reply("Le salon de prison configuré n'existe pas.");
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,25 @@
|
||||
module.exports = {
|
||||
name: 'slownmode',
|
||||
description: "Met le salon en mode lent avec un délai spécifié en secondes.",
|
||||
category: 'moderation',
|
||||
emote: '⏳',
|
||||
utilisation: '+slownmode <temps en secondes>',
|
||||
async execute(message, args) {
|
||||
|
||||
if (!args[0] || isNaN(args[0])) {
|
||||
return message.reply("Veuillez spécifier un temps en secondes pour le mode lent.");
|
||||
}
|
||||
|
||||
const delay = parseInt(args[0]);
|
||||
if (delay < 0) {
|
||||
return message.reply("Le délai doit être un nombre positif.");
|
||||
}
|
||||
try {
|
||||
await message.channel.setRateLimitPerUser(delay);
|
||||
message.reply(`Le mode lent a été activé pour ce salon avec un délai de ${delay} seconde(s).`);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
message.reply("Une erreur s'est produite lors de l'application du mode lent.");
|
||||
}
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user