From 1a96128321045dc2cf5e261d62ec690039a94b2d Mon Sep 17 00:00:00 2001 From: RePixelatedMC <107539181+RePixelatedMC@users.noreply.github.com> Date: Sat, 28 Sep 2024 14:24:14 +0200 Subject: [PATCH] backup --- .../iris/core/commands/CommandDeveloper.java | 4 +-- .../iris/core/tools/IrisBiomeFixer.java | 25 ++++++++++++++----- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/core/src/main/java/com/volmit/iris/core/commands/CommandDeveloper.java b/core/src/main/java/com/volmit/iris/core/commands/CommandDeveloper.java index a65d2c680..82968e6ba 100644 --- a/core/src/main/java/com/volmit/iris/core/commands/CommandDeveloper.java +++ b/core/src/main/java/com/volmit/iris/core/commands/CommandDeveloper.java @@ -161,8 +161,8 @@ public class CommandDeveloper implements DecreeExecutor { } - @Decree(description = "Fix biomes in a iris world") - public void fixBiomes( + @Decree(description = "Fix biomes in a iris world", aliases = {"fb"} ) + public void fixbiomes( @Param(description = "The IrisWorld to fix biomes at") World world) { IrisBiomeFixer biomeFixer = new IrisBiomeFixer(world); diff --git a/core/src/main/java/com/volmit/iris/core/tools/IrisBiomeFixer.java b/core/src/main/java/com/volmit/iris/core/tools/IrisBiomeFixer.java index 424489f4f..029adbe30 100644 --- a/core/src/main/java/com/volmit/iris/core/tools/IrisBiomeFixer.java +++ b/core/src/main/java/com/volmit/iris/core/tools/IrisBiomeFixer.java @@ -7,6 +7,7 @@ import com.volmit.iris.engine.object.IrisBiomeCustom; import com.volmit.iris.util.math.M; import com.volmit.iris.util.math.RNG; import com.volmit.iris.util.math.RollingSequence; +import com.volmit.iris.util.misc.E; import com.volmit.iris.util.scheduling.ChronoLatch; import com.volmit.iris.util.scheduling.J; import org.bukkit.World; @@ -109,16 +110,28 @@ public class IrisBiomeFixer { for (int y = minY; y < maxY; y++) { for (int z = 0; z < 16; z++) { Block block = chunk.getBlock(x, y, z); - Biome bukkitBiome = null; + Biome bukkitBiome; IrisBiome irisBiome = engine.getBiome(x, y, z); - IrisBiomeCustom custom = irisBiome.getCustomBiome(rng, x, y, z); - if (custom != null) { - bukkitBiome = Biome.valueOf(custom.getId().toUpperCase()); - } else { - + try { + // Try to get the custom biome + IrisBiomeCustom custom = irisBiome.getCustomBiome(rng, x, y, z); + if (custom != null) { + bukkitBiome = Biome.valueOf(custom.getId().toUpperCase()); + } else { + // Fallback to derivative biome if custom biome is null + bukkitBiome = irisBiome.getDerivative(); + } + } catch (NullPointerException e) { + // So else will fail. But this works lol + bukkitBiome = irisBiome.getDerivative(); } + if (bukkitBiome == null) { + // This should be impossible + bukkitBiome = Biome.CUSTOM; + Iris.warn("Biome NULL! using plains as fallback!"); + } world.setBiome(block.getX(), block.getY(), block.getZ(), bukkitBiome); } }