WorldCommands.java 4.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package me.hammerle.mp.snuviscript.commands;
  2. import java.util.ArrayList;
  3. import org.bukkit.Bukkit;
  4. import org.bukkit.Chunk;
  5. import org.bukkit.Difficulty;
  6. import org.bukkit.Location;
  7. import org.bukkit.World;
  8. import org.bukkit.WorldCreator;
  9. import me.hammerle.mp.MundusPlugin;
  10. import me.hammerle.mp.plots.WorldPlotMap;
  11. public class WorldCommands {
  12. @SuppressWarnings("")
  13. public static void registerFunctions() {
  14. MundusPlugin.scriptManager.registerFunction("world.getplayers",
  15. (sc, in) -> new ArrayList<>(((World) in[0].get(sc)).getPlayers()));
  16. MundusPlugin.scriptManager.registerFunction("world.get",
  17. (sc, in) -> Bukkit.getServer().getWorld(in[0].getString(sc)));
  18. MundusPlugin.scriptManager.registerFunction("world.getname",
  19. (sc, in) -> ((World) in[0].get(sc)).getName());
  20. MundusPlugin.scriptManager.registerConsumer("world.setdifficulty", (sc, in) -> {
  21. ((World) in[0].get(sc)).setDifficulty(Difficulty.valueOf(in[1].getString(sc)));
  22. });
  23. MundusPlugin.scriptManager.registerConsumer("world.setspawn", (sc, in) -> {
  24. Location l = ((Location) in[0].get(sc));
  25. l.getWorld().setSpawnLocation(l);
  26. });
  27. MundusPlugin.scriptManager.registerFunction("world.getspawn",
  28. (sc, in) -> ((World) in[0].get(sc)).getSpawnLocation());
  29. MundusPlugin.scriptManager.registerFunction("world.getall",
  30. (sc, in) -> new ArrayList<>(Bukkit.getWorlds()));
  31. MundusPlugin.scriptManager.registerConsumer("world.settime",
  32. (sc, in) -> ((World) in[0].get(sc)).setTime(in[1].getLong(sc)));
  33. MundusPlugin.scriptManager.registerFunction("world.gettime",
  34. (sc, in) -> (double) ((World) in[0].get(sc)).getTime());
  35. MundusPlugin.scriptManager.registerFunction("world.hasrain",
  36. (sc, in) -> ((World) in[0].get(sc)).hasStorm());
  37. MundusPlugin.scriptManager.registerFunction("world.hasthunder",
  38. (sc, in) -> ((World) in[0].get(sc)).isThundering());
  39. MundusPlugin.scriptManager.registerConsumer("world.clearweather", (sc, in) -> {
  40. World w = (World) in[0].get(sc);
  41. w.setStorm(false);
  42. w.setThundering(false);
  43. w.setClearWeatherDuration(in[1].getInt(sc));
  44. });
  45. MundusPlugin.scriptManager.registerConsumer("world.setrain", (sc, in) -> {
  46. World w = (World) in[0].get(sc);
  47. w.setStorm(true);
  48. w.setWeatherDuration(in[1].getInt(sc));
  49. });
  50. MundusPlugin.scriptManager.registerConsumer("world.setthunder", (sc, in) -> {
  51. World w = (World) in[0].get(sc);
  52. w.setThundering(true);
  53. w.setThunderDuration(in[1].getInt(sc));
  54. });
  55. MundusPlugin.scriptManager.registerFunction("world.getentities",
  56. (sc, in) -> new ArrayList<>(((World) in[0].get(sc)).getEntities()));
  57. MundusPlugin.scriptManager.registerFunction("world.load", (sc, in) -> {
  58. World w = Bukkit.createWorld(WorldCreator.name(in[0].getString(sc)));
  59. WorldPlotMap.read(w.getName());
  60. return w;
  61. });
  62. MundusPlugin.scriptManager.registerFunction("world.unload",
  63. (sc, in) -> Bukkit.unloadWorld((World) in[0].get(sc), true));
  64. MundusPlugin.scriptManager.registerFunction("world.getloadedchunks", (sc, in) -> {
  65. return ((World) in[0].get(sc)).getLoadedChunks();
  66. });
  67. MundusPlugin.scriptManager.registerFunction("world.unloadchunk", (sc, in) -> {
  68. return ((Chunk) in[0].get(sc)).unload();
  69. });
  70. MundusPlugin.scriptManager.registerFunction("world.isforceloadedchunk", (sc, in) -> {
  71. return ((Chunk) in[0].get(sc)).isForceLoaded();
  72. });
  73. MundusPlugin.scriptManager.registerFunction("world.getchunkx", (sc, in) -> {
  74. return (double) ((Chunk) in[0].get(sc)).getX();
  75. });
  76. MundusPlugin.scriptManager.registerFunction("world.getchunkz", (sc, in) -> {
  77. return (double) ((Chunk) in[0].get(sc)).getZ();
  78. });
  79. }
  80. }