D
deleted732323
Hello tout le monde, on se retrouve pour la deuxième partie de ma série : Comment coder un bot discord. Allez voir la première partie si vous ne l'avez pas encore vu ! L'INVITATION
Dans le dernier épisode, on s'était arrêté sur la création de TCHOIN (mon bot
Pour l'instant, on va TOUT cocher, comme ça, pas de problème de permission.
Après avoir tout cocher, en bas on insert notre Client ID, disponible sur la page de votre application (bot)

Vous invitez votre bot dans votre serveur, le mieux est d'en faire un de développement.

PREMIÈRE COMMANDE
Maintenant que ma TCHOIN a rejoins ma cham.. serveur, on va lui faire des choses
On va faire que lorsque qu'on dit "!ping" le bot réponde avec un "Pong!"
Mais d'abord, on va demandé au bot de nous prévenir lorsqu'il est opérationnel dans la console. pour cela on va faire un event ready.
Code:
bot.on('ready', () => {
console.log('TCHOIN est prête!');
});
Et quand on exécute le bot, on peut voir qu'il nous répond !:

Code:
bot.on('message', message => {
if (message.content === 'ping') {
message.channel.sendMessage('pong');
}
});
Donc, j'explique le code :
- Sur la première ligne, on dit que notre event est un message
- Sur la deuxième, de vérifier si la commande contient bien ping
- Et la dernière, et d'envoyer un message dans le channel correspondant au message.

Utilisation de Commando
Pour télécharge Commando, on fait comme avec discord.JS !
Code:
npm install discord.js-commando --save
Maintenant, on peut supprimé notre ancienne constante Discord, et à la place: Commando !
On remplace aussi Discord.Client par Commando.Client.
Code:
const Commando : require('discord.js-commando');
const bot = new Commando.Client();
Avec Commando, on peut créer des groupes de commandes, telles que "random", "util", "admin", ou autre !
On va enregistré notre groupe, puis lui donner comme nom Random.
Code:
bot.registry.registerGroup('random', 'Random')
Et dire que nos commandes sont dans le répertoire /commands, cela nous permettra de mieux s'organiser.
Code:
bot.registry.registerCommandsIn(__dirname + "/commands");
Nous allons donc créer ce fameux dossier commands, et dedans le dossier de notre groupe, ici random.
Après, on va demander au bot de créer les commandes automatiquement par défaut, telle que !help ou autre.
Code:
bot.registry.registryDefaults();
COMMANDO - PREMIÈRE COMMANDE
On peux enfin créer notre commande facilement, pour l'instant on va faire un dice roll, c'est à dire qu'on va lancé un dès (virtuellement) et il va nous donner le chiffre sur le quel on est tombé ! Utile pour faire des loteries ou autre.
On créer notre fichier dice_roll.js dans le dossier random, et on appelle Commando, avec une constante, comme avant.
Code:
const Commando = require('discord.js-commando');
On créer notre class DiceRollCommand, et on va utilisé "extends", il sert a dire que notre class utilise un package, ici Commando.Command.
Code:
class DiceRollCommand extends Commando.Command {
}
Avant de commencer a écrire nos fonctions, on va écrire en bas (donc pas dans les accolades)
Code:
module.exports = DiceRollCommand;
On va dire que DiceRollCommand va être importé dans notre index, et donc le bot va le reconnaître.
Code:
constructor(client) {
super(client, {
});
}
On va lui donner une "carte d'identité", lui donner un nom, une description ect.. Tout ça dans le "super".
Code:
constructor(client) {
super(client, {
name: 'roll',
group: 'random',
memberName: 'roll',
description: 'Loterie'
});
}
Après ça, on va créer une fonction async, donc qui est asynchrone, qui renvoie a un objet. Ici, c'est quand on va taper "!roll" que la fonction va démarrer. Elle va démarrer avec un message, avec des arguments (args)
Code:
async run(message, args){
}
Désolé pour certains, mais on va faire des maths
Code:
var roll = Math.floor(Math.random() * 6) + 1;
Et le bot répond à l'utilisateur avec son nombre + une petite phrase.
Code:
message.reply("Vous êtes tombé sur un" + roll);

Donc on démarre TCHOIN !
Code:
node . --harmony
On va sur Discord, et TADA !

Fichiers joints
Dernière édition par un modérateur: