ls

@astorks/lib-smc

Create TypeScript/JavaScript plugins for Minecraft 1.16 Bukkit/Spigot/Paper

Showing:

Popularity

Downloads/wk

11

GitHub Stars

32

Maintenance

Last Commit

1yr ago

Contributors

1

Package

Dependencies

0

License

ISC

Type Definitions

Tree-Shakeable

No?

Categories

Readme

ScriptableMC-Engine

GitHub release (latest by date) SpigotMC Resource License

Run JavaScript/TypeScript plugins for Minecraft 1.15 using the GraalJS script engine.
Supported Minecraft Versions: Bukkit/Spigot/Paper 1.13, 1.14, 1.15, 1.16
Untested but should work: 1.8+

This plugin is in a preview state, there may be breaking changes, missing features, and possibly a few bugs.
Feel free to create an issue if you find any missing features, bugs, or just have an idea for a great feature to add.

This plugin requires running your minecraft server with OpenJDK, Standard JDK, or the GraalVM java runtime.
Most linux servers already use OpenJDK, however if you're running windows or want a fully supported java runtime that supports AOT javascript compilation you can install GraalVM-CE.

GraalVM-CE is a free open source java runtime created by Oracle that is pre-packaged with the GraalJS Engine allowing all javascript engine features including AOT compilation of javascript.

Installing The JavaScript Engine Plugin

If your server is running on a Standard JDK
If your server is running on a GraalVM JDK

Take a look at ScriptableMC-TypeScript for a full typescript plugin example. You can take the typescript example and compile it, then directly modify the javascript if you don't want to use typescript.

Commands and Permissions

ScritableMC Base Command
CommandAliasDescriptionPermission
/scriptablemc menu/smc mOpens an inventory menu that allows you to control the script engines.scriptablemc.menu
/scriptablemc info/smc iPrints plugin version and all loaded script engine versions if available.scriptablemc.info
/scriptablemc reload/smc rlFully reloads all script engines and all script files.scriptablemc.reload
/scriptablemc version/smc vCheck the github releases for any updates.scriptablemc.version
ScritableMC JavaScript Engine Commands
CommandAliasDescriptionPermission
/scriptablemc javascript reload/smc rl /jsrlFully reloads the javascript engine and all script files.scriptablemc.js.reload
/scriptablemc javascript execute <source>/smc js ex <source>Executes javascript source and prints the return value.scriptablemc.js.execute
/scriptablemc javascript execute stash/smc js ex stashExecutes javascript source stored in your stash.scriptablemc.js.execute
/scriptablemc javascript file <filePath>/smc js f <filePath>Executes javascript file from the scripts folder.scriptablemc.js.execute.file
/scriptablemc javascript stash/smc js stPrints all stored javascript lines in your stash.scriptablemc.js.execute
/scriptablemc javascript stash <source>/smc js st <source>Adds a line to your javascript stash.scriptablemc.js.execute
/scriptablemc javascript stash clear/smc js st clearClears your javascript stash.scriptablemc.js.execute
ScritableMC Python Engine Commands
CommandAliasDescriptionPermission
/scriptablemc python reload/smc rl /pyrlFully reloads the python script engine and all script files.scriptablemc.python.reload
/scriptablemc python execute <source>/smc py ex <source> /pyexExecutes python source and prints the return value.scriptablemc.python.execute
/scriptablemc python execute stash/smc py ex stashExecutes python source stored in your stash.scriptablemc.python.execute
/scriptablemc python file <filePath>/smc py f <filePath>Executes python file from the scripts folder.scriptablemc.python.execute.file
/scriptablemc python stash/smc py stPrints all stored python lines in your stash.scriptablemc.python.execute
/scriptablemc python stash <source>/smc py st <source>Adds a line to your python stash.scriptablemc.python.execute
/scriptablemc python stash clear/smc py st clearClears your python stash.scriptablemc.python.execute

/smc javascript execute Command Example

/jsex return 1 + 1
2

/jsex sender.sendMessage(lib.org.bukkit.ChatColor.GREEN + "Hello World!")
Hello World!

Third Party Libraries

https://github.com/MinusKube/SmartInvs - Inventory helper library
https://github.com/lucko/helper - MinecraftVersions helper library
https://github.com/jkcclemens/khttp - HTTP helper library
https://github.com/aikar/commands - Built-in commands and auto-completion
https://github.com/tr7zw/Item-NBT-API - NBT helper library
https://github.com/apache/commons-io - FileUtils helper library
https://github.com/graalvm/graaljs - JavaScript engine

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial