Description
RainJava
Write Java Code Inside Minecraft. Reload Instantly. No Restarts.
RainJava is a powerful in-game scripting mod that brings the full Java language into Minecraft. Write, compile, and execute Java code while the game is running — modify behavior, inject methods, transform bytecode, and see changes immediately without restarting.
---
What You Can Do
Live Coding
Create Java scripts that execute at startup, when the server starts, or during client setup. Edit code in any text editor, save the file, and use `/java reload` to apply changes instantly. The built-in Eclipse compiler handles everything automatically, even if your system has no Java compiler installed.
Mixin Injection
Write Mixin classes directly in source form to inject code into any Minecraft method. Target the beginning of a method with `@Inject.At("HEAD")`, catch return points with `"RETURN"`, or intercept the final exit with `"TAIL"`. All game classes are available for modification with full IDE-style autocomplete support.
CoreMod & ASM Transformation
For deep modifications, write CoreMod plugins that transform raw bytecode before the JVM sees it. Access every instruction, field, and method of any loaded class. This is the same power level as traditional Forge coremods, but accessible through simple Java source files that compile on demand.
Asset & Data Packs
Bundle custom textures, models, sounds, recipes, loot tables, and tags directly in your RainJava project. The `assets/` and `data/` folders work exactly like standard resource and data packs, loaded automatically with your scripts.
---
How It Works
Place Java source files in the `RainJava/` folder inside your Minecraft directory. The folder structure determines when code runs:
- `startup/` — Executes once when the game initializes
- `server/` — Executes each time the server starts
- `client/` — Executes during client setup
- `mixins/` — Mixin classes for runtime method injection
- `coremod/` — CoreMod plugins and ASM transformers
Every script declares a simple `init()` method. The framework discovers, compiles, and executes automatically. Errors appear in dedicated log files and in-game chat via the `/java errors` command.
---
Essential Documentation
Every installation includes a comprehensive `README.txt` in the `RainJava/` folder. This file contains complete reference material for package declarations, Mixin syntax, injection points, CoreMod architecture, available commands, and troubleshooting — all available offline without internet access.
The README is updated with each release to reflect current API behavior and supported features. Consult it first for syntax questions, error messages, or advanced usage patterns.
---
Commands
- `/java reload [startup|server|client]` — Hot-reload scripts without restart
- `/java hand getId` — Display held item registry ID
- `/java hand getClass` — Display held item Java class name
- `/java errors [type]` — Show compilation and runtime errors in chat
---
Requirements
- Minecraft 1.20.1 with Forge
- Java 17 or higher
- Compatible with standard Forge mods and Mixin systems


