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?
Hast du beides selber entwickelt?
Ja der Bot und das Dashboard sind selbst programmiert
1 Antwort
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.