Procházet zdrojové kódy

add hook for DeluxeSkyblock

MasterCake před 2 dny
rodič
revize
eb3a412894
2 změnil soubory, kde provedl 55 přidání a 0 odebrání
  1. 7 0
      pom.xml
  2. 48 0
      src/main/java/xyz/spaceio/hooks/HookDeluxeSkyblock.java

+ 7 - 0
pom.xml

@@ -163,6 +163,13 @@
 			<version>4.0.9.1</version>
 			<scope>provided</scope>
 		</dependency>
+		<!-- DeluxeSkyblock -->
+		<dependency>
+			<groupId>me.sedattr</groupId>
+			<artifactId>DeluxeSkyblock-API</artifactId>
+			<version>1.0.0</version>
+			<scope>provided</scope>
+		</dependency>
 	</dependencies>
 	<build>
 		<!-- Uses the properties in this file for plugin.yml and config.yml -->

+ 48 - 0
src/main/java/xyz/spaceio/hooks/HookDeluxeSkyblock.java

@@ -0,0 +1,48 @@
+package xyz.spaceio.hooks;
+
+import me.sedattr.skyblockapi.cache.IslandCache;
+import me.sedattr.skyblockapi.model.IIsland;
+import org.bukkit.Location;
+import org.bukkit.block.Block;
+
+import java.util.Optional;
+import java.util.UUID;
+
+public class HookDeluxeSkyblock implements SkyblockAPIHook {
+
+	public HookDeluxeSkyblock() {
+	}
+
+	@Override
+	public int getIslandLevel(UUID uuid, String onWorld) {
+		IIsland island = IslandCache.getIsland(uuid);
+		if (island != null) {
+			return island.getLevel();
+		}
+		return 0;
+	}
+
+	@Override
+	public Optional<UUID> getIslandOwner(Location loc) {
+		IIsland island = IslandCache.getIslandInLocation(loc);
+		if (island != null) {
+			return Optional.of(island.getOwnerUUID());
+		}
+		return Optional.empty();
+	}
+
+	@Override
+	public String[] getSkyBlockWorldNames() {
+		return IslandCache.getLoadedIslands().values().stream()
+			.flatMap(island -> island.getLocations().values().stream())
+			.map(loc -> loc.getWorld().getName())
+			.distinct()
+			.toArray(String[]::new);
+	}
+
+	@Override
+	public void sendBlockAcknowledge(Block block) {
+		// Not implemented for DeluxeSkyblock
+	}
+
+}