Commands.java 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package me.km.snuviscript.commands;
  2. import me.hammerle.snuviscript.code.ScriptManager;
  3. import me.hammerle.snuviscript.code.SnuviUtils;
  4. import me.hammerle.snuviscript.config.SnuviConfig;
  5. import me.hammerle.snuviscript.exceptions.StackTrace;
  6. import me.km.permissions.ModCommandManager;
  7. import me.km.permissions.Permissions;
  8. import me.km.scheduler.SnuviScheduler;
  9. import me.km.snuviscript.Scripts;
  10. import static me.km.snuviscript.commands.CommandUtils.concat;
  11. import static me.km.snuviscript.commands.CommandUtils.sendMessageToGroup;
  12. import net.minecraft.entity.LivingEntity;
  13. import net.minecraft.entity.player.PlayerEntity;
  14. import net.minecraft.server.MinecraftServer;
  15. import net.minecraft.util.text.StringTextComponent;
  16. public class Commands {
  17. public static void registerFunctions(ScriptManager sm, Scripts scripts, Permissions perms,
  18. SnuviScheduler scheduler, MinecraftServer server, ModCommandManager commands) {
  19. sm.registerConsumer("setmotd", (sc, in) -> {
  20. server.getServerStatusResponse()
  21. .setServerDescription(new StringTextComponent(in[0].getString(sc)));
  22. });
  23. sm.registerConsumer("msg", (sc, in) -> {
  24. sendMessageToGroup(server, scripts, perms, in[0].get(sc), sc, concat(sc, 1, "", in));
  25. });
  26. sm.registerFunction("removeformat",
  27. (sc, in) -> SnuviUtils.connect(sc, in, 0).replaceAll("§.", ""));
  28. sm.registerConsumer("command", (sc, in) -> {
  29. final String s = SnuviUtils.connect(sc, in, 0);
  30. StackTrace trace = sc.getStackTrace();
  31. scheduler.scheduleTask(() -> {
  32. try {
  33. commands.handleCommand(server.getCommandSource(), s);
  34. } catch(Exception ex) {
  35. sc.getScriptManager().getLogger().print(null, ex, "living.heal", sc.getName(),
  36. sc, trace);
  37. }
  38. });
  39. });
  40. sm.registerFunction("isplayer", (sc, in) -> {
  41. Object o = in[0].get(sc);
  42. return o != null && o instanceof PlayerEntity;
  43. });
  44. sm.registerFunction("isliving", (sc, in) -> {
  45. Object o = in[0].get(sc);
  46. return o != null && o instanceof LivingEntity;
  47. });
  48. sm.registerConsumer("config.saveasync", (sc, in) -> {
  49. SnuviConfig config = (SnuviConfig) in[0].get(sc);
  50. scheduler.scheduleAsyncTask(() -> config.save(sc));
  51. });
  52. sm.registerFunction("text.concat2", (sc, in) -> concat(sc, 0, "", in));
  53. sm.registerAlias("text.concat2", "concat2");
  54. }
  55. }