SpigotJavascript icon

SpigotJavascript -----

Program plugins in javascript



This plugin allows you to create "modifications" with JS.
Making commands (no tab-completion currently)
Code (Text):
CommandManager.registerCommand("test", function (ev) {
// ev - CmdEventsArgs
// ev.getSender() - returns a CommandSender
// ev.getCommand() - returns command name
// ev.getArgs() - returns an arguments String[]
  ev.getSender().sendMessage("Hello world!");
  // unregister command: CommandManager.unregisterCommand("test");
});
Using events
Code (Text):
var a =
function (ev) {
  var Player = ev.getPlayer();
  if(ev.getMessage().equalsIgnoreCase("hello")) Server.broadcastMessage("Hello, " + Player.getName() + "!");
};
EventManager.on("PlayerChatEvent", a);
// remove all listeners for an event: EventManager.removeAllListeners("PlayerChatEvent");
// remove a listener: EventManager.removeListener("PlayerChatEvent", a);
Variables passed to script:
CommandManager - with this you can make commands
EventManager - listen to events
Server - returns getServer()

You also can create scripted items like in Custom NPCs
Code (Text):

var HoldingEntities = new HashMap();
EventManager.on("Loop", function (n) {
    //Server.broadcastMessage("loop");
    HoldingEntities.keySet().forEach(function (p) {
        HoldingEntities.get(p).teleport(Server.getPlayer(p).getTargetBlock(null, 3).getLocation());
    });
});
CommandManager.registerCommand("gravitygun", function(e) {
    var Player = Server.getPlayer(e.getSender().getName());
    if(Player == null) {
        e.getSender().sendMessage("You must be a player to do that.");
        return;
    }
    var si = EventManager.createScriptedItem(Material.STICK, Player);
    var im = si.item.getItemMeta();
    im.setDisplayName("§6§lGravityGun");
    si.item.setItemMeta(im);
    si.item.addUnsafeEnchantment(Enchantment.DURABILITY, 10);
    EventManager.__items.add(si);
    Player.getInventory().addItem(si.item);
    EventManager.on(si.id + "InteractEntity", function (ev) {
        //ev.player.sendMessage("interact entity");
        if(ev.event.getHand() != "HAND") return;
        //if(!ev.player.isSneaking()) return;
        var entity = ev.event.getRightClicked();
   
        HoldingEntities.put(ev.player.getName(), entity);
        entity.setGravity(false);
        //ev.player.sendMessage("grabbed entity");
    });
    EventManager.on(si.id + "Interact", function (ev) {
            //ev.player.sendMessage("interact");
        if(ev.event.getAction() != "RIGHT_CLICK_AIR" && ev.event.getAction() != "RIGHT_CLICK_BLOCK") return;
        if(!ev.player.isSneaking()) return;
        if(HoldingEntities.containsKey(ev.player.getName())) {
        //    ev.player.sendMessage("released entity");
            HoldingEntities.get(ev.player.getName()).setGravity(true);
            HoldingEntities.remove(ev.player.getName());
            return;
        }
   
    });
});
 
Here is an additional events:
Loop - called every 5 ticks (I'll change later)
{scripteditemid}Loop - called every 5 ticks
{scripteditemid}BlockPlace
{scripteditemid}BlockBreak
{scripteditemid}Interact
{scripteditemid}InteractEntity
{scripteditemid}ItemDrop
{scripteditemid}ItemPickup
{scripteditemid}ItemConsume
{scripteditemid}ItemHeld
{scripteditemid}AttackEntity
The scripted item event args contains player, ScriptedItem instance and Event
ev.event - Event
ev.player - Player
ev.item - ScriptedItem

Commands:
/jsrun <code> - execute JS code (permission: spigotjs.jsrun)
/loadscript <file (extension required)> - loads a script from ./plugins/SpigotJavascript folder (scripts aren't loading automatically) (permission: spigotjs.use)
/firecustomevent <Name> <EventArgs, String[]> - fire custom event (can be used in command blocks) (permission: spigotjs.use)
/evaluate - run a code from writable book you holding (permission: spigotjs.use)

Also, you can connect with Telnet to server (port 5841) so you can script directly there (only one-line)
I will provide a link for non-telnet client, and I'm working on .NET port of Bukkit API.
Resource Information
Author:
----------
Total Downloads: 87
First Release: Dec 8, 2021
Last Update: Dec 8, 2021
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings