[DE] Java - Discord Bot Development

in #deutsch7 years ago (edited)

Guten Tag!

Ich begrüsse euch herzlich zu meinem Java Discord Bot Development Tutorial. Die nötigen Links sind im untersten Abschnitt verlinkt.

Was ist Discord?

Discord ist ein innovativer all-in-one Text- und Sprachchat. Die Server sind kostenlos, haben einen DDoS Schutz und bieten unbegrenzte Slots. Die Applikationen sind auf allen Platformen kostenlos zu downloaden.

Wie lerne ich Java?

Es gibt viele Bücher und Tutorials im Internet, um Java zu lernen. Die Bücher "Java ist auch eine Insel" und "Java SE Standard-Bibliothek" sind sehr empfehlenswert. Zu diesen Büchern gibt es auch das Openbook im Internet. Von Youtube Tutorials rate ich generell ab, da es nur sehr wenige gute Videos gibt.

Wie erstelle ich einen Discord Bot?

Zuerst erstellt man eine Discord Applikation auf der Discord "My Apps" Seite. Dann befindet man sich auf der Overview Seite der Applikation. Danach wandelt man seine Applikation mit der folgenden Schaltfläche in einen Bot um. 

Wie füge ich den Bot meinem Server hinzu?

Erst braucht man die Client ID des Bots, die man auf der Overview Seite des Bots auffinden kann.

 

Wenn man seine Client ID hat, kann man mit einem OAuth Link den Bot zu eigenen Servern hinzufügen. Anstatt *clientid* schreibt man einfach seine eigene Client ID dort rein und öffnet den Link.  

Danach kann man in einem Dialog auswählen, auf welchem Server sich der Bot befinden sollte. Man kann nur die Server auswählen, für die man die nötigen Berechtigungen besitzt. 

Wie programmiere ich einen Bot in Java?

Man hat die Wahl zwischen den zwei APIs, JDA und Discord4J. In diesem Beispiel wurde JDA genutzt, jedoch liegt die Wahl beim Entwickler.
Man geht auf die Overview Seite und lässt sich den Client Token anzeigen. 

In der IDE nach Wahl muss man JDA als Library hinzufügen.
In diesem Beispiel zeige ich, wie man ein Bot programmiert, der auf den Command ".test" die Nachricht "Test back" zurückgibt. Mithilfe von JDA#addEventListener kann man seine eigene Events hinzufügen.

public static void main(String[] args) {
    try {
        JDA jda = new JDABuilder(AccountType.BOT).setToken("Zensiert").buildAsync();
        jda.addEventListener(new MessageReceivedListener());
    } catch (LoginException | IllegalArgumentException | RateLimitedException ex) {
        Logger.getLogger(DiscordBot.class.getName()).log(Level.SEVERE, null, ex);
    }
}

Main Class

public class MessageReceivedListener extends ListenerAdapter {

    @Override
    public void onMessageReceived(MessageReceivedEvent event) {
        if (!event.getAuthor().isBot()) {
            String content = event.getMessage().getRawContent();
            if (content.equals(".test")) {
                event.getChannel().sendMessage("Test back").queue();
            }
        }
    }
}

MessageReceivedListener Class

Links

Man könnte den Bot jetzt weiter ausbauen, da es noch viele weitere Events gibt, jedoch ist dieses Tutorial hier zu Ende. Ich wünsche euch viel Glück beim Weiterentwickeln.

Mit freundlichen Grüssen
Thomas 

Sort:  

Hallo @batthomas, herzlich willkommen auf Steemit.

Wenn Du Fragen zu Steemit hast, oder Dich mit anderen deutschen „Steemians“ austauschen magst, schau einfach mal auf unserem Discord-Server https://discord.gg/g6ktN45 vorbei.

Unter dem folgenden Link findest Du einige Anleitungen, die Dir den Einstieg in das Steem-Universum deutlich erleichtern werden: Deutschsprachige Tutorials für Steemit-Neulinge: Ein Überblick

Coin Marketplace

STEEM 0.22
TRX 0.20
JST 0.034
BTC 98934.25
ETH 3347.90
USDT 1.00
SBD 3.08