HookSuperiorSkyblock.java 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package xyz.spaceio.hooks;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import java.util.Optional;
  5. import java.util.UUID;
  6. import org.bukkit.Bukkit;
  7. import org.bukkit.Location;
  8. import org.bukkit.World;
  9. import org.bukkit.block.Block;
  10. import org.bukkit.event.HandlerList;
  11. import org.bukkit.plugin.Plugin;
  12. import org.bukkit.plugin.RegisteredListener;
  13. import com.bgsoftware.superiorskyblock.api.SuperiorSkyblockAPI;
  14. public class HookSuperiorSkyblock implements SkyblockAPIHook {
  15. public HookSuperiorSkyblock(Plugin plugin) {
  16. for(RegisteredListener listener : HandlerList.getRegisteredListeners(Bukkit.getPluginManager().getPlugin("SuperiorSkyblock2"))) {
  17. try {
  18. if(listener.getListener().getClass() == Class.forName("com.bgsoftware.superiorskyblock.module.generators.listeners.GeneratorsListener")){
  19. HandlerList.unregisterAll(listener.getListener());
  20. plugin.getLogger().info(String.format("%s: Unregistered inbuilt-generator from Plugin (%s) to use this one", this.getClass().getSimpleName(), listener.getListener().getClass().getName()));
  21. }
  22. } catch (ClassNotFoundException e) {
  23. plugin.getLogger().warning(String.format("%s: Generator class for inbuilt-generator not found (%s)", this.getClass().getSimpleName(), listener.getListener().getClass().getName()));
  24. }
  25. }
  26. }
  27. @Override
  28. public int getIslandLevel(UUID uuid, String world) {
  29. if(SuperiorSkyblockAPI.getPlayer(uuid) == null || SuperiorSkyblockAPI.getPlayer(uuid).getIsland() == null) {
  30. return 0;
  31. }else {
  32. return SuperiorSkyblockAPI.getPlayer(uuid).getIsland().getIslandLevel().intValue();
  33. }
  34. }
  35. @Override
  36. public Optional<UUID> getIslandOwner(Location loc) {
  37. if(SuperiorSkyblockAPI.getIslandAt(loc) != null && SuperiorSkyblockAPI.getIslandAt(loc).getOwner() != null) {
  38. return Optional.of(SuperiorSkyblockAPI.getIslandAt(loc).getOwner().getUniqueId());
  39. }else {
  40. return Optional.empty();
  41. }
  42. }
  43. @Override
  44. public String[] getSkyBlockWorldNames() {
  45. List<World> worlds = new ArrayList<>();
  46. if(SuperiorSkyblockAPI.getGrid() != null && SuperiorSkyblockAPI.getGrid().getRegisteredWorlds() != null) {
  47. worlds.addAll(SuperiorSkyblockAPI.getGrid().getRegisteredWorlds());
  48. }
  49. if(SuperiorSkyblockAPI.getSpawnIsland() != null && SuperiorSkyblockAPI.getSpawnIsland().getVisitorsLocation() != null) {
  50. worlds.add(SuperiorSkyblockAPI.getSpawnIsland().getVisitorsLocation().getWorld());
  51. }
  52. return worlds.stream().map(w -> w.getName()).toArray(String[]::new);
  53. }
  54. @Override
  55. public void sendBlockAcknowledge(Block block) {
  56. if(SuperiorSkyblockAPI.getIslandAt(block.getLocation()) != null) {
  57. SuperiorSkyblockAPI.getIslandAt(block.getLocation()).handleBlockPlace(block);
  58. }
  59. }
  60. }