mirror of
https://github.com/arthur-pbty/gestion-perso.git
synced 2026-06-03 15:07:27 +02:00
add command
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
module.exports = {
|
||||
name: 'bunker',
|
||||
description: 'Activer le bot bunker',
|
||||
emote: '🛡️',
|
||||
utilisation: 'bunker',
|
||||
category: 'antiraid',
|
||||
|
||||
async execute(message) {
|
||||
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'
|
||||
];
|
||||
|
||||
// Kick all bots
|
||||
await Promise.all(guild.members.cache.filter(member => member.user.bot).map(member => member.kick()));
|
||||
|
||||
// Delete dangerous roles
|
||||
await Promise.all(guild.roles.cache.filter(role => dangerousPermissions.some(permission => role.permissions.has(permission))).map(role => role.delete()));
|
||||
|
||||
// Delete dangerous channel overrides
|
||||
await Promise.all(guild.channels.cache.map(async (channel) => {
|
||||
const permissionOverwrites = channel.permissionOverwrites.cache.filter(overwrite => dangerousPermissions.some(permission => overwrite.allow.has(permission) || overwrite.deny.has(permission)));
|
||||
await Promise.all(permissionOverwrites.map(overwrite => channel.permissionOverwrites.edit(overwrite.id, {})));
|
||||
}));
|
||||
|
||||
await message.reply('Le serveur a bien été sécurisé');
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,53 @@
|
||||
const { PermissionsBitField } = require('discord.js');
|
||||
|
||||
module.exports = {
|
||||
name: 'invite',
|
||||
aliases: ['inv'],
|
||||
description: 'Crée un lien d\'invitation pour un serveur spécifique',
|
||||
emote: '🔗',
|
||||
utilisation: 'invite [guildId]',
|
||||
category: 'botcontrol',
|
||||
|
||||
async execute(message, args, client) {
|
||||
// Vérifie si l'ID du serveur a été fourni
|
||||
if (!args[0]) {
|
||||
return message.reply('Veuillez fournir l\'ID du serveur.');
|
||||
}
|
||||
|
||||
const guildId = args[0];
|
||||
let guild;
|
||||
|
||||
// Tente de trouver le serveur par ID
|
||||
try {
|
||||
guild = await client.guilds.fetch(guildId);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
return message.reply('Je ne peux pas trouver le serveur avec cet ID.');
|
||||
}
|
||||
|
||||
// Vérifie si le bot est membre du serveur
|
||||
if (!guild) {
|
||||
return message.reply('Le bot n\'est pas membre de ce serveur.');
|
||||
}
|
||||
|
||||
const botMember = guild.members.cache.get(client.user.id);
|
||||
|
||||
// Vérifie si le bot a la permission de créer des invitations
|
||||
if (!botMember.permissions.has(PermissionsBitField.Flags.createInvite)) {
|
||||
return message.reply('Le bot n\'a pas la permission de créer des invitations sur ce serveur.');
|
||||
}
|
||||
|
||||
const channel = guild.channels.cache
|
||||
.filter((channel) => channel.type === 'GUILD_TEXT')
|
||||
.first();
|
||||
if (!channel) return message.channel.send(`Aucun channel textuel n'a été trouvé dans ce serveur.`);
|
||||
|
||||
await channel
|
||||
.createInvite({
|
||||
maxAge: 0,
|
||||
maxUses: 0,
|
||||
}).then(async (invite) => {
|
||||
message.channel.send(`Invitation créée pour le serveur ${guild.name} : ${invite.url}`);
|
||||
})
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,28 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
module.exports = {
|
||||
name: 'leave',
|
||||
aliases: ['leaveguild'],
|
||||
description: "Faire quitter le bot un serveur",
|
||||
emote: '🚪',
|
||||
utilisation: 'leave [guildId]',
|
||||
category: 'botcontrol',
|
||||
|
||||
async execute(message, args, client) {
|
||||
|
||||
// If an ID is provided, try to get the guild with that ID
|
||||
const guildId = args[0];
|
||||
if (guildId) {
|
||||
const guild = client.guilds.cache.get(guildId);
|
||||
if (guild) {
|
||||
guild.leave();
|
||||
message.reply(`Je vien de quitté: ${guild.name}`);
|
||||
} else {
|
||||
message.reply('Je ne suis pas dans ce serveur.');
|
||||
}
|
||||
} else {
|
||||
message.guild.leave();
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,23 @@
|
||||
import { Message } from 'discord.js';
|
||||
|
||||
module.exports = {
|
||||
aliases: ['dire'],
|
||||
description: 'Fait dire quelque chose au bot',
|
||||
emote: '💬',
|
||||
utilisation: 'say <message>',
|
||||
permission: '10',
|
||||
|
||||
async execute(message: Message, args: string[]) {
|
||||
if (args.length === 0) {
|
||||
return message.reply('Veuillez spécifier un message.');
|
||||
}
|
||||
|
||||
const text = args.join(' ');
|
||||
try {
|
||||
await message.delete();
|
||||
} catch {
|
||||
console.log('Impossible de supprimer le message de la commande say');
|
||||
}
|
||||
message.channel.send(text);
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,23 @@
|
||||
const { EmbedBuilder} = require('discord.js');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
module.exports = {
|
||||
name: 'servers',
|
||||
aliases: ['serveurs'],
|
||||
description: 'Liste les serveur du bot',
|
||||
emote: '🌐',
|
||||
utilisation: 'servers',
|
||||
category: 'botcontrol',
|
||||
async execute(message, args, client) {
|
||||
|
||||
const guilds = Array.from(client.guilds.cache.values()).map((guild, index) => `${index + 1}. ${guild.name} : ${guild.id}`).join("\n\n");
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('Liste des serveur du bot')
|
||||
.setDescription(`\n${guilds}`)
|
||||
.setColor('#0099ff');
|
||||
|
||||
message.channel.send({ embeds: [embed] });
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,48 @@
|
||||
module.exports = {
|
||||
name: 'set',
|
||||
aliases: ['changer'],
|
||||
description: 'Modifier divers paramètres du bot.',
|
||||
emote: '⚙️',
|
||||
utilisation: 'set <name/pic> <nom/lien>',
|
||||
category: 'botcontrol',
|
||||
|
||||
async execute(message, args, client) {
|
||||
if (args.length < 2) {
|
||||
return message.reply('Veuillez fournir un paramètre parmis `name` ou `pic` pour sa valeur.');
|
||||
}
|
||||
|
||||
const setting = args[0];
|
||||
|
||||
if (setting === 'name') {
|
||||
const value = args.slice(1).join(' ');
|
||||
if (value) {
|
||||
try {
|
||||
const botMember = await message.guild.members.fetch(client.user.id);
|
||||
await botMember.setNickname(value);
|
||||
return message.reply(`Mon nouveau pseudo est maintenant **${value}**.`);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
return message.reply('Une erreur est survenue lors de la tentative de changement de mon pseudo.');
|
||||
}
|
||||
} else {
|
||||
return message.reply('Veuillez fournir un nom valide.');
|
||||
}
|
||||
} else if (setting === 'pic') {
|
||||
const value = args[1];
|
||||
if (value && value.startsWith('http')) {
|
||||
try {
|
||||
await client.user.setAvatar(value);
|
||||
return message.reply('Mon avatar a été mis à jour avec succès.');
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
return message.reply('Une erreur est survenue lors de la tentative de mise à jour de mon avatar.');
|
||||
}
|
||||
} else {
|
||||
return message.reply('Veuillez fournir un URL d\'image valide.');
|
||||
}
|
||||
} else {
|
||||
return message.reply('Paramètre invalide. Veuillez utiliser "name" ou "pic".');
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
@@ -0,0 +1,125 @@
|
||||
import { Message, Client, EmbedBuilder, StringSelectMenuBuilder, ActionRowBuilder, ActivityType, Activity } from "discord.js";
|
||||
|
||||
module.exports = {
|
||||
description: 'Changer la présence du bot',
|
||||
emote: '🎮',
|
||||
utilisation: '',
|
||||
permission: '8',
|
||||
async execute(message: Message, args:string[], client: Client) {
|
||||
if (!client.user) return
|
||||
|
||||
const author = message.author;
|
||||
|
||||
let currentActivitie = client.user.presence.activities[0];
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('Changement d\'activité')
|
||||
.setDescription(`Le bot est en mode :\`${currentActivitie}\``)
|
||||
.setTimestamp()
|
||||
.setFooter({text: `${client.user.tag} © 2024`, iconURL: client.user.displayAvatarURL()});
|
||||
|
||||
if (!currentActivitie) {
|
||||
embed.setColor('#000000');
|
||||
} else if (currentActivitie.name === 'playing') {
|
||||
embed.setColor('#FF0000');
|
||||
} else if (currentActivitie.name === 'streaming') {
|
||||
embed.setColor('#FFA500');
|
||||
} else if (currentActivitie.name === 'listening') {
|
||||
embed.setColor('#00FF00');
|
||||
} else if (currentActivitie.name === 'watching') {
|
||||
embed.setColor('#000000');
|
||||
}
|
||||
|
||||
const selectMenu = new StringSelectMenuBuilder()
|
||||
.setCustomId('activity')
|
||||
.setPlaceholder('Changer l\'activité')
|
||||
.addOptions([
|
||||
{
|
||||
label: 'Joue',
|
||||
value: 'playing',
|
||||
description: 'Le bot joue',
|
||||
emoji: '🎮'
|
||||
},
|
||||
{
|
||||
label: 'Stream',
|
||||
value: 'streaming',
|
||||
description: 'Le bot stream',
|
||||
emoji: '📺'
|
||||
},
|
||||
{
|
||||
label: 'Écoute',
|
||||
value: 'listening',
|
||||
description: 'Le bot écoute',
|
||||
emoji: '🎵'
|
||||
},
|
||||
{
|
||||
label: 'Regarde',
|
||||
value: 'watching',
|
||||
description: 'Le bot regarde',
|
||||
emoji: '👀'
|
||||
}
|
||||
]);
|
||||
|
||||
const row: any = new ActionRowBuilder()
|
||||
.addComponents(selectMenu)
|
||||
|
||||
const sendMessage = await message.reply({ embeds: [embed], components: [row] });
|
||||
|
||||
let filter = (interaction: any) => interaction.user.id === message.author.id;
|
||||
const collector = sendMessage.createMessageComponentCollector({ filter, time: 60000 });
|
||||
collector.on('collect', async (interaction: any) => {
|
||||
if (interaction.isStringSelectMenu()) {
|
||||
const value = interaction.values[0];
|
||||
|
||||
interaction.reply(`Veuillez entrer le message que vous voulez afficher pour l'activité ${value}`);
|
||||
filter = (message: Message) => message.author.id === author.id;
|
||||
const messageCollector = message.channel.createMessageCollector({ filter, time: 60000 });
|
||||
messageCollector.on('collect', async (messageCollect: Message): Promise<void> => {
|
||||
const text = messageCollect.content;
|
||||
const url = 'https://www.twitch.tv/tuturp33';
|
||||
|
||||
if (!client.user) return;
|
||||
if (value === 'playing') {
|
||||
client.user.setPresence({
|
||||
activities: [{
|
||||
name: text,
|
||||
type: ActivityType.Playing,
|
||||
url: url
|
||||
}]
|
||||
});
|
||||
} else if (value === 'streaming') {
|
||||
client.user.setPresence({
|
||||
activities: [{
|
||||
name: text,
|
||||
type: ActivityType.Streaming,
|
||||
url: url
|
||||
}]
|
||||
});
|
||||
} else if (value === 'listening') {
|
||||
client.user.setPresence({
|
||||
activities: [{
|
||||
name: text,
|
||||
type: ActivityType.Listening,
|
||||
url: url
|
||||
}]
|
||||
});
|
||||
} else if (value === 'watching') {
|
||||
client.user.setPresence({
|
||||
activities: [{
|
||||
name: text,
|
||||
type: ActivityType.Watching,
|
||||
url: url
|
||||
}]
|
||||
});
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
collector.on('end', async () => {
|
||||
sendMessage.edit({ components: [] });
|
||||
});
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,100 @@
|
||||
import { Message, Client, EmbedBuilder, StringSelectMenuBuilder, ActionRowBuilder } from "discord.js";
|
||||
|
||||
module.exports = {
|
||||
description: 'Changer le status du bot',
|
||||
emote: '🟢',
|
||||
utilisation: '',
|
||||
permission: '8',
|
||||
async execute(message: Message, args:string[], client: Client) {
|
||||
if (!client.user) return
|
||||
|
||||
let currentStatus = client.user.presence.status;
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('Changement de status')
|
||||
.setDescription(`Le bot est en mode :\`${currentStatus}\``)
|
||||
.setTimestamp()
|
||||
.setFooter({text: `${client.user.tag} © 2024`, iconURL: client.user.displayAvatarURL()});
|
||||
|
||||
if (currentStatus === 'dnd') {
|
||||
embed.setColor('#FF0000');
|
||||
} else if (currentStatus === 'idle') {
|
||||
embed.setColor('#FFA500');
|
||||
} else if (currentStatus === 'online') {
|
||||
embed.setColor('#00FF00');
|
||||
} else if (currentStatus === 'offline') {
|
||||
embed.setColor('#000000');
|
||||
} else {
|
||||
embed.setColor('#000000');
|
||||
}
|
||||
|
||||
const selectMenu = new StringSelectMenuBuilder()
|
||||
.setCustomId('status')
|
||||
.setPlaceholder('Changer le status')
|
||||
.addOptions([
|
||||
{
|
||||
label: 'En ligne',
|
||||
value: 'online',
|
||||
description: 'Le bot sera en ligne',
|
||||
emoji: '🟢'
|
||||
},
|
||||
{
|
||||
label: 'Absent',
|
||||
value: 'idle',
|
||||
description: 'Le bot sera absent',
|
||||
emoji: '🟠'
|
||||
},
|
||||
{
|
||||
label: 'Ne pas déranger',
|
||||
value: 'dnd',
|
||||
description: 'Le bot ne sera pas déranger',
|
||||
emoji: '🔴'
|
||||
},
|
||||
{
|
||||
label: 'Invisible',
|
||||
value: 'offline',
|
||||
description: 'Le bot sera invisible',
|
||||
emoji: '⚫'
|
||||
}
|
||||
]);
|
||||
|
||||
const row: any = new ActionRowBuilder()
|
||||
.addComponents(selectMenu)
|
||||
|
||||
const sendMessage = await message.reply({ embeds: [embed], components: [row] });
|
||||
|
||||
const filter = (interaction: any) => interaction.user.id === message.author.id;
|
||||
const collector = sendMessage.createMessageComponentCollector({ filter, time: 60000 });
|
||||
collector.on('collect', async (interaction: any) => {
|
||||
if (interaction.isStringSelectMenu()) {
|
||||
if (!client.user) return
|
||||
const value = interaction.values[0];
|
||||
if (value === 'online') {
|
||||
client.user.setStatus('online');
|
||||
embed.setDescription('Le bot est maintenant en ligne');
|
||||
embed.setColor('#00FF00');
|
||||
await interaction.update({ embeds: [embed], components: [row] });
|
||||
} else if (value === 'idle') {
|
||||
client.user.setStatus('idle');
|
||||
embed.setDescription('Le bot est maintenant absent');
|
||||
embed.setColor('#FFA500');
|
||||
await interaction.update({ embeds: [embed], components: [row] });
|
||||
} else if (value === 'dnd') {
|
||||
client.user.setStatus('dnd');
|
||||
embed.setDescription('Le bot est maintenant en mode ne pas déranger');
|
||||
embed.setColor('#FF0000');
|
||||
await interaction.update({ embeds: [embed], components: [row] });
|
||||
} else if (value === 'offline') {
|
||||
client.user.setStatus('invisible');
|
||||
embed.setDescription('Le bot est maintenant invisible');
|
||||
embed.setColor('#000000');
|
||||
await interaction.update({ embeds: [embed], components: [row] });
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
collector.on('end', async () => {
|
||||
sendMessage.edit({ components: [] });
|
||||
});
|
||||
},
|
||||
};
|
||||
@@ -8,7 +8,6 @@ module.exports = {
|
||||
emote: '⏱️',
|
||||
utilisation: '',
|
||||
permission: 10,
|
||||
category : 'admin',
|
||||
|
||||
async execute(message: Message, args: string[]) {
|
||||
const prefix = await getServerPrefix(message.guild?.id);
|
||||
|
||||
Reference in New Issue
Block a user