Commands.java 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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.km.permissions.ModCommandManager;
  6. import me.km.permissions.Permissions;
  7. import me.km.scheduler.SnuviScheduler;
  8. import me.km.snuviscript.Scripts;
  9. import static me.km.snuviscript.commands.CommandUtils.concat;
  10. import static me.km.snuviscript.commands.CommandUtils.sendMessageToGroup;
  11. import net.minecraft.entity.LivingEntity;
  12. import net.minecraft.entity.player.PlayerEntity;
  13. import net.minecraft.server.MinecraftServer;
  14. import net.minecraft.util.text.StringTextComponent;
  15. public class Commands {
  16. public static void registerFunctions(ScriptManager sm, Scripts scripts, Permissions perms, SnuviScheduler scheduler,
  17. MinecraftServer server, ModCommandManager commands) {
  18. sm.registerConsumer("setmotd", (sc, in) -> {
  19. server.getServerStatusResponse().setServerDescription(new StringTextComponent(in[0].getString(sc)));
  20. });
  21. sm.registerConsumer("msg", (sc, in) -> {
  22. sendMessageToGroup(server, scripts, perms, in[0].get(sc), sc, concat(sc, 1, "", in));
  23. });
  24. sm.registerFunction("removeformat", (sc, in) -> SnuviUtils.connect(sc, in, 0).replaceAll("§.", ""));
  25. sm.registerConsumer("command", (sc, in) -> {
  26. final String s = SnuviUtils.connect(sc, in, 0);
  27. scheduler.scheduleTask(() -> commands.handleCommand(server.getCommandSource(), s));
  28. });
  29. sm.registerFunction("isplayer", (sc, in) -> {
  30. Object o = in[0].get(sc);
  31. return o != null && o instanceof PlayerEntity;
  32. });
  33. sm.registerFunction("isliving", (sc, in) -> {
  34. Object o = in[0].get(sc);
  35. return o != null && o instanceof LivingEntity;
  36. });
  37. sm.registerConsumer("config.saveasync", (sc, in) -> {
  38. SnuviConfig config = (SnuviConfig) in[0].get(sc);
  39. scheduler.scheduleAsyncTask(() -> config.save(sc));
  40. });
  41. sm.registerFunction("text.concat2", (sc, in) -> concat(sc, 0, "", in));
  42. sm.registerAlias("text.concat2", "concat2");
  43. }
  44. }