From 58b085d832af2a040e9fcb300c3a35f4cae5d362 Mon Sep 17 00:00:00 2001 From: nzBryce101 Date: Mon, 1 Apr 2024 21:35:23 +1300 Subject: [PATCH] intial upload of code --- MCbot.yml | 10 ++++++ src/MCbot.class | Bin 0 -> 4112 bytes src/MCbot.java | 86 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 96 insertions(+) create mode 100644 MCbot.yml create mode 100644 src/MCbot.class diff --git a/MCbot.yml b/MCbot.yml new file mode 100644 index 0000000..073dadc --- /dev/null +++ b/MCbot.yml @@ -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 diff --git a/src/MCbot.class b/src/MCbot.class new file mode 100644 index 0000000000000000000000000000000000000000..d51721af60860ed76f212a07bdbc2a21263615a8 GIT binary patch literal 4112 zcmcIn_j?rA6+KT#n$sS-ODmruP#a8a#3p9!mtBDk?E_jd z8|9^i50_mXem05qXjO1-7FZjPY(YZBwjOOJZc?$;>DUZBMPQBgZF`vm`~}fiKy7OV5btgRbcg^P#6nwH*gylD$$Ox8o@E&4y3Q*++$)dvJ8?T4VQz3 zOq9RHnBpr8Y8RfW{ITQKFZ!#JIT41n-(*W45J(W5{DAFBf#!=023Y^_!3T1(7}y>~M=)yQh)O9*zy@jAnvf}uY_A%U zV>nRa=LtP)*)nwj3r}H9x~+r(`b3 zcAQ9HOrWMKt@6v8kQfigI-DP+)iDrbi|}=JIVNEnIAvlA4hL_E1Vd4^cO8~zBn&lH zd`%HOp5rhEB0zI4JOf1&_k&c@tlR1;Aq9XQ2Z8G=)z%{6Tg3>Rm23*j5SS=qnlon= zi_VO|rYiaIva7vj`l1`Ue*iNEo@3&t1}w#E0<_rZH_fWjV|ttKyx? zIK}{6z^Y!+Kms2#@o{`Yz?>xIII_pFiI8HxP$w3pBIi$5xTdnjd8fl_p21KO=kSP$ z^LUhdvX#$|mWxG|g3PNVVj*y64Asc@DH!M_u039!eA}pKcc@$#ll~E9myG1O2ldWK z`taP|aIdBP(ZI@04O+!WY^`Gz#`0EMHG{V85a@1?^GsFsuhm1`B_dP0qVY|?Z99o{ z)GPZr*=MWRl6oKSR!u`*I^cN$C&DTY%3#vVmzq%DScfkwjK5-H9`y-)jht~<=A=E% zPRWHVpC0$ULOQ2m-x%F=vbfrWZ~gZQM@4U}$79O*cT8NuTodLJ z_#P=WVof%x;!y4J2b|D*+$q;P?N*}F?|;N%hyB3Uu1ivtdA;xx<`IUdK~f=>^yw&? z1`5&p&yx5#eqrF3CVquqb7B@*z;>s-DVZ72MI&C;xRnb$pPah95Py0+-Zqg^2=86G zTT5*No;Ou4#u*}N@L0c9DIS?ARuRhoz8JcUyIQInXTWH+$8wxeo?x~}Z zGw>H~LH}8ltQnRUt?c6(o}|HF?!Tz#^|R_^&0oRay3Pv_=XoRWIbPK=_(>r!yCB+4 z1M2O{&RH0#6|-pM&2@`9E4je~jcC9stbjV>U0BfF66q$j?mFr&>Zwm4U=8)w@s8gM z)KsDEpgrYp)jZZ8@0`O8puzMkZd_CiU2dSe49{cRsZJ)2)F0JZ0w?FO<@h|>k8hm? zliYp*w+zl>mwMb?djb1~x@K|5-dYt{OYIzbz?2(1TWV+Vw7qrPTIyzTh@yjM(LAVR zD1CSi_b92O=XHF2JbRANwZg5Nn1QFx)wm659<{e1i=DU~`)~&i@V}2;+fN^d(2Em% zx=85;)chU&21c4_gvZz@{u!pP0NuYeb$k{lAI2>yivi>=VM36P3IcN|fp@2CXy*Bs z@RAyQ39q<_R}FT};dQ_xTj%h4{?JAk+(zycz}<8>$j_-E+{jaKH}7v|_jkIlgN1#S3`bfUfw%#FQw$ zvjX9JFXDr9I2&S3NI!b^%9Dc>_|#c640Uar#izS2YfZi*+@FcyUPgF#^8XxeWyJgV z3j*1@0DmWve3PbBE1LOv*TMpHp@Xf|Nv%zk>|z17v3wbw?Kaf?1I-4`+-Kn26~e<$ z@dO|F1i?$)6_q{TsmlnH`#jCp;0sV+?|b?Br+jyruwTY+DEU=={knepO?(@V>*w$4 Y>-Y8bhx+7X*)5LI3~& literal 0 HcmV?d00001 diff --git a/src/MCbot.java b/src/MCbot.java index e69de29..9c30397 100644 --- a/src/MCbot.java +++ b/src/MCbot.java @@ -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; + } +}