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.net.*;
import java.util.*;
import java.util.List;
import java.util.stream.Collectors;
import org.bukkit.Bukkit;
import org.bukkit.Statistic;
@@ -44,15 +45,17 @@ public class MCbot extends JavaPlugin {
} catch (IOException e) {
e.printStackTrace();
}
}
private String processCommand(String command) {
// Implement logic to process commands here
// Example: If command is "!players", return player list from Minecraft server
if (command.equals("!players")) {
// Use Spigot API to get player list
List<Player> onlinePlayers = Bukkit.getServer().getOnlinePlayers().stream().collect(Collectors.toList());
if (onlinePlayers.isEmpty()) {
String playerList = onlinePlayers.stream().map(Player::getName).collect(Collectors.joining(", "));
return "Players online: " + playerList;
if (playerList.isEmpty()) {
return "No players are currently online.";
} else {
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 {
public static void main(String[] args) {
String token = "YOUR_BOT_TOKEN_HERE"; // Replace with your actual bot token
new DiscordBot(token);
import javax.security.auth.login.LoginException;
public class disMCbot extends ListenerAdapter {
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) {
String messageContent = event.getMessage().getContentRaw();
// Parse message content to detect player updates
if (messageContent.contains("died")) {
event.getChannel().sendMessage("A player has died!").queue();
} else if (messageContent.contains("Exp")) {
// Parse and extract player name, Exp, and other details
// You can use regular expressions or other parsing methods
event.getChannel().sendMessage("Player gained experience!").queue();
}
}
public DiscordBot(String token) {
try {
JDABuilder.createDefault(token)
.addEventListeners(new BotEventListener()) // Create this class next
.setActivity(Activity.playing("Minecraft"))
.build();
} catch (Exception e) {
e.printStackTrace();
if (event.getAuthor().isBot()) return; // Ignore messages from bots
String message = event.getMessage().getContentRaw();
// Check for conditions or events triggering updates
if (message.contains("Player1 died")) {
// Post update to the specified channel
if (updateChannel != null) {
updateChannel.sendMessage("Player1 has died in Minecraft!").queue();
}
} else if (message.contains("Player1 Exp")) {
// Post another type of update
if (updateChannel != null) {
updateChannel.sendMessage("Player1 gained experience in Minecraft!").queue();
}
}
}
public void setUpdateChannel(TextChannel channel) {
this.updateChannel = channel;
}
}