Java Discord Bot Websocket?

Codeline  27.05.2024, 17:43

Hast du beides selber entwickelt?

creamyduck 
Beitragsersteller
 27.05.2024, 17:45

Ja der Bot und das Dashboard sind selbst programmiert

1 Antwort

Schritt 1: Einrichten des Discord-Bots mit JDA

Zuerst richtest du deinen Discord-Bot mit JDA ein.

import net.dv8tion.jda.api.JDABuilder;

import net.dv8tion.jda.api.hooks.ListenerAdapter;

public class Bot extends ListenerAdapter {

  public static void main(String[] args) throws Exception {

    JDABuilder.createDefault("YOUR_BOT_TOKEN").addEventListeners(new Bot()).build();

  }

}

Schritt 2: Einrichten eines einfachen WebSocket-Servers

Jetzt richtest du einen einfachen WebSocket-Server ein, der Befehle vom Dashboard empfängt.

import org.java_websocket.server.WebSocketServer;
import org.java_websocket.handshake.ClientHandshake;
import org.java_websocket.WebSocket;


import java.net.InetSocketAddress;


public class SimpleWebSocketServer extends WebSocketServer {


    public SimpleWebSocketServer(InetSocketAddress address) {
        super(address);
    }


    @Override
    public void onOpen(WebSocket conn, ClientHandshake handshake) {
        System.out.println("New connection: " + conn.getRemoteSocketAddress());
    }


    @Override
    public void onClose(WebSocket conn, int code, String reason, boolean remote) {
        System.out.println("Closed connection: " + conn.getRemoteSocketAddress());
    }


    @Override
    public void onMessage(WebSocket conn, String message) {
        System.out.println("Received message: " + message);
        // Hier kannst du die Befehle an deinen Discord-Bot weiterleiten
        // Beispiel: if (message.equals("ping")) { bot.ping(); }
    }


    @Override
    public void onError(WebSocket conn, Exception ex) {
        ex.printStackTrace();
    }


    @Override
    public void onStart() {
        System.out.println("Server started!");
    }


    public static void main(String[] args) {
        int port = 8887; // Wähle einen Port
        SimpleWebSocketServer server = new SimpleWebSocketServer(new InetSocketAddress(port));
        server.start();
        System.out.println("WebSocket server started on port: " + port);
    }
}
Schritt 3: Befehle an den Discord-Bot senden

In der

onMessage

-Methode des WebSocket-Servers kannst du die empfangenen Nachrichten verarbeiten und an deinen Discord-Bot weiterleiten. Hier ist ein einfaches Beispiel:

@Override
public void onMessage(WebSocket conn, String message) {
  System.out.println("Received message: " + message);
  if (message.equalsIgnoreCase("ping")) {
    // Hier ein Beispielbefehl, der einen Ping-Befehl an den Bot sendet
    // Diesen Teil musst du anpassen, um die gewünschte Funktionalität zu implementieren
    myBot.sendMessageToChannel("Pong!");
  }
}
Schritt 4: Implementiere die
sendMessageToChannel
Methode

Hier ist ein einfaches Beispiel, wie du eine Nachricht an einen bestimmten Kanal sendest:

import net.dv8tion.jda.api.entities.TextChannel;


public class MyBot extends ListenerAdapter {
    private JDA jda;


    public MyBot() throws Exception {
        jda = JDABuilder.createDefault("YOUR_BOT_TOKEN").addEventListeners(this).build();
    }


    public void sendMessageToChannel(String message) {
        TextChannel channel = jda.getTextChannelById("YOUR_CHANNEL_ID");
        if (channel != null) {
            channel.sendMessage(message).queue();
        } else {
            System.out.println("Channel not found!");
        }
    }
}



Schritt 5: Starte beide Server

Starte zuerst den WebSocket-Server und dann den Discord-Bot. Dein WebSocket-Server sollte nun in der Lage sein, Nachrichten vom Dashboard zu empfangen und Befehle an den Discord-Bot zu senden.
Woher ich das weiß:Berufserfahrung – Web-Development , C++ , Python , Java