mirror of
https://github.com/arthur-pbty/gestion-perso.git
synced 2026-06-03 15:07:27 +02:00
add anti crash + command
This commit is contained in:
@@ -1,12 +1,11 @@
|
|||||||
import { PermissionsBitField, Message, Client } from 'discord.js';
|
import { PermissionsBitField, Message, Client } from 'discord.js';
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'invite',
|
|
||||||
aliases: ['inv'],
|
aliases: ['inv'],
|
||||||
description: 'Crée un lien d\'invitation pour un serveur spécifique',
|
description: 'Crée un lien d\'invitation pour un serveur spécifique',
|
||||||
emote: '🔗',
|
emote: '🔗',
|
||||||
utilisation: 'invite [guildId]',
|
utilisation: '[guildId]',
|
||||||
category: 'botcontrol',
|
permission: '10',
|
||||||
|
|
||||||
async execute(message: Message, args: string[], client: Client) {
|
async execute(message: Message, args: string[], client: Client) {
|
||||||
if (!args[0]) return message.reply('Veuillez fournir l\'ID du serveur.');
|
if (!args[0]) return message.reply('Veuillez fournir l\'ID du serveur.');
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ module.exports = {
|
|||||||
description: 'Liste les serveur du bot',
|
description: 'Liste les serveur du bot',
|
||||||
emote: '🌐',
|
emote: '🌐',
|
||||||
utilisation: '',
|
utilisation: '',
|
||||||
|
permission: '10',
|
||||||
|
|
||||||
async execute(message: Message, args: string[], client: Client) {
|
async execute(message: Message, args: string[], client: Client) {
|
||||||
if (!client.user) return;
|
if (!client.user) return;
|
||||||
const guilds = Array.from(client.guilds.cache.values()).map((guild, index) => `${index + 1}. ${guild.name} : ${guild.id}`).join("\n\n");
|
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.',
|
description: 'Modifier divers paramètres du bot.',
|
||||||
emote: '⚙️',
|
emote: '⚙️',
|
||||||
utilisation: 'set <name/pic> <nom/lien>',
|
utilisation: 'set <name/pic> <nom/lien>',
|
||||||
|
permissions: 10,
|
||||||
|
|
||||||
async execute(message: Message, args: string[], client: Client) {
|
async execute(message: Message, args: string[], client: Client) {
|
||||||
if (args.length < 2) {
|
if (args.length < 2) {
|
||||||
return message.reply('Veuillez fournir un paramètre parmis `name` ou `pic` pour sa valeur.');
|
return message.reply('Veuillez fournir un paramètre parmis `name` ou `pic` pour sa valeur.');
|
||||||
}
|
}
|
||||||
|
|
||||||
const setting = args[0];
|
const setting = args[0];
|
||||||
|
|
||||||
if (setting === 'name') {
|
if (setting === 'name') {
|
||||||
const value = args.slice(1).join(' ');
|
const value = args.slice(1).join(' ');
|
||||||
if (value) {
|
if (value) {
|
||||||
try {
|
try {
|
||||||
if (!message.guild || !client.user) return;
|
if (!message.guild || !client.user) return;
|
||||||
const botMember = await message.guild.members.fetch(client.user.id);
|
const botMember = await message.guild.members.fetch(client.user.id);
|
||||||
await botMember.setNickname(value);
|
await botMember.setNickname(value);
|
||||||
return message.reply(`Mon nouveau pseudo est maintenant **${value}**.`);
|
return message.reply(`Mon nouveau pseudo est maintenant **${value}**.`);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
return message.reply('Une erreur est survenue lors de la tentative de changement de mon pseudo.');
|
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.');
|
|
||||||
}
|
}
|
||||||
} else {
|
} 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";
|
import { Message, Client, EmbedBuilder, StringSelectMenuBuilder, ActionRowBuilder, ActivityType, Activity } from "discord.js";
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
aliases: ['setact'],
|
||||||
description: 'Changer la présence du bot',
|
description: 'Changer la présence du bot',
|
||||||
emote: '🎮',
|
emote: '🎮',
|
||||||
utilisation: '',
|
utilisation: '',
|
||||||
permission: '8',
|
permission: '8',
|
||||||
|
|
||||||
async execute(message: Message, args:string[], client: Client) {
|
async execute(message: Message, args:string[], client: Client) {
|
||||||
if (!client.user) return
|
if (!client.user) return
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import sqlite3 from 'sqlite3';
|
import sqlite3 from 'sqlite3';
|
||||||
import { Message } from 'discord.js';
|
import { Message } from 'discord.js';
|
||||||
const getServerPrefix = require("../fonctions/getServerPrefix");
|
const getServerPrefix = require("../../fonctions/getServerPrefix");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
aliases: ['prefixset'],
|
aliases: ['prefixset'],
|
||||||
@@ -1,10 +1,12 @@
|
|||||||
import { Message, Client, EmbedBuilder, StringSelectMenuBuilder, ActionRowBuilder } from "discord.js";
|
import { Message, Client, EmbedBuilder, StringSelectMenuBuilder, ActionRowBuilder } from "discord.js";
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
aliases: ['setpres'],
|
||||||
description: 'Changer le status du bot',
|
description: 'Changer le status du bot',
|
||||||
emote: '🟢',
|
emote: '🟢',
|
||||||
utilisation: '',
|
utilisation: '',
|
||||||
permission: '8',
|
permission: '8',
|
||||||
|
|
||||||
async execute(message: Message, args:string[], client: Client) {
|
async execute(message: Message, args:string[], client: Client) {
|
||||||
if (!client.user) return
|
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";
|
import { Message, EmbedBuilder, StringSelectMenuBuilder, ActionRowBuilder } from "discord.js";
|
||||||
const getServerPrefix = require("../fonctions/getServerPrefix");
|
const getServerPrefix = require("../../fonctions/getServerPrefix");
|
||||||
|
|
||||||
interface Command {
|
interface Command {
|
||||||
name: string;
|
name: string;
|
||||||
+28
-1
@@ -1,4 +1,4 @@
|
|||||||
const { Events, ActivityType } = require("discord.js");
|
import { Events } from "discord.js";
|
||||||
const addBaseInDB = require("../fonctions/addBaseInDB");
|
const addBaseInDB = require("../fonctions/addBaseInDB");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
@@ -6,5 +6,32 @@ module.exports = {
|
|||||||
async execute(client: any) {
|
async execute(client: any) {
|
||||||
addBaseInDB(client);
|
addBaseInDB(client);
|
||||||
console.log(`le bot ${client.user.tag} est en ligne`)
|
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)];
|
delete require.cache[require.resolve(filePath)];
|
||||||
const command = require(filePath);
|
const command = require(filePath);
|
||||||
const fileName = file.replace(/\.js|\.ts/g, '');
|
const fileName = file.replace(/\.js|\.ts/g, '');
|
||||||
command.name = fileName;
|
if (!command.name) command.name = fileName;
|
||||||
if (!command.category) {
|
if (!command.category) {
|
||||||
const parentDir = path.basename(path.dirname(filePath));
|
const parentDir = path.basename(path.dirname(filePath));
|
||||||
command.category = parentDir === 'commands' ? 'other' : parentDir;
|
command.category = parentDir === 'commands' ? 'other' : parentDir;
|
||||||
}
|
}
|
||||||
|
if (!command.permission) command.permission = 0;
|
||||||
client.commands.set(fileName, command);
|
client.commands.set(fileName, command);
|
||||||
if (command.aliases) {
|
if (command.aliases) {
|
||||||
command.aliases.forEach((alias: string) => {
|
command.aliases.forEach((alias: string) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user