Skip to content

JumperСкрипты для вашего Java-приложения

Синтаксис Java, лёгкость Lua и песочница под вашим контролем.

Jumper

Как это выглядит ​

jumper
// welcome.jmp - хост вызывает onJoin, когда игрок заходит
dyn visits = table();

void onJoin(dyn player) {
    visits[player.name()] = (visits[player.name()] || 0) + 1;
    player.send("Welcome, " + player.name() + "! Visit " + visits[player.name()]);
    server.broadcast(player.name() + " joined");
}
jumper
// scripts.jma - что скриптам можно трогать
Policy.allowPackage("example.api");
Policy.allowClass("example.api.Player").denyMethod("kick");
Policy.allowPackage("java.util");
java
// хост
Interpreter jumper = new Interpreter()
        .access(Access.load(Path.of("scripts.jma")))
        .define("server", server);

Script script = jumper.script(Files.readString(Path.of("welcome.jmp")));
script.run();
script.invoke("onJoin", player);

Распространяется под лицензией MIT.