HookSuperiorSkyblock.java 2.3 KB

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