Je pense que c'est plus facile à faire car il existe de nombreux articles qui présentent Python ou JavaScript plutôt que Java. Je ne comprends pas Python ou JavaScript, donc je l'écris en Java Les personnes qui comprennent Python ou JavaScript doivent écrire en Python ou JavaScript sans lire cet article
jre 1.8.0_241 jdk 1.8.0_241 Intellij idea community 2019.3.3 Tout ce que vous pouvez écrire
Lorsque vous créez un bot, vous aurez besoin d'un jeton, alors préparez cette zone
Accédez au portail des développeurs Discord (https://discordapp.com/developers) Vous serez probablement invité à vous connecter pour la première fois, veuillez donc vous connecter avec votre propre compte
Sélectionnez Nouvelle application dans le champ Applications
Entrez le nom de l'application (tout est acceptable tant qu'il peut être distingué) dans le champ NOM et créez-le.
Sélectionnez Bot dans la colonne de gauche et sélectionnez Ajouter un bot
Icône de nom d'utilisateur Autorité requise Modifier les paramètres du bot, par exemple s'il s'agit d'un bot public
Enfin, sélectionnez Copier du TOKEN du Bot et collez-le dans un bloc-notes. ** Si ce jeton fuit vers l'extérieur, le Bot peut être abusé, alors soyez prudent lorsque vous le manipulez ** Surtout lors de la publication du code source sur GitHub, etc., vous ne devez mettre le jeton que lorsque vous l'utilisez séparément pour les propriétés, etc.
Maintenant, ouvrez le codage tant attendu Intellij
Facile à écrire en Maven et Gradle
Le Seigneur fait avec Maven
Je vais réécrire pom pour le moment
Cette fois, il commencera avec un fichier batch, alors réécrivez-le comme si vous faisiez un fichier jar exécutable avec un manifeste
La bibliothèque dépendante peut être Discord4j ou JDA, mais le traitement des événements, etc., est une tempête d'expressions lambda, etc. Puisque les dépendances sont ennuyeuses, j'utiliserai cette fois une bibliothèque appelée JavaCord.
Pour le moment, le pom avec les dépendances etc. est comme ça
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.javacord</groupId>
<artifactId>javacord</artifactId>
<version>3.0.5</version>
<type>pom</type>
</dependency>
</dependencies>
<build>
<defaultGoal>clean package</defaultGoal>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>default-jar</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<finalName>${project.build.finalName}</finalName>
<archive>
<manifest>
<mainClass></mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<filtering>true</filtering>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
</project>
Modifiez les éléments de base et le contenu du manifeste en fonction de votre projet
Le package src correspond également à cela
C'est enfin le sujet principal
Le type de Bot à créer dépend de la personne, je n'expliquerai donc que les bases
Obtenez l'API de JavaCord Fondamentalement, c'est comme interagir avec Discord en utilisant ce
Utilisez le jeton que vous avez noté lors de la création du bot. Si vous ne souhaitez pas publier la source, vous pouvez l'écrire directement dans la classe.
Utilisez DiscordApiBuilder
String token = "Mon jeton";
DiscordApi api = new DiscordApiBuilder().setToken(token).login().join();
Si vous ne modifiez pas le niveau de langue, vous obtiendrez probablement une ligne rouge. Alt + Entrée résout le problème.
Donnez simplement à l'API un auditeur pour l'événement, mais à petite échelle, vous pouvez écrire un lambda Si vous pensez à la maintenabilité, vous devez créer une autre classe d'écouteur
MessageCreateListener peut détecter la transmission de messages, qui est le cœur du système de commande. Il est plus facile d'utiliser le système de commande si vous le faites vous-même
api.addMessageCreateListener(messageCreateEvent -> {
Message message = messageCreateEvent.getMessage();
MessageAuthor author = messageCreateEvent.getMessageAuthor();
if(author.isBotUser()) return;
message.getChannel().sendMessage("Contenu de la remarque:"+message.getContent());
});
Dans l'exemple ci-dessus, si le locuteur n'est pas un Bot, l'instruction est répétée. Elle est écrite en lambda, mais il en va de même pour MessageCreateListener.
Repeat.java
public class Repeat implements MessageCreateListener {
@Override
public void onMessageCreate(MessageCreateEvent messageCreateEvent) {
Message message = messageCreateEvent.getMessage();
MessageAuthor author = messageCreateEvent.getMessageAuthor();
if(author.isBotUser()) return;
message.getChannel().sendMessage("Contenu de la remarque:"+message.getContent());
}
}
api.addMessageCreateListener(new Repeat());
C'est OK, et tous les autres événements peuvent être détectés avec cela.
Je l'ai déjà écrit lors de l'événement, mais vous pouvez l'envoyer en obtenant le canal que vous souhaitez envoyer et en utilisant sendMessage ()
Pour être honnête, si vous connaissez le traitement des événements, vous pouvez y aller par vous-même Si vous ne comprenez pas, vous pouvez tout résoudre en lisant JavaDoc de JavaCord.
Discord 4j ou JDA doit être utilisé pour les opérations vocales et plus avancées JavaCord est probablement en cours de développement et ne sera pas mis à jour à l'avenir
Alors pourquoi l'avez-vous utilisé! C'est juste que l'API était facile à utiliser. C'est un article fin, mais merci d'avoir lu
JavaCord https://github.com/Javacord/Javacord JavaDoc https://docs.javacord.org/api/v/3.0.5/overview-summary.html
Au 21 juillet 2020 Le domaine de l'API Discord a changé récemment.Je ne suis pas sûr que cette bibliothèque ne puisse pas être utilisée.Je pense que vous pouvez la retirer de discord4j
Recommended Posts