Il y a longtemps, j'ai présenté comment faire un Discord Bot sous le titre de "Comment faire un Discord Bot (Java)", mais le support de la bibliothèque a expiré et maintenant je ne peux pas faire un Bot en me référant à cet article. Et il semble.
Il semble que la demande de Discord augmente progressivement ces jours-ci, lorsque nous sommes obligés d'étudier à la maison et à des cours en ligne, mais nous allons vous présenter comment faire "Bot" pour le rendre encore plus pratique.
Dans cet article, je vais vous montrer comment écrire en Java et en kotlin!
Veuillez écrire le contenu suivant dans ``
<!--Bibliothèque principale (obligatoire)-->
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>4.1.1_101</version>
</dependency>
<!--Bibliothèque pour le traitement des commandes (obligatoire)-->
<dependency>
<groupId>com.jagrosh</groupId>
<artifactId>jda-utilities</artifactId>
<version>3.0.3</version>
<scope>compile</scope>
<type>pom</type>
</dependency>
<!--Si vous utilisez kotlin, ces deux-->
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-jdk8</artifactId>
<version>1.3.72</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-test</artifactId>
<version>1.3.72</version>
<scope>test</scope>
</dependency>
Comme l'explication sera longue, récupérez le token en vous référant à mon article ([here](https://qiita.com/itsu_dev/items/825e4ed32bf32e4b64b2# extra edition-getting the application registration token)) et placez-le sur le serveur S'il-te-plait invite moi.
Quoi qu'il en soit, si vous ne vous connectez pas en tant que Bot, rien ne démarrera, alors connectez-vous à Discord en utilisant le jeton que vous avez obtenu plus tôt!
Exécutez le code ci-dessous et le Bot sera en ligne si tout se passe bien.
Java
Main.java
package dev.itsu.discordbot;
import com.jagrosh.jdautilities.command.CommandClientBuilder;
import com.jagrosh.jdautilities.command.CommandClient;
import net.dv8tion.jda.api.AccountType;
import net.dv8tion.jda.api.JDA;
import net.dv8tion.jda.api.JDABuilder;
import net.dv8tion.jda.api.OnlineStatus;
import net.dv8tion.jda.api.entities.Activity;
class Main {
private static JDA jda;
private static final String TOKEN = "MY_TOKEN"; //Jeton Bot obtenu
private static final String COMMAND_PREFIX = "!"; //Préfixe de commande
public static void main(String args[]) {
//Générer un écouteur d'événements qui gère les commandes
CommandClient commandClient = new CommandClientBuilder()
.setPrefix(COMMAND_PREFIX) //Préfixe de commande
.setStatus(OnlineStatus.ONLINE) //Paramètres d'état en ligne
.setActivity(Activity.watching("YouTube")) //Paramètres d'état (regarder, jouer, etc.)
.build();
jda = new JDABuilder(AccountType.BOT)
.setToken(TOKEN) //Définir le jeton
.addEventListeners(commandClient) //set commandClient
.build();
}
}
kotlin
Main.kt
package dev.itsu.discordbot
import com.jagrosh.jdautilities.command.CommandClientBuilder
import net.dv8tion.jda.api.AccountType
import net.dv8tion.jda.api.JDA
import net.dv8tion.jda.api.JDABuilder
import net.dv8tion.jda.api.OnlineStatus
import net.dv8tion.jda.api.entities.Activity
private lateinit var jda: JDA
private const val TOKEN = "MY_TOKEN" //Jeton Bot obtenu
private const val COMMAND_PREFIX = "!" //Préfixe de commande
fun main() {
//Générer un écouteur d'événements qui gère les commandes
val commandClient = CommandClientBuilder()
.setPrefix(COMMAND_PREFIX) //Préfixe de commande
.setStatus(OnlineStatus.ONLINE) //Paramètres d'état en ligne
.setActivity(Activity.watching("YouTube")) //Paramètres d'état (regarder, jouer, etc.)
.build()
jda = JDABuilder(AccountType.BOT)
.setToken(TOKEN) //Définir le jeton
.addEventListeners(commandClient) //set commandClient
.build()
}
OnlineStatus.ONLINE //en ligne
OnlineStatus.OFFLINE //hors ligne
OnlineStatus.IDLE //Une façon
OnlineStatus.DO_NOT_DISTURB //Occupé
OnlineStatus.INVISIBLE //Masquer l'état en ligne
Activity.watching("name") //Regarder le nom
Activity.listening("name") //jouer le nom
Activity.streaming("name", "url") //nom de livraison
Activity.playing("name") //jouer le nom
Cette fois, je vais essayer d'implémenter la commande "Donner un salut à la personne qui a exécuté la commande".
Pour implémenter la commande, vous devez créer une classe qui hérite de om.jagrosh.jdautilities.command.Command
.
Java
HelloCommand.java
package dev.itsu.discordbot
import com.jagrosh.jdautilities.command.Command;
import com.jagrosh.jdautilities.command.CommandEvent;
class HelloCommand extends Command {
public HelloCommand() {
this.name = "hello"; //Définissez le nom de la commande (!Peut être exécuté avec bonjour)
this.help = "Dis juste bonjour"; //Description de la commande (!Explication affichée lorsque vous exécutez l'aide)
}
//La méthode appelée lorsque la commande est exécutée
@Override
public void execute(CommandEvent event) {
event.reply("Bonjour," + event.getAuthor().getName() + "San!"); //réponse
}
}
kotlin
HelloCommand.kt
package dev.itsu.discordbot
import com.jagrosh.jdautilities.command.Command
import com.jagrosh.jdautilities.command.CommandEvent
class HelloCommand : Command() {
init {
name = "hello" //Définissez le nom de la commande (!Peut être exécuté avec bonjour)
help = "Dis juste bonjour" //Description de la commande (!Explication affichée lorsque vous exécutez l'aide)
}
//Fonction appelée lors de l'exécution d'une commande
override fun execute(event: CommandEvent) {
event.reply("Bonjour,${event.author.name}San!") //réponse
}
}
Vous ne pouvez pas exécuter de commandes simplement en créant une classe. Afin de pouvoir exécuter des commandes, il est nécessaire d'enregistrer la classe de la commande implémentée dans CommandClient. Revenez à Main.java (Main.kt) et apportez les modifications suivantes.
Si vous exécutez ceci, "Bonjour, (nom d'utilisateur)!" Lorsque vous exécutez le "! Bonjour" dans Discord, nous revenons à Bot avec!
Java
Main.java
package dev.itsu.discordbot;
import com.jagrosh.jdautilities.command.CommandClientBuilder;
import com.jagrosh.jdautilities.command.CommandClient;
import net.dv8tion.jda.api.AccountType;
import net.dv8tion.jda.api.JDA;
import net.dv8tion.jda.api.JDABuilder;
import net.dv8tion.jda.api.OnlineStatus;
import net.dv8tion.jda.api.entities.Activity;
class Main {
private static JDA jda;
private static final String TOKEN = "MY_TOKEN";
private static final String COMMAND_PREFIX = "!";
public static void main(String args[]) {
CommandClient commandClient = new CommandClientBuilder()
.setPrefix(COMMAND_PREFIX)
.setStatus(OnlineStatus.ONLINE)
.setActivity(Activity.watching("YouTube")
.addCommands(new HelloCommand()) //Enregistrez la commande ici!
.build();
jda = new JDABuilder(AccountType.BOT)
.setToken(TOKEN)
.addEventListeners(commandClient)
.build();
}
}
kotlin
Main.kt
package dev.itsu.discordbot
import com.jagrosh.jdautilities.command.CommandClientBuilder
import net.dv8tion.jda.api.AccountType
import net.dv8tion.jda.api.JDA
import net.dv8tion.jda.api.JDABuilder
import net.dv8tion.jda.api.OnlineStatus
import net.dv8tion.jda.api.entities.Activity
private lateinit var jda: JDA
private const val TOKEN = "MY_TOKEN"
private const val COMMAND_PREFIX = "!"
fun main() {
val commandClient = CommandClientBuilder()
.setPrefix(COMMAND_PREFIX)
.setStatus(OnlineStatus.ONLINE)
.setActivity(Activity.watching("YouTube"))
.addCommands(HelloCommand()) //Enregistrez la commande ici!
.build()
jda = JDABuilder(AccountType.BOT)
.setToken(TOKEN)
.addEventListeners(commandClient)
.build()
}
En fait, la méthode (fonction) addCommands () prend des arguments de longueur variable, vous pouvez donc enregistrer n'importe quel nombre d'autres commandes implémentées comme indiqué ci-dessous.
addCommands(HelloCommand(), StatusCommand())
Si vous avez d'autres fonctionnalités que vous aimeriez que nous introduisions, ou si vous avez des suggestions, veuillez laisser un commentaire.
Recommended Posts