123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package me.km.snuviscript.commands;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.UUID;
- import me.hammerle.snuviscript.code.Script;
- import me.hammerle.snuviscript.code.ScriptManager;
- import me.km.snuviscript.Scripts;
- import net.minecraft.entity.player.PlayerEntity;
- import net.minecraft.server.MinecraftServer;
- public class ScriptCommands {
- private static void nothing(Script sc) {
- }
- public static void registerFunctions(ScriptManager sm, Scripts scripts, MinecraftServer server) {
- sm.registerConsumer("script.callevent", (sc, in) -> {
- String name = in[0].getString(sc);
- if(in.length >= 2) {
- sm.callEvent(name, (Script) in[1].get(sc), ScriptCommands::nothing, ScriptCommands::nothing);
- } else {
- sm.callEvent(name, ScriptCommands::nothing, ScriptCommands::nothing);
- }
- });
- sm.registerFunction("script.playerstolist", (sc, in) -> new ArrayList<>(scripts.getPlayerList(sc.getId())));
- sm.registerFunction("script.getplayeramount", (sc, in) -> (double) scripts.getPlayerList(sc.getId()).size());
- sm.registerFunction("script.start", (sc, in) -> {
- Object o = in[0].get(sc);
- if(o instanceof PlayerEntity) {
- String[] names = new String[in.length - 1];
- for(int i = 1; i < in.length; i++) {
- names[i - 1] = in[i].getString(sc);
- }
- return scripts.startPlayerScript((PlayerEntity) in[0].get(sc), names);
- }
- String[] names = new String[in.length];
- names[0] = o.toString();
- for(int i = 1; i < in.length; i++) {
- names[i] = in[i].getString(sc);
- }
- scripts.startScript(names);
- return true;
- });
- sm.registerFunction("script.join", (sc, in) -> scripts.registerPlayer((Script) in[0].get(sc), (PlayerEntity) in[1].get(sc)));
- sm.registerFunction("script.kick", (sc, in) -> scripts.unregisterPlayer(sc, (PlayerEntity) in[0].get(sc)));
- sm.registerFunction("script.getleader", (sc, in) -> {
- List<UUID> players = scripts.getPlayerList(sc.getId());
- if(players.isEmpty()) {
- return null;
- }
- return server.getPlayerList().getPlayerByUUID(players.get(0));
- });
- }
- }
|