From 1536a13d3c5755e92b5f9768703119681df93fc3 Mon Sep 17 00:00:00 2001 From: dfsek Date: Sun, 3 Jan 2021 20:16:59 -0700 Subject: [PATCH] fix minor issues & cleanup --- .../java/com/dfsek/terra/generation/MasterChunkGenerator.java | 4 ++++ .../java/com/dfsek/terra/generation/math/SamplerCache.java | 3 +++ .../main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java | 4 ++-- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/common/src/main/java/com/dfsek/terra/generation/MasterChunkGenerator.java b/common/src/main/java/com/dfsek/terra/generation/MasterChunkGenerator.java index e67d013d6..0abb1a2d1 100644 --- a/common/src/main/java/com/dfsek/terra/generation/MasterChunkGenerator.java +++ b/common/src/main/java/com/dfsek/terra/generation/MasterChunkGenerator.java @@ -221,4 +221,8 @@ public class MasterChunkGenerator implements TerraChunkGenerator { } } } + + public SamplerCache getCache() { + return cache; + } } diff --git a/common/src/main/java/com/dfsek/terra/generation/math/SamplerCache.java b/common/src/main/java/com/dfsek/terra/generation/math/SamplerCache.java index 967f13488..36399fc57 100644 --- a/common/src/main/java/com/dfsek/terra/generation/math/SamplerCache.java +++ b/common/src/main/java/com/dfsek/terra/generation/math/SamplerCache.java @@ -27,6 +27,9 @@ public class SamplerCache { return containerMap.computeIfAbsent(world.getSeed(), seed -> new Container(world)).getChunk(chunkX, chunkZ); } + public void clear() { + containerMap.clear(); + } private class Container { private final World world; diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java index e18276438..4ca20f319 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java @@ -16,7 +16,6 @@ import com.dfsek.terra.api.transform.MapTransform; import com.dfsek.terra.api.transform.Transformer; import com.dfsek.terra.bukkit.command.command.TerraCommand; import com.dfsek.terra.bukkit.command.command.structure.LocateCommand; -import com.dfsek.terra.bukkit.generator.BukkitChunkGenerator; import com.dfsek.terra.bukkit.generator.BukkitChunkGeneratorWrapper; import com.dfsek.terra.bukkit.handles.BukkitItemHandle; import com.dfsek.terra.bukkit.handles.BukkitWorldHandle; @@ -61,6 +60,7 @@ public class TerraBukkitPlugin extends JavaPlugin implements TerraPlugin { public void reload() { Map newMap = new HashMap<>(); worldMap.forEach((world, tw) -> { + ((MasterChunkGenerator) ((BukkitChunkGeneratorWrapper) world.getGenerator().getHandle()).getHandle()).getCache().clear(); String packID = tw.getConfig().getTemplate().getID(); newMap.put(world, new TerraWorld(world, registry.get(packID), this)); }); @@ -167,7 +167,7 @@ public class TerraBukkitPlugin extends JavaPlugin implements TerraPlugin { } public TerraWorld getWorld(World w) { - if(!(w.getGenerator() instanceof BukkitChunkGenerator)) + if(!TerraWorld.isTerraWorld(w)) throw new IllegalArgumentException("Not a Terra world! " + w.getGenerator()); if(!worlds.containsKey(w.getName())) { getLogger().warning("Unexpected world load detected: \"" + w.getName() + "\"");