Minecraft fabric mod that collects and sends in-game information to Minecraft HTTP API server (another my repo). The project consists of Minecraft fabric mod (agent) and HTTP API server. The code of the Minecraft fabric mod is located in this repo and the HTTP API server code is located by this link: *link*. Read the full manual to get everything set up correctly.
The full manual you can read here: read
I recommend you use IDEAs like IntelliJ IDEA or Eclipse. But If you would like to generate a .jar file without any IDEA you can use the command gradle build in the project root (be sure Java version 17 and higher is installed).
Be sure that you already installed the Fabric of a needed version of Minecraft. Follow the link with releases *link*. Choose and download the .jar file needed version of Minecraft (also check the patch version). Put the downloaded file to the .mods folder (it is located by the %AppData%/.minecraft/mods path in most cases). Run Minecraft using fabric installation in your launcher.
I will be glad if you can help in the development of this project. What you can do:
The code files are located in the folder that follows the path: src/main/java/com.crocoby. There are some files in this folder:
HttpInfoServer.java — have an entrance method that is called onInitialize and starts when Minecraft loads. We create and run WebSocket instances in the onInitialize method.WebSocketDoor.java — The project uses the TooTallNate/Java-WebSocket library to make a WebSocket client. The WebSocket class describes the behavior of the WebSocket client that connects to the WebSocket server (another repo). When the server sends a message with the text "collectData" the WebSocket client uses InfoCollector class (this behavior is described in the onMessage method).InfoCollector.java — Have the genJson function that collects data and turns it into JSON string format. This method needs to generate a response for the WebSocket server.mixin/WorldJoinMixin.java — Have the init method that invokes whenever a player joining to any world (server works too). It sends a message in the in-game chat when the WebSocket client is not connected to the WebSocket server.