PlotCommands.java 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package me.km.snuviscript.commands;
  2. import me.hammerle.snuviscript.code.ScriptManager;
  3. import me.km.overrides.ModEntityPlayerMP;
  4. import me.km.plots.PlotMap;
  5. import me.km.plots.WorldPlotMap;
  6. import me.km.utils.Location;
  7. import net.minecraft.world.World;
  8. public class PlotCommands {
  9. public static void registerFunctions(ScriptManager sm, WorldPlotMap plots) {
  10. sm.registerFunction("plot.get", (sc, in) -> {
  11. Location l = (Location) in[0].get(sc);
  12. return plots.getPlots(l.getWorld(), l.getBlockPos());
  13. });
  14. sm.registerFunction("plot.check", (sc, in) -> {
  15. Location l = (Location) in[0].get(sc);
  16. ModEntityPlayerMP p = (ModEntityPlayerMP) in[1].get(sc);
  17. int flags = in[2].getInt(sc);
  18. boolean empty = in[3].getBoolean(sc);
  19. return plots.canDoSomething(l.getWorld(), l.getBlockPos(), p, flags, empty);
  20. });
  21. sm.registerConsumer("plot.setflags", (sc, in) -> {
  22. PlotMap.Plot p = (PlotMap.Plot) in[0].get(sc);
  23. p.setFlag(in[1].getInt(sc), in[2].getBoolean(sc));
  24. });
  25. sm.registerFunction("plot.hasflags", (sc, in) -> ((PlotMap.Plot) in[0].get(sc)).hasFlags(in[1].getInt(sc)));
  26. sm.registerFunction("plot.getflags", (sc, in) -> (double) ((PlotMap.Plot) in[0].get(sc)).getFlags());
  27. sm.registerFunction("plot.getowners", (sc, in) -> ((PlotMap.Plot) in[0].get(sc)).getOwners());
  28. sm.registerFunction("plot.add", (sc, in) -> {
  29. Location l1 = (Location) in[0].get(sc);
  30. Location l2 = (Location) in[1].get(sc);
  31. if(l1.getWorld() != l2.getWorld()) {
  32. throw new IllegalArgumentException("worlds not equal for locations");
  33. }
  34. return plots.add(l1.getWorld(), l1.getBlockPos(), l2.getBlockPos());
  35. });
  36. sm.registerConsumer("plot.remove", (sc, in) -> {
  37. plots.remove((World) in[1].get(sc), (PlotMap.Plot) in[0].get(sc));
  38. });
  39. sm.registerFunction("plot.getname", (sc, in) -> ((PlotMap.Plot) in[0].get(sc)).getName());
  40. sm.registerConsumer("plot.setname", (sc, in) -> {
  41. ((PlotMap.Plot) in[0].get(sc)).setName(in[1].getString(sc));
  42. });
  43. sm.registerFunction("plot.getid", (sc, in) -> (double) ((PlotMap.Plot) in[0].get(sc)).getId());
  44. sm.registerFunction("plot.iterator", (sc, in) -> {
  45. World word = (World) in[0].get(sc);
  46. if(in.length >= 2) {
  47. plots.getIterator(word, CommandUtils.getUUID(in[1].get(sc)));
  48. }
  49. return plots.getIterator(word);
  50. });
  51. sm.registerFunction("plot.intersecting", (sc, in) -> plots.getIntersectingPlots((World) in[0].get(sc), in[1].getInt(sc),
  52. in[2].getInt(sc), in[3].getInt(sc), in[4].getInt(sc),
  53. in[5].getInt(sc), in[6].getInt(sc)));
  54. sm.registerFunction("plot.getminx", (sc, in) -> (double) ((PlotMap.Plot) in[0].get(sc)).getMinX());
  55. sm.registerFunction("plot.getminy", (sc, in) -> (double) ((PlotMap.Plot) in[0].get(sc)).getMinY());
  56. sm.registerFunction("plot.getminz", (sc, in) -> (double) ((PlotMap.Plot) in[0].get(sc)).getMinZ());
  57. sm.registerFunction("plot.getmaxx", (sc, in) -> (double) ((PlotMap.Plot) in[0].get(sc)).getMaxX());
  58. sm.registerFunction("plot.getmaxy", (sc, in) -> (double) ((PlotMap.Plot) in[0].get(sc)).getMaxY());
  59. sm.registerFunction("plot.getmaxz", (sc, in) -> (double) ((PlotMap.Plot) in[0].get(sc)).getMaxZ());
  60. }
  61. }