2.4.2latestdenizen-reflect 2.4.2Jul 5, 2026 fix: resolve critical data loss and race conditions in proxy and section2.4.1denizen-reflect 2.4.1Jun 22, 2026 fix: resolved class loading issues, allowing .dsc scripts to properly import and invoke custom Java classes.2.4.0denizen-reflect 2.4.0Jun 14, 2026 denizen-reflect 2.4.0
Add:
- `Java Scripts (.java Script Support)`:Write and execute native Java classes directly in your plugins/Denizen/scripts/ folder. They compile on-the-fly during "/ex reload" and run with 100% native Java performance.
### The // @persistent State Control
Control the compilation lifecycle by adding a // @persistent comment at the very top of your .java file:
- Volatile (Default - No comment): Recompiles from scratch on every "/ex reload". Best for active development and quick testing.
- Persistent (Add // @persistent): Compiles only once and "freezes" in memory, protecting static variables from resetting. Use this when you have completely finished developing the class.
### Architecture:
To prevent memory leaks during reloads, the system uses a strict classloader hierarchy. You must follow these visibility rules:
-
Volatile scripts CAN see and use Persistent classes.
-
Persistent classes CAN see and use other Persistent classes.
-
Persistent classes CANNOT reference Volatile scripts. Doing so will trap the old volatile script in memory and eventually crash the server with an OutOfMemoryError.
### Lifecycle Methods:
You can optionally implement two static methods that the system invokes automatically:
- public static void init(): Executed immediately after successful compilation.
- public static void shutdown(): Executed right before the script is reloaded or deleted (used for cleanup).
For more information, visit the documentation website.
2.2.8denizen-reflect 2.2.8Feb 21, 2026 feat: support dynamic tag-based executors for tags and placeholders2.2.7denizen-reflect 2.2.7Feb 20, 2026 fix: resolve encapsulation issues by reflecting via public interfaces2.2.6denizen-reflect 2.2.6Feb 20, 2026 Add 'executor' argument for custom tags, commands, and placeholders. Add libload command for dynamic Java library injection. Fixed bStats not logging the Denizen version.2.2.5denizen-reflect 2.2.5Jan 21, 2026 fix: register denizen-reflect commands, events, and other features early so they work in all events.2.2.4denizen-reflect 2.2.4Jan 16, 2026 # Improved Overhauled 'command' system: switched to MapTag config, added boolean args/tooltips, and implemented high-performance strict parsing.2.2.3denizen-reflect 2.2.3Jan 1, 2026 New tag: <chain[]>
Fix wildcards in ProxyCommand and other fixes.
2.2.2denizen-reflect 2.2.2Dec 29, 2025 Changes:
- ProxyCommand fix for Windows2.2.1denizen-reflect 2.2.1Dec 24, 2025 refactor: update static argument syntax for TagCommandAdded:
Cast support.crafter: type: task definitions: location script: - define state <invoke[(Crafter) loc.getBlock().getState()]> - invoke 'state.setSlotDisabled(0, true)' - invoke state.update()Fix:
Invoke command not working in /ex Fix ScriptGeneratesErrorScriptEvent Other minor fixes2.2denizen-reflect 2.2Dec 13, 2025 Added
- Support for local variables in lambda.
- Strong optimization - Support for wildcard imports.import: java.lang.String players: type: task script: - define players <server.online_players> - define uuid <util.random_uuid> - invoke 'players.forEach(p - str = new String("Local variable") p.sendMessage(str) )'import: java.util.* task: type: task script: - narrate <invoke[List]> - narrate <invoke[Map]>Fixed
- Definitions in sections2.1denizen-reflect 2.1Dec 4, 2025 Added
- Lambda expression support `[email protected]().forEach(p - player.sendMessage(p.getName()))`Fixed
- Windows compatibility - Other minor fixes2.0denizen-reflect 2.0Dec 2, 2025 The entire code has been completely rewritten from scratch. A stable proxy system, improved performance, and many new features.
Current features: - Importing classes - Executing Java code, methods, fields, constructors. - Creating your own placeholders (PlaceholderAPI) - Creating your own denizen commands. - Creating your own denizen tags. - Renaming denizen events. - Creating proxies. - And other.import: java.lang.System as alias java.lang.String task: type: task script: - invoke player.kick() - invoke System.out.println("test") - define name <invoke[player.getName()]>1.0.186denizen-reflect 1.0.186: Proxy & SectionsOct 4, 2025 Added:
- [Proxy](https://reflect.meigoc.xyz/proxy-and-sections/proxy) - [Sections](https://reflect.meigoc.xyz/proxy-and-sections/sections)1.0_Build107_29092025denizen-reflect 1.0 build 107Sep 29, 2025 - Small fix invoke - Import - The as argument is now optional; if omitted, the original class name will be used. - New tag <util.import[]>: Added by analogy with the import command.<util.import[java.lang.String(Hello)]>1.0.83External Libraries - denizen-reflect 1.0 build 83Sep 25, 2025 - Added support for external Java libraries in denizen-reflect (plugins/denizen-reflect/libs/).1.0denizen-reflect 1.0Sep 23, 2025 First Release!
Tested on Denizen 1.3.1 build 7144
Similar projects
Plugin →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
Simple Voice Chat
A working voice chat in Minecraft!
76.8MSueta
Chunky
Pre-generates chunks, quickly and efficiently
18.4MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
WorldEdit
A Minecraft Map Editor... that runs in-game! With selections, schematics, copy and paste, brushes, and scripting. Use it in creative, or use it temporarily in survival.
11.6MSueta