EasyScript 2.1

Modify your server in the scripting language of your choice whilst it's running.

  1. CyberTiger
    [​IMG]


    A Bukkit plugin to allow plugin development in various languages including support for command registration and handling all events.

    • Support for multiple scripting languages (Python, JavaScript are known to work).
    • Ability to hook into any bukkit event.
    • Support for registering bukkit command handlers.
    • Support for autoreloading of script files when they change.
    • Open Source License
    • Supports JavaScript
    • Supports Groovy
    • Supports Ruby
    • Supports Python
    • Includes basic examples for supported languages.

    Originally developed for dreamcraft.org.

    Some trivial example scripts can be found here.

    Commands

    /script <name> <arguments>
    Permission: easyscript.script

    Execute a named script with the arguments specified, searches configured script directories for a file called <name>.<suffix> where <suffix> is the suffix for the language, for example js for JavaScript and py for Python.

    /scriptreload [classpath]
    Permission: easyscript.scriptreload

    Force any scripts and libraries to be reloaded. If 'classpath' is specified it will also reload the classpath.

    Configuration

    autoreload
    Default: false

    If set to true, automatically recompile scripts when they are modified.

    language
    Default: JavaScript

    The programming language scripts will be written in.. The plugin includes support for Groovy, Ruby and Python, you can also add other languages by dropping a JSR 223 compliant scripting runtime jar into the libDirectory. Java includes support for JavaScript, though a lot of the syntax has changed between JDK 1.7 and JDK1.8 due to using a different Javascript engine (Nashorn in 1.8, and Mozilla Rhino before that).

    libDirectory
    Default: lib

    The path to load extra jar files from, the first time the plugin is loaded, the included groovy, ruby and python jars will be extracted to this location. You are free to delete any language runtime jars you are not using, they will only be recreated if the lib directory does not exist when the plugin starts.

    useScriptScope
    Default: true

    When invoking scripts via the /script command, given them their own scope so that their globals are private, if false they will execute in the same context as library scripts. You should leave this true unless you use JRuby, which unfortunately has an issue with handling scopes correctly.

    variableNames
    Default:
    Code (YAML):
            SERVER: 'server'
            PLUGIN
    : 'plugin'
            LOG
    : 'log'
            SENDER
    : 'sender'
            ARGS
    : 'args'
            PLAYER
    : 'player'
            BLOCK
    : 'block'
    Allow modification of the variable names passed into scripts.

    systemProperties
    Default: none

    System properties to set before creating a script engine. Some script engines use system properties to control their behaviour, the default configuration includes many of these with sensible defaults.

    libraries
    Default: library

    List of script files to load as libraries. Libraries have the ability to hook into Bukkit events, and any functions they provide are available to scripts executed via /script. The default looks for a file called 'plugins/EasyScript/library.js', you can add as many as you want, and split up functionality between library scripts sanely.

    scripts
    Default: scripts

    List of folders under plugins/EasyScript to search for named scripts when a user executes /script <name>. By default /script searches for named scripts under plugins/EasyScript/scripts/<name>.js.
    sdk345 and Kagrurnaax like this.

Recent Reviews

  1. Mr.Gone
    Mr.Gone
    5/5,
    Version: 2.1
    This plugin is great! It works flawlesly. It took me forever to find a plugin that does exactly what this does, so I'm rating it in hopes that it makes it easier to find for others.

    If you want to build plugins in a different language than Java, this is the right plugin.

    The Jython jar is a little outdated, but when I replaced it in EasyScript's lib folder with the newer version, the newer one was recognized and used automatically (even though the filename differs somewhat).