__2020 / 5/19 Addendum __ Ici présente comment créer le dernier Bot.
__ 2019/10/27 Addendum __ Il semble que la bibliothèque Discord 4J gérée sur cette page ait été abandonnée et remplacée par une autre bibliothèque. Par conséquent, il est actuellement très difficile voire impossible de développer un Bot par cette méthode. Merci beaucoup d'avoir lu ceci comme référence lors du développement de Bot. Si j'ai le temps, j'aimerais écrire un article sur la façon de développer avec le nouveau Discord 4J.
Cette fois, je développerai un DiscordBot simple en utilisant la bibliothèque Discord4j publiée sur GitHub.
De plus, pour utiliser Bot, il est nécessaire d'enregistrer l'application auprès de Discord et d'obtenir un jeton, qui est introduit dans l'édition supplémentaire en bas de page.
...
<repositories>
...
<repository> <!-- This repo fixes issues with transitive dependencies -->
<id>jcenter</id>
<url>http://jcenter.bintray.com</url>
</repository>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
...
<dependencies>
...
<dependency>
<groupId>com.github.austinv11</groupId>
<artifactId>Discord4J</artifactId>
<version>@VERSION@</version>
</dependency>
</dependencies>
...
...
repositories {
...
jcenter() //This prevents issues with transitive dependencies
maven {
url "https://jitpack.io"
}
}
...
dependencies {
...
compile "com.github.austinv11:Discord4J:@VERSION@"
}
...
https://austinv11.github.io/Discord4J/downloads.html
public static IDiscordClient login(String token) {
ClientBuilder clientBuilder = new ClientBuilder();
clientBuilder.withToken(token);
return clientBuilder.login();
}
Pour traiter un événement, vous devez d'abord enregistrer un écouteur. Veuillez ajouter le code ci-dessous après vous être connecté. Mettez une instance de la classe utilisée pour l'écouteur dans l'argument.
De plus, cette fois, nous introduirons l'enregistrement des auditeurs à l'aide d'annotations.
client.getDispatcher().registerListener(Object listener);
@EventSubscriber
public void onReady(ReadyEvent event) {
System.out.println("Bot prêt!");
}
@EventSubscriber
public void onMessage(MessageReceivedEvent event) throws RateLimitException, DiscordException, MissingPermissionsException {
System.out.println(event.getAuthor().getName() + """ + event.getMessage().getContent() + "Je posté.");
}
La méthode onReady sera appelée une fois la connexion terminée et la méthode onMessage sera appelée lorsque le chat sera publié sur le canal.
Vous pouvez récupérer des événements en ajoutant l'annotation EventSubscriber.
message.getAuthor() //Objet IUser de l'utilisateur qui publie
message.getMessage() //Objet IMessage de chat publié
message.getChannel() //Objet IChannel du canal auquel appartient le bit envoyé
//Tel.
Il est fourni par la classe IChannel.
IChannel#sendMessage(String);
IUser#getName()
IMessage#getMessage()
Comme cet exemple, je voudrais faire un Bot pour répondre s'il est affiché "Bonjour".
import sx.blah.discord.api.ClientBuilder;
import sx.blah.discord.api.IDiscordClient;
import sx.blah.discord.api.events.EventSubscriber;
import sx.blah.discord.handle.impl.events.ReadyEvent;
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
import sx.blah.discord.handle.obj.IChannel;
import sx.blah.discord.handle.obj.IMessage;
import sx.blah.discord.handle.obj.IUser;
import sx.blah.discord.util.DiscordException;
import sx.blah.discord.util.MissingPermissionsException;
import sx.blah.discord.util.RateLimitException;
public class Example {
private static String TOKEN = "TOKEN"; //Jeton Discord Bot
private static IDiscordClient client;
public static void main(String args[]) {
Example main = new Example();
System.out.println("Bot de démarrage...");
client = new ClientBuilder().withToken(TOKEN).build();
client.getDispatcher().registerListener(main);
client.login();
}
@EventSubscriber
public void onReady(ReadyEvent event) {
System.out.println("Bot prêt!");
}
@EventSubscriber
public void onMessage(MessageReceivedEvent event) throws RateLimitException, DiscordException, MissingPermissionsException {
IMessage message = event.getMessage();
IUser user = message.getAuthor();
if (user.isBot()) return;
IChannel channel = message.getChannel();
String mes = message.getContent();
if (mes.contains("Bonjour")) {
channel.sendMessage("Bonjour," + user.getName() + "San!");
}
}
}
Accédez à https: //discordapp.com/developers/applications/me
Cliquez sur Nouvelle application
Entrez un nom approprié dans NOM DE L'APPLICATION et cliquez sur Créer une application
Notez les jetons dans le cadre rouge (ils seront utilisés plus tard)
Faites défiler un peu pour le trouver et cliquez sur Créer un utilisateur de bot
Après Oui, faites-le!, Cliquez sur cliquez pour révéler et notez le jeton qui apparaît. (Vérifiez également Public Bot)
Remplacez [CLIENT_ID] dans l'URL ci-dessous par l'ID client que vous avez noté à l'étape 4 pour y accéder.
https://discordapp.com/api/oauth2/authorize?client_id=[CLIENT_ID]&permissions=0&scope=bot
Recommended Posts