mirror of
https://github.com/arthur-pbty/gestion-perso.git
synced 2026-06-03 23:36:35 +02:00
add anti crash + command
This commit is contained in:
@@ -1,12 +1,11 @@
|
||||
import { PermissionsBitField, Message, Client } from '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',
|
||||
utilisation: '[guildId]',
|
||||
permission: '10',
|
||||
|
||||
async execute(message: Message, args: string[], client: Client) {
|
||||
if (!args[0]) return message.reply('Veuillez fournir l\'ID du serveur.');
|
||||
|
||||
@@ -5,6 +5,8 @@ module.exports = {
|
||||
description: 'Liste les serveur du bot',
|
||||
emote: '🌐',
|
||||
utilisation: '',
|
||||
permission: '10',
|
||||
|
||||
async execute(message: Message, args: string[], client: Client) {
|
||||
if (!client.user) return;
|
||||
const guilds = Array.from(client.guilds.cache.values()).map((guild, index) => `${index + 1}. ${guild.name} : ${guild.id}`).join("\n\n");
|
||||
|
||||
+39
-39
@@ -5,46 +5,46 @@ module.exports = {
|
||||
description: 'Modifier divers paramètres du bot.',
|
||||
emote: '⚙️',
|
||||
utilisation: 'set <name/pic> <nom/lien>',
|
||||
permissions: 10,
|
||||
|
||||
async execute(message: Message, args: string[], client: 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 {
|
||||
if (!message.guild || !client.user) return;
|
||||
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 {
|
||||
if (!client.user) return;
|
||||
await client.user.edit({avatar: 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.');
|
||||
async execute(message: Message, args: string[], client: 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 {
|
||||
if (!message.guild || !client.user) return;
|
||||
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('Paramètre invalide. Veuillez utiliser "name" ou "pic".');
|
||||
return message.reply('Veuillez fournir un nom valide.');
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
} else if (setting === 'pic') {
|
||||
const value = args[1];
|
||||
if (value && value.startsWith('http')) {
|
||||
try {
|
||||
if (!client.user) return;
|
||||
await client.user.edit({avatar: 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".');
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -1,10 +1,12 @@
|
||||
import { Message, Client, EmbedBuilder, StringSelectMenuBuilder, ActionRowBuilder, ActivityType, Activity } from "discord.js";
|
||||
|
||||
module.exports = {
|
||||
aliases: ['setact'],
|
||||
description: 'Changer la présence du bot',
|
||||
emote: '🎮',
|
||||
utilisation: '',
|
||||
permission: '8',
|
||||
|
||||
async execute(message: Message, args:string[], client: Client) {
|
||||
if (!client.user) return
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import sqlite3 from 'sqlite3';
|
||||
import { Message } from 'discord.js';
|
||||
const getServerPrefix = require("../fonctions/getServerPrefix");
|
||||
const getServerPrefix = require("../../fonctions/getServerPrefix");
|
||||
|
||||
module.exports = {
|
||||
aliases: ['prefixset'],
|
||||
@@ -1,10 +1,12 @@
|
||||
import { Message, Client, EmbedBuilder, StringSelectMenuBuilder, ActionRowBuilder } from "discord.js";
|
||||
|
||||
module.exports = {
|
||||
aliases: ['setpres'],
|
||||
description: 'Changer le status du bot',
|
||||
emote: '🟢',
|
||||
utilisation: '',
|
||||
permission: '8',
|
||||
|
||||
async execute(message: Message, args:string[], client: Client) {
|
||||
if (!client.user) return
|
||||
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
import { Message, Client, ButtonStyle, ButtonBuilder, ActionRowBuilder } from "discord.js";
|
||||
|
||||
module.exports = {
|
||||
aliases: ['addbuttonurl', 'addurlbtn', 'addurlbutton'],
|
||||
description: 'Ajoute un bouton url',
|
||||
emote: '🔗',
|
||||
utilisation: '[url] [message ID] [label]',
|
||||
permission: 10,
|
||||
|
||||
async execute(message: Message, args: string[], client: Client) {
|
||||
if (!args[0]) return message.reply('Veuillez fournir une url');
|
||||
if (!args[1]) return message.reply('Veuillez fournir un ID de message');
|
||||
if (!args[2]) return message.reply('Veuillez fournir un label');
|
||||
const url = args[0];
|
||||
const messageId = args[1];
|
||||
const label = args.slice(2).join(' ');
|
||||
|
||||
if (url && !/^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$/.test(url)) {
|
||||
return message.reply('Veuillez fournir une URL valide');
|
||||
}
|
||||
|
||||
const button = new ButtonBuilder()
|
||||
.setLabel(label)
|
||||
.setURL(url)
|
||||
.setStyle(ButtonStyle.Link);
|
||||
|
||||
const row: any = new ActionRowBuilder()
|
||||
.addComponents(button);
|
||||
|
||||
const msg = await message.channel.messages.fetch(messageId);
|
||||
if (!msg) return message.reply('Message introuvable');
|
||||
if (msg.author.id !== client.user?.id) return message.reply('Ce message n\'a pas été envoyé par moi');
|
||||
msg.edit({ components: [row] });
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,28 @@
|
||||
import { Message, EmbedBuilder } from "discord.js";
|
||||
|
||||
module.exports = {
|
||||
aliases: ['allbots'],
|
||||
description: 'Affiche tous les bots sur le serveur',
|
||||
emote: '🤖',
|
||||
utilisation: '',
|
||||
permission: 0,
|
||||
|
||||
async execute(message: Message) {
|
||||
if (!message.guild) return message.reply('Cette commande ne peut être utilisée que dans un serveur');
|
||||
const bots = message.guild.members.cache.filter(member => member.user.bot);
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('Liste des bots présents')
|
||||
.setColor('#0099ff');
|
||||
|
||||
if (bots.size > 0) {
|
||||
const botList = Array.from(bots.values()).map((bot, index) => `${index + 1} - <@${bot.id}>`).join('\n');
|
||||
embed.setDescription(botList);
|
||||
embed.setFooter({ text: `Total : ${bots.size}`});
|
||||
} else {
|
||||
embed.setDescription('Il n\'y a pas de bot sur le serveur');
|
||||
}
|
||||
|
||||
message.channel.send({ embeds: [embed] });
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,28 @@
|
||||
import { Message, EmbedBuilder, PermissionsBitField } from "discord.js";
|
||||
|
||||
module.exports = {
|
||||
aliases: ['alladmins'],
|
||||
description: 'Affiche tous les membres avec la permission d\'administrateur sur le serveur',
|
||||
emote: '🔧',
|
||||
utilisation: '',
|
||||
permission: 0,
|
||||
|
||||
async execute(message: Message) {
|
||||
if (!message.guild) return message.reply('Cette commande ne peut être utilisée que dans un serveur');
|
||||
const admins = message.guild.members.cache.filter(member => member.permissions.has(PermissionsBitField.Flags.Administrator));
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('Administrateurs sur le serveur')
|
||||
.setColor('#0099ff');
|
||||
|
||||
if (admins.size > 0) {
|
||||
const adminList = Array.from(admins.values()).map((admin, index) => `${index + 1} - <@${admin.id}>`).join('\n');
|
||||
embed.setDescription(adminList);
|
||||
embed.setFooter({ text :`Total : ${admins.size}`});
|
||||
} else {
|
||||
embed.setDescription('Il n\'y a pas d\'administrateur sur le serveur');
|
||||
}
|
||||
|
||||
message.channel.send({ embeds: [embed] });
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,38 @@
|
||||
const fetch = require('node-fetch');
|
||||
import { Message, Client, EmbedBuilder } from "discord.js";
|
||||
|
||||
module.exports = {
|
||||
aliases: ['bannière', 'banniere'],
|
||||
description: 'Affiche la bannière d\'un utilisateur',
|
||||
emote: '🔍',
|
||||
utilisation: '<@user>',
|
||||
permission: 0,
|
||||
|
||||
async execute(message: Message, args: string[], client: Client) {
|
||||
const user = message.mentions.users.first() || message.author;
|
||||
|
||||
const response = await fetch(`https://discord.com/api/users/${user.id}`, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
Authorization: `Bot ${message.client.token}`
|
||||
}
|
||||
});
|
||||
const data = await response.json();
|
||||
|
||||
if (!data.banner) {
|
||||
return message.reply('Cet utilisateur n\'a pas de bannière.');
|
||||
}
|
||||
|
||||
const format = data.banner.startsWith('a_') ? 'gif' : 'png';
|
||||
|
||||
const bannerURL = `https://cdn.discordapp.com/banners/${user.id}/${data.banner}.${format}?size=2048`;
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle(`Bannière de ${user.tag}`)
|
||||
.setImage(bannerURL)
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
.setTimestamp();
|
||||
|
||||
message.reply({ embeds: [embed] });
|
||||
},
|
||||
};
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Message, EmbedBuilder, StringSelectMenuBuilder, ActionRowBuilder } from "discord.js";
|
||||
const getServerPrefix = require("../fonctions/getServerPrefix");
|
||||
const getServerPrefix = require("../../fonctions/getServerPrefix");
|
||||
|
||||
interface Command {
|
||||
name: string;
|
||||
+28
-1
@@ -1,4 +1,4 @@
|
||||
const { Events, ActivityType } = require("discord.js");
|
||||
import { Events } from "discord.js";
|
||||
const addBaseInDB = require("../fonctions/addBaseInDB");
|
||||
|
||||
module.exports = {
|
||||
@@ -6,5 +6,32 @@ module.exports = {
|
||||
async execute(client: any) {
|
||||
addBaseInDB(client);
|
||||
console.log(`le bot ${client.user.tag} est en ligne`)
|
||||
|
||||
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);
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -12,11 +12,12 @@ module.exports = function loadCommands(client: any, dir: string) {
|
||||
delete require.cache[require.resolve(filePath)];
|
||||
const command = require(filePath);
|
||||
const fileName = file.replace(/\.js|\.ts/g, '');
|
||||
command.name = fileName;
|
||||
if (!command.name) command.name = fileName;
|
||||
if (!command.category) {
|
||||
const parentDir = path.basename(path.dirname(filePath));
|
||||
command.category = parentDir === 'commands' ? 'other' : parentDir;
|
||||
}
|
||||
if (!command.permission) command.permission = 0;
|
||||
client.commands.set(fileName, command);
|
||||
if (command.aliases) {
|
||||
command.aliases.forEach((alias: string) => {
|
||||
|
||||
Reference in New Issue
Block a user