intial upload of code

This commit is contained in:
nzBryce101
2024-04-01 21:35:23 +13:00
parent 10a3ef1d48
commit 58b085d832
3 changed files with 96 additions and 0 deletions

10
MCbot.yml Normal file
View File

@@ -0,0 +1,10 @@
name: MCbot
version: 1.0
main: src/MCbot.class
description: A custom bot for interacting with Minecraft server stats.
author: Bryce
api-version: 1.20.4
commands:
players:
description: Command description here
usage: /players

BIN
src/MCbot.class Normal file

Binary file not shown.

View File

@@ -0,0 +1,86 @@
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.stream.Collectors;
import org.bukkit.plugin.java.JavaPlugin;
public class MCbot extends JavaPlugin {
@Override
public void onEnable() {
getLogger().info("MCbot enabled");
// Start your socket server here
startSocketServer();
}
@Override
public void onDisable() {
getLogger().info("MCbot disabled");
// Stop your socket server here if needed
}
private void startSocketServer() {
// Implement your socket server logic here
// Example: Create a new thread for socket server
new Thread(() -> {
try {
try (// Create a socket server on port 8888
ServerSocket serverSocket = new ServerSocket(8888)) {
getLogger().info("Socket server started on port 8888");
while (true) {
// Accept incoming client connections
Socket clientSocket = serverSocket.accept();
getLogger().info("Client connected: " + clientSocket.getInetAddress());
// Handle client communication (e.g., read commands and send responses)
handleClient(clientSocket);
}
}
} catch (IOException e) {
getLogger().severe("Error starting socket server: " + e.getMessage());
}
}).start();
}
private void handleClient(Socket clientSocket) {
// Implement logic to handle client communication here
// Example: Read commands from client and send responses
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
PrintWriter writer = new PrintWriter(clientSocket.getOutputStream(), true);
// Read command from client
String command = reader.readLine();
getLogger().info("Received command from client: " + command);
// Process command and send response
String response = processCommand(command);
writer.println(response);
// Close client connection
clientSocket.close();
} catch (IOException e) {
getLogger().severe("Error handling client: " + e.getMessage());
}
}
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
String playerList = String.join(", ", getServer().getOnlinePlayers().stream()
.map(player -> player.getName())
.collect(Collectors.toList()));
return "Players online: " + playerList;
}
// Add more command processing logic as needed
return "Unknown command: " + command;
}
}