4 Revize f94d007601 ... 41a38cc820

Autor SHA1 Zpráva Datum
  MasterCake 41a38cc820 increment minor version před 3 dny
  MasterCake e009bf82f9 fix #58 před 4 dny
  MasterCake 8cbbe4e102 fix #59 před 4 dny
  MasterCake eb3a412894 add hook for DeluxeSkyblock před 4 dny

+ 8 - 1
pom.xml

@@ -4,7 +4,7 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>xyz.spaceio</groupId>
 	<artifactId>CustomOreGen</artifactId>
-	<version>1.3.40-SNAPSHOT</version>
+	<version>1.3.41-SNAPSHOT</version>
 	<repositories>
 		<!-- Spigot repository -->
 		<repository>
@@ -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 -->

+ 6 - 4
src/main/java/xyz/spaceio/customoregen/Events.java

@@ -88,10 +88,9 @@ public class Events implements Listener {
 		}
 		if(event.getNewState().getType().equals(Material.COBBLESTONE)
 				|| enableStoneGenerator && event.getNewState().getType().equals(Material.STONE)) {
-			event.setCancelled(true);
-
 			GeneratorConfig generatorConfig = this.getGeneratorConfigAtLocation(event.getBlock().getLocation());
 			if (generatorConfig != null) {
+				event.setCancelled(true);
 				GeneratorItem generatorItem = generatorConfig.getRandomItem();
 				Material material = Material.getMaterial(generatorItem.getName());
 
@@ -109,10 +108,13 @@ public class Events implements Listener {
 	 */
 	@EventHandler
 	public void onBlockFromToEvent(BlockFromToEvent event) {
+		if (plugin.getDisabledWorlds().contains(event.getBlock().getLocation().getWorld().getName())) {
+			return;
+		}
 		if(this.isGenerator(event)) {
-			event.setCancelled(true);
 			GeneratorConfig generatorConfig = this.getGeneratorConfigAtLocation(event.getBlock().getLocation());
 			if (generatorConfig != null) {
+				event.setCancelled(true);
 				GeneratorItem generatorItem = generatorConfig.getRandomItem();
 				Material material = Material.getMaterial(generatorItem.getName());
 
@@ -121,8 +123,8 @@ public class Events implements Listener {
 
 					placeBlock(event.getToBlock(), material, generatorItem.getDamage());
 				}
+				event.getBlock().getState().update();
 			}
-			event.getBlock().getState().update();
 		}
 	}
 

+ 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
+	}
+
+}