HookFabledSkyblock.java 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package xyz.spaceio.hooks;
  2. import java.util.Optional;
  3. import java.util.UUID;
  4. import org.bukkit.Bukkit;
  5. import org.bukkit.Location;
  6. import org.bukkit.OfflinePlayer;
  7. import org.bukkit.block.Block;
  8. import com.songoda.skyblock.SkyBlock;
  9. import com.songoda.skyblock.island.Island;
  10. public class HookFabledSkyblock implements SkyblockAPIHook{
  11. private SkyBlock api;
  12. public HookFabledSkyblock() {
  13. api = (SkyBlock) Bukkit.getPluginManager().getPlugin("FabledSkyBlock");
  14. }
  15. @Override
  16. public int getIslandLevel(UUID uuid, String onWorld) {
  17. // create an offline player object because this plugin (unlike the others) does not have a method to obtain an island by UUID.
  18. OfflinePlayer skyblockPlayer = Bukkit.getOfflinePlayer(uuid);
  19. // api does not provide any optional, so doing a few checks here
  20. if(api.getIslandManager() != null) {
  21. if(api.getIslandManager().getIsland(skyblockPlayer) != null) {
  22. Island is = api.getIslandManager().getIsland(skyblockPlayer);
  23. if(is.getLevel() != null) {
  24. return (int) is.getLevel().getLevel();
  25. }
  26. }
  27. }
  28. return 0;
  29. }
  30. @Override
  31. public Optional<UUID> getIslandOwner(Location loc) {
  32. Optional<UUID> optional = Optional.empty();
  33. // some more classic null checks...
  34. if(api.getIslandManager() != null) {
  35. if(api.getIslandManager().getIslandAtLocation(loc) != null) {
  36. if(api.getIslandManager().getIslandAtLocation(loc).getOwnerUUID() != null) {
  37. optional = Optional.of(api.getIslandManager().getIslandAtLocation(loc).getOwnerUUID());
  38. }
  39. }
  40. }
  41. return optional;
  42. }
  43. @Override
  44. public String[] getSkyBlockWorldNames() {
  45. if(api.getWorldManager() != null) {
  46. // a method for getting the islands is missing, so using what we have
  47. return Bukkit.getWorlds().stream().filter(w -> api.getWorldManager().isIslandWorld(w)).map(w -> w.getName()).toArray(String[]::new);
  48. }
  49. return null;
  50. }
  51. @Override
  52. public void sendBlockAcknowledge(Block block) {
  53. // TODO Auto-generated method stub
  54. }
  55. }