HookBentoBox.java 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package xyz.spaceio.hooks;
  2. import java.lang.reflect.InvocationTargetException;
  3. import java.lang.reflect.Method;
  4. import java.util.Arrays;
  5. import java.util.Optional;
  6. import java.util.UUID;
  7. import org.bukkit.Bukkit;
  8. import org.bukkit.Location;
  9. import org.bukkit.World;
  10. import org.bukkit.block.Block;
  11. import world.bentobox.bentobox.BentoBox;
  12. import world.bentobox.bentobox.database.objects.Island;
  13. import world.bentobox.level.Level;
  14. public class HookBentoBox implements SkyblockAPIHook{
  15. private BentoBox api;
  16. public HookBentoBox() {
  17. api = (BentoBox) Bukkit.getPluginManager().getPlugin("BentoBox");
  18. }
  19. @Override
  20. public int getIslandLevel(UUID uuid, String onWorld) {
  21. if(api.getAddonsManager().getAddonByName("Level").isPresent()) {
  22. Level levelAddon = (Level) api.getAddonsManager().getAddonByName("Level").get();
  23. return (int) levelAddon.getIslandLevel(Bukkit.getWorld(onWorld), uuid);
  24. }
  25. return 0;
  26. }
  27. @Override
  28. public Optional<UUID> getIslandOwner(Location loc) {
  29. Optional<Island> optIsland = api.getIslands().getIslandAt(loc);
  30. Optional<UUID> optional = Optional.empty();
  31. if(optIsland.isPresent() && optIsland.get().getOwner() != null) {
  32. optional = Optional.of(optIsland.get().getOwner());
  33. }
  34. return optional;
  35. }
  36. @Override
  37. public String[] getSkyBlockWorldNames() {
  38. return api.getIWM().getOverWorlds().stream().map(w -> new String[]{w.getName(), w.getName() + "_nether", w.getName() + "_the_end"}).flatMap(s -> Arrays.stream(s)).toArray(String[]::new);
  39. }
  40. @Override
  41. public void sendBlockAcknowledge(Block block) {
  42. // TODO Auto-generated method stub
  43. }
  44. }