Java Discord Bot Websocket?
Ich möchte von meinem Dashboard aus befehle an meinen Discord Bot (Java) senden. Kenn jmd eine gute Anleitung oder hat jemand sogar Code?
![](https://images.gutefrage.net/media/user/Codeline/1689620008215_nmmslarge__0_0_800_800_652274479ef18736e8e74e289a116f5b.png?v=1689620008000)
Hast du beides selber entwickelt?
![](https://images.gutefrage.net/media/user/creamyduck/1671123111592_nmmslarge__0_0_432_432_a3ad19956fc45a5634a7ba9fc1902381.png?v=1671123112000)
Ja der Bot und das Dashboard sind selbst programmiert
1 Antwort
![](https://images.gutefrage.net/media/user/MasterFAQ/1719096606429_nmmslarge__0_0_1024_1024_3ee6d102f9fff3b8eb89a9336cca61ab.webp?v=1719096606000)
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-ServersJetzt 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.