Add Discord Bot

This commit is contained in:
nzBryce101
2024-04-09 11:39:35 +12:00
parent 19cd0ccd74
commit f660f10263
2 changed files with 41 additions and 28 deletions

View File

@@ -1,6 +1,7 @@
import java.io.*; import java.io.*;
import java.net.*; import java.net.*;
import java.util.*; import java.util.List;
import java.util.stream.Collectors;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Statistic; import org.bukkit.Statistic;
@@ -44,15 +45,17 @@ public class MCbot extends JavaPlugin {
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
}
private String processCommand(String command) { private String processCommand(String command) {
// Implement logic to process commands here // Implement logic to process commands here
// Example: If command is "!players", return player list from Minecraft server // Example: If command is "!players", return player list from Minecraft server
if (command.equals("!players")) { if (command.equals("!players")) {
// Use Spigot API to get player list // Use Spigot API to get player list
List<Player> onlinePlayers = Bukkit.getServer().getOnlinePlayers().stream().collect(Collectors.toList()); List<Player> onlinePlayers = Bukkit.getServer().getOnlinePlayers().stream().collect(Collectors.toList());
String playerList = onlinePlayers.stream().map(Player::getName).collect(Collectors.joining(", "));
return "Players online: " + playerList;
if (onlinePlayers.isEmpty()) { if (playerList.isEmpty()) {
return "No players are currently online."; return "No players are currently online.";
} else { } else {
StringBuilder playerList = new StringBuilder("Players online: "); StringBuilder playerList = new StringBuilder("Players online: ");

View File

@@ -1,31 +1,41 @@
import net.dv8tion.jda.api.*; import net.dv8tion.jda.api.JDABuilder;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
public class DisMCBot { import javax.security.auth.login.LoginException;
public static void main(String[] args) {
String token = "YOUR_BOT_TOKEN_HERE"; // Replace with your actual bot token public class disMCbot extends ListenerAdapter {
new DiscordBot(token);
private TextChannel updateChannel; // Define the channel where updates will be posted
public static void main(String[] args) throws LoginException {
JDABuilder builder = JDABuilder.createDefault("YOUR_DISCORD_BOT_TOKEN");
builder.addEventListeners(new disMCbot());
builder.build();
} }
@Override
public void onMessageReceived(MessageReceivedEvent event) { public void onMessageReceived(MessageReceivedEvent event) {
String messageContent = event.getMessage().getContentRaw(); if (event.getAuthor().isBot()) return; // Ignore messages from bots
// Parse message content to detect player updates
if (messageContent.contains("died")) { String message = event.getMessage().getContentRaw();
event.getChannel().sendMessage("A player has died!").queue(); // Check for conditions or events triggering updates
} else if (messageContent.contains("Exp")) { if (message.contains("Player1 died")) {
// Parse and extract player name, Exp, and other details // Post update to the specified channel
// You can use regular expressions or other parsing methods if (updateChannel != null) {
event.getChannel().sendMessage("Player gained experience!").queue(); updateChannel.sendMessage("Player1 has died in Minecraft!").queue();
} }
} } else if (message.contains("Player1 Exp")) {
public DiscordBot(String token) { // Post another type of update
try { if (updateChannel != null) {
JDABuilder.createDefault(token) updateChannel.sendMessage("Player1 gained experience in Minecraft!").queue();
.addEventListeners(new BotEventListener()) // Create this class next }
.setActivity(Activity.playing("Minecraft"))
.build();
} catch (Exception e) {
e.printStackTrace();
} }
} }
public void setUpdateChannel(TextChannel channel) {
this.updateChannel = channel;
}
} }