▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/OpenJavascript
OpenJavascript

OpenJavascript

Create custom menus, commands, plugins, systems, basically anything with scripts in Javascript! With multithreading and Folia support! Everything is fully documented in the documentation!

1.1K
21

OpenJavascript 1.4.0 (B I G Update!)

release1 апреля 2026 г.

updateThumbnail

General Fixes & Improvements

  • Scripts run more than 2.5 times faster than in previous versions now! No changes needed, just update!
  • You can convert scripts (scriptPacks) into plugins now!
  • Added support for minecraft version 26.1
  • Reviewed and fixed numerous bugs across the entire codebase.
  • Added a debug mode boolean to the config for easier troubleshooting.
  • Fixed a bug where reloading with the reload command would not update the debug mode boolean until a full restart.
  • Fixed an issue where deleting folders inside the script folder was not possible due to the file watcher locking them.
  • Removed all deprecated code and cleaned up a large portion of the codebase.

Dialog API

  • Created a new DialogApi for managing in-game graphical dialogs.

Task API

  • Tasks are now shared across all scripts, meaning they can be cancelled from external scripts using setShared and getShared.
  • Added task.latch() which returns an object with the following thread-safe methods: .destroy(), .connect(function), .wait(), .invoke(), .fire(), and .invoked.
  • Added task.threadType() which returns a string indicating the thread type (main, async, or sync).
  • Enhanced thread safety in DelayTask by properly handling thread interruptions.

FileManager API

  • Added FileManager.getPath(File), which returns the relative path of a file based on the script's folder.
  • Added support for ZIP files: any .zip file containing an info.json will automatically be extracted into a folder named after the zip file.
  • Fixed a bug where the file watcher could receive null paths, causing errors.
  • Improved watcher robustness by handling OVERFLOW events and adding a null check for the watch service when clearing listeners. This fixed many errors with the file listener, its more reliable now

ProtocolLib Integration

  • Added the following new ProtocolLib methods:
    • broadcastServerPacket(packet, source, broadcastRange) broadcasts a packet to nearby players.
    • sendServerPacket(player, packet) sends a packet directly to a specific player.
    • createPacket(packetTypePath) creates a packet by type path.

PlaceholderAPI

  • Fixed parseString not working correctly when passing an offline player as the target.

Inventory API

  • Added the following new methods:
    • getSlot(slot) retrieves the item in a given slot.
    • setItemLore(slot, lore) sets the lore of an item in a slot.
    • setItemName(slot, name) sets the display name of an item in a slot.
  • Fixed colors not being applied correctly in item lore.
  • Added backwards compatibility for Inventory.setTitle via ProtocolLib.

Service Objects & Internal Refactoring

  • Refactored Folia support initialisation for improved performance, including a centralised init() method and pre-cached scheduler.
  • Refactored setShared() & getShared() , replacing complex lock logic with a simpler and safer wait()/notifyAll() approach.
  • Optimised script preprocessing to read from CODE_CACHE first, avoiding unnecessary disk reads.
  • Switched import ID generation in importJavaToJsGC from random strings to an AtomicLong counter (__import_0, __import_1, ...) for better performance.
  • Added player permission verification (openjs.use) at the start of onCommand to prevent unauthorised command execution.
  • Added Array.from() support.
  • Created custom mappings to support Minecraft 1.13 through the current version.
  • Fixed importClass() it now correctly translates Java classes into Javascript objects
  • Fixed Java.type() it can now correctly read and translate external plugin classes too! This is huge, trust me :)

Thank you, guys, for downloading this plugin. I’ve poured my heart and a lot of passion into this project 💚

OpenJavascript 1.4.0-Spigot

release1 апреля 2026 г.

Нет описания изменений

OpenJavascript 1.4.0 Alpha

alpha22 марта 2026 г.

Alpha Build - Use at your own risk! Full release soon!

Changelog

General Fixes & Improvements

  • Reviewed and fixed numerous bugs across the entire codebase.
  • Added a debug mode boolean to the config for easier troubleshooting.
  • Fixed a bug where reloading with the reload command would not update the debug mode boolean until a full restart.
  • Fixed an issue where deleting folders inside the script folder was not possible due to the file watcher locking them.
  • Removed all deprecated code and cleaned up a large portion of the codebase.

Dialog API

  • Created a new DialogService for managing in-game graphical dialogs.
  • Added NMS support for the Dialog API.
  • Added backwards compatibility for Inventory.setTitle via ProtocolLib.

Task API

  • Tasks are now shared across all scripts, meaning they can be cancelled from external scripts using setShared and getShared.
  • Added task.latch() which returns an object with the following thread-safe methods: .destroy(), .connect(function), .wait(), .invoke(), .fire(), and .Fired.
  • Added task.threadType() which returns a string indicating the thread type (main, async, or sync).
  • Enhanced thread safety in DelayTask by properly handling thread interruptions.

FileManager API

  • Added FileManager.getPath(File), which returns the relative path of a file based on the script's folder.
  • Added support for ZIP files: any .zip file containing an info.json will automatically be extracted into a folder named after the zip file.
  • Fixed a bug where the file watcher could receive null paths, causing errors.
  • Improved watcher robustness by handling OVERFLOW events and adding a null check for the watch service when clearing listeners. This fixed many errors with the file listener, its more reliable now

ProtocolLib Integration

  • Added the following new ProtocolLib methods:
    • broadcastServerPacket(packet, source, broadcastRange) — broadcasts a packet to nearby players.
    • sendServerPacket(player, packet) — sends a packet directly to a specific player.
    • createPacket(packetTypePath) — creates a packet by type path.

PlaceholderAPI

  • Fixed parseString not working correctly when passing an offline player as the target.

Inventory API

  • Added the following new methods:
    • getSlot(slot) retrieves the item in a given slot.
    • setItemLore(slot, lore) sets the lore of an item in a slot.
    • setItemName(slot, name) sets the display name of an item in a slot.
  • Fixed colors not being applied correctly in item lore.

Service Objects & Internal Refactoring

  • Refactored Folia support initialisation for improved performance, including a centralised init() method and pre-cached scheduler.
  • Refactored PublicVarManager's waiting mechanism, replacing complex lock logic with a simpler and safer wait()/notifyAll() approach.
  • Optimised script preprocessing to read from CODE_CACHE first, avoiding unnecessary disk reads.
  • Switched import ID generation in importJavaToJsGC from random strings to an AtomicLong counter (__import_0, __import_1, ...) for better performance.
  • Added player permission verification (openjs.use) at the start of onCommand to prevent unauthorised command execution.
  • Added Array.from() support.
  • Created custom mappings to support Minecraft 1.13 through the current version.
  • Fixed importClass() it now correctly translates Java classes into Javascript objects
  • Fixed Java.type() it can now correctly read and translate external plugin classes too! This is huge, trust me :)

OpenJavascript 1.3.2 (Hotfix)

release31 января 2026 г.

This release is just a hotfix, containing crucial fixes and new features.

General Fixes & Improvements

  • Migrated from Nashorn 15.6 to 15.7 for better JavaScript compatibility and performance.
  • Reduced plugin file size by ~1,000KB through code cleanup and a complete rewrite of the UpdateChecker.
  • Fixed an error where task.bindToUnload would crash because the plugin attempted to schedule tasks during the shutdown sequence.
  • Resolved a ConcurrentModificationException that occurred when destroying an inventory immediately upon a player closing it.

Custom-Menus Api Updates

FileManager Api Updates

The FileManager service has received a few new methods

New Methods:

  • getFile(path): Retrieves a specific file.
  • removeFile(path): Deletes a file.
  • getFolder(path): Retrieves a directory.
  • removeFolder(path): Deletes a directory and its contents.
  • getFiles(path): Returns an array of all files within the specified folder.

FileManager path prefixes for easier navigation:

  • .. (Parent Directory): Jump up one level out of the current folder.
  • / (Script Root): Quickly reference the directory where your script is currently located.
  • Example: FileManager.getFiles("/"); returns everything in the script's local folder.

OpenJavascript 1.3.0

release12 января 2026 г.

Improvements

  • Fixed DiskApi issues that caused unexpected behavior
  • DiskApi now removes datastore entries when values are NULL
  • DiskApi now persists active files on script reload
  • Fixed rare ConcurrentModificationException issues when:
    • Registering commands
    • Syncing commands
  • Improved error handling: script exceptions now log as ERROR instead of WARN
  • All scripts now unload before any other shutdown logic
  • Scripts unload asynchronously on the main thread, allowing tasks to finish safely

Additions

  • Completely rewritten script management & I/O system
    • Significantly reduces unnecessary disk operations
  • Added official folder support for scripts
  • Scripts are automatically loaded when added while the server is running
  • Added requireScript
  • Introduced global [script] class
  • Fixed scripts failing to load via command due to parsing errors
  • Added task.bindToUnload(function) to register unload handlers
  • Yielding operations now block unload until execution completes
  • Cache behavior improved:
    • Cache drops only after I/O operations complete
    • Fully handled automatically by scripts

APIs & Services improvements

Commands & Runtime fixes

Deprecations

  • Added importClass() for runtime class importing
  • Deprecated //!import xxx.xxx in favor of importClass()
  • Deprecated feature flags / service flags

Configuration & Automation

  • Added autoReloadScripts config option
    • Toggle automatic reload when scripts change or are added

Threading & more Folia Support

  • Added task.thread(function) for parallel execution
    • This means you can multithread scripts on non-Folia servers now
  • Services and PlaceholderAPI are now fully thread-safe

Documentation

  • Added "Advanced Guides" section that also explains how to use the new folder support
  • Reconstructed everything to find APIs and Methods faster
  • Added 3 new example scripts: Food Bait, Nuke Menu and Spawn Menu
  • All old example scripts have been updated to use the latest non deprecated methods

Совместимость

Minecraft: Java Edition

26.1.x1.21.x1.20.x1.19.x1.18.x1.17.x1.16.x1.15.x1.14.x1.13.x

Поддерживаемые окружения

Сервер

Детали

Лицензия:AGPL-3.0-only
Опубликован:1 год назад
Обновлён:2 недели назад
Главная