package me.km.snuviscript; import java.util.Arrays; import me.km.KajetansMod; import me.km.api.Module; import me.km.api.ModuleCommand; import java.util.Collection; import me.hammerle.snuviscript.code.Script; import me.km.api.GlobalText; import me.km.api.Utils; import me.km.exception.PlayerNotFoundException; import me.km.permissions.Permissions; import net.minecraft.command.ICommandSender; import net.minecraft.entity.player.EntityPlayer; public class CommandScript extends ModuleCommand { public CommandScript(Module m) { super("script", m); super.setDescription("Zeigt alles über Scripts"); super.setUsage("/script für die Hilfe"); super.setPermission(Permissions.SCRIPT); super.addAlias("s"); } @SuppressWarnings("unchecked") @Override public boolean execute(ICommandSender cs, String[] arg) { Module m = this.getModule(); if(arg.length >= 1) { switch(arg[0].toLowerCase()) { case "s": case "start": { if(arg.length >= 2) { String[] pars = Arrays.copyOfRange(arg, 1, arg.length); KajetansMod.scripts.startScript(pars); return true; } break; } case "startp": { if(arg.length >= 3) { try { EntityPlayer p = Utils.getPlayerByName(arg[1]); String[] pars = Arrays.copyOfRange(arg, 2, arg.length); KajetansMod.scripts.startPlayerScript(p, pars); } catch(PlayerNotFoundException ex) { m.send(cs, GlobalText.cantFindPlayer(arg[1])); } return true; } break; } case "v": case "variable": { if(arg.length >= 3) { try { Script sc = KajetansMod.scripts.getSnuviParser().getScript(Integer.parseInt(arg[1])); if(sc == null) { throw new NumberFormatException(); } m.send(cs, arg[2] + " = " + sc.getVar(arg[2]).get(sc)); } catch(NumberFormatException ex) { m.send(cs, "'" + arg[1] + "' ist keine gültige ID."); } return true; } break; } case "n": case "next": { if(arg.length >= 2) { try { Script sc = KajetansMod.scripts.getSnuviParser().getScript(Integer.parseInt(arg[1])); if(sc == null) { throw new NumberFormatException(); } sc.run(); } catch(NumberFormatException ex) { m.send(cs, "'" + arg[1] + "' ist keine gültige ID."); } return true; } break; } /*case "c": case "code": { if(arg.length >= 3) { try { Script qd = KajetansMod.scripts.getSnuviParser().getScript(Integer.parseInt(arg[1])); if(qd == null) { throw new NumberFormatException(); } qd.runCodeLine(ChatManager.colorMessage(Utils.connectSpaces(arg, 2), cs), cs); } catch(NumberFormatException ex) { m.send(cs, "'" + arg[1] + "' ist keine gültige ID."); } return true; } break; }*/ /*case "p": case "printvars": { if(arg.length >= 2) { try { Script qd = KajetansMod.scripts.getSnuviParser().getScript(Integer.parseInt(arg[1])); if(qd == null) { throw new NumberFormatException(); } cs.sendMessage(new TextComponentString(GlobalText.Spacer())); qd.getVars().entrySet().stream().filter(e -> arg.length < 3 || (e.getKey().startsWith(arg[2]))).forEach(e -> { m.send(cs, e.getKey() + " = " + e.getValue()); }); } catch(NumberFormatException ex) { m.send(cs, "'" + arg[1] + "' ist keine gültige ID."); } return true; } break; }*/ /*case "pl": case "printlists": { if(arg.length >= 2) { try { Script qd = KajetansMod.scripts.getSnuviParser().getScript(Integer.parseInt(arg[1])); if(qd == null) { throw new NumberFormatException(); } cs.sendMessage(new TextComponentString(GlobalText.Spacer())); qd.getVars().entrySet().stream() .filter(e -> e.getValue() instanceof List) .filter(e -> arg.length < 3 || (e.getKey().startsWith(arg[2]))).forEach(e -> { m.send(cs, e.getKey()); ((List) e.getValue()).forEach(l -> m.sendListElement(cs, l.toString())); }); } catch(NumberFormatException ex) { m.send(cs, "'" + arg[1] + "' ist keine gültige ID."); } return true; } break; }*/ /*case "pm": case "printmaps": { if(arg.length >= 2) { try { Script qd = KajetansMod.scripts.getSnuviParser().getScript(Integer.parseInt(arg[1])); if(qd == null) { throw new NumberFormatException(); } cs.sendMessage(new TextComponentString(GlobalText.Spacer())); qd.getVars().entrySet().stream() .filter(e -> e.getValue() instanceof Map) .filter(e -> arg.length < 3 || (e.getKey().startsWith(arg[2]))).forEach(e -> { m.send(cs, e.getKey()); ((Map) e.getValue()).forEach((k, v) -> m.sendListElement(cs, k + " | " + v)); }); } catch(NumberFormatException ex) { m.send(cs, "'" + arg[1] + "' ist keine gültige ID."); } return true; } break; }*/ case "see": { Collection