From f4440d77556e962374a9ab56038e3470c11bc4d9 Mon Sep 17 00:00:00 2001 From: TeamHRLive Date: Tue, 11 Feb 2025 10:03:52 +0530 Subject: [PATCH] Xbiomes were not working properly. --- .../spawners/condition/SpawnConditionBiome.java | 14 ++++++++++++-- .../spawners/spawner/SpawnerManagerImpl.java | 10 ++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/EpicSpawners-Plugin/src/main/java/com/craftaro/epicspawners/spawners/condition/SpawnConditionBiome.java b/EpicSpawners-Plugin/src/main/java/com/craftaro/epicspawners/spawners/condition/SpawnConditionBiome.java index d150606..1337c86 100644 --- a/EpicSpawners-Plugin/src/main/java/com/craftaro/epicspawners/spawners/condition/SpawnConditionBiome.java +++ b/EpicSpawners-Plugin/src/main/java/com/craftaro/epicspawners/spawners/condition/SpawnConditionBiome.java @@ -8,7 +8,6 @@ import com.google.common.collect.Iterables; import java.util.Arrays; -import java.util.EnumSet; import java.util.Set; import java.util.stream.Collectors; @@ -39,7 +38,18 @@ public String getDescription() { @Override public boolean isMet(PlacedSpawner spawner) { - return this.biomes.contains(spawner.getLocation().getBlock().getBiome()); + String biomeName = spawner.getLocation().getBlock().getBiome().name(); + XBiome resolvedBiome = getBiomeFromName(biomeName); + return resolvedBiome != null && this.biomes.contains(resolvedBiome); + } + + private XBiome getBiomeFromName(String biomeName) { + for (XBiome xBiome : XBiome.values()) { + if (xBiome.name().equalsIgnoreCase(biomeName)) { + return xBiome; + } + } + return null; } private String getFriendlyBiomeName() { diff --git a/EpicSpawners-Plugin/src/main/java/com/craftaro/epicspawners/spawners/spawner/SpawnerManagerImpl.java b/EpicSpawners-Plugin/src/main/java/com/craftaro/epicspawners/spawners/spawner/SpawnerManagerImpl.java index 344c9e6..75d1496 100644 --- a/EpicSpawners-Plugin/src/main/java/com/craftaro/epicspawners/spawners/spawner/SpawnerManagerImpl.java +++ b/EpicSpawners-Plugin/src/main/java/com/craftaro/epicspawners/spawners/spawner/SpawnerManagerImpl.java @@ -466,12 +466,18 @@ public void saveSpawnerDataToFile() { for (SpawnCondition spawnCondition : spawnerTier.getConditions()) { if (spawnCondition instanceof SpawnConditionBiome) { - if (Arrays.stream(XBiome.values()).map(XBiome::getBiome).equals(((SpawnConditionBiome) spawnCondition).getBiomes())) { + Set allBiomes = Arrays.stream(XBiome.values()).collect(Collectors.toSet()); + Set conditionBiomes = ((SpawnConditionBiome) spawnCondition).getBiomes(); + if (allBiomes.equals(conditionBiomes)) { currentSection2.set("Conditions.Biomes", "ALL"); } else { - currentSection2.set("Conditions.Biomes", String.join(", ", ((SpawnConditionBiome) spawnCondition).getBiomes().stream().map(XBiome::name).collect(Collectors.toSet()))); + String biomesList = conditionBiomes.stream() + .map(XBiome::name) + .collect(Collectors.joining(", ")); + currentSection2.set("Conditions.Biomes", biomesList); } } + if (spawnCondition instanceof SpawnConditionHeight) { currentSection2.set("Conditions.Height", ((SpawnConditionHeight) spawnCondition).getMin() + ":" + ((SpawnConditionHeight) spawnCondition).getMax()); }