diff --git a/src/main/java/ninja/bytecode/iris/Iris.java b/src/main/java/ninja/bytecode/iris/Iris.java index 39e230250..71024bf29 100644 --- a/src/main/java/ninja/bytecode/iris/Iris.java +++ b/src/main/java/ninja/bytecode/iris/Iris.java @@ -3,7 +3,9 @@ package ninja.bytecode.iris; import java.io.File; import org.bukkit.Bukkit; +import org.bukkit.Chunk; import org.bukkit.World; +import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.HandlerList; import org.bukkit.event.Listener; @@ -16,7 +18,6 @@ import mortar.api.sched.S; import mortar.bukkit.command.Command; import mortar.bukkit.plugin.Control; import mortar.bukkit.plugin.MortarPlugin; -import mortar.util.reflection.V; import mortar.util.text.C; import ninja.bytecode.iris.command.CommandIris; import ninja.bytecode.iris.controller.ExecutionController; @@ -25,6 +26,8 @@ import ninja.bytecode.iris.controller.WandController; import ninja.bytecode.iris.generator.IrisGenerator; import ninja.bytecode.iris.util.Direction; import ninja.bytecode.iris.util.HotswapGenerator; +import ninja.bytecode.iris.util.IrisMetrics; +import ninja.bytecode.shuriken.execution.J; import ninja.bytecode.shuriken.logging.L; public class Iris extends MortarPlugin @@ -32,7 +35,7 @@ public class Iris extends MortarPlugin public static Thread primaryThread; public static Settings settings; public static IrisMetrics metrics; - private ExecutionController executionController; + private static ExecutionController executionController; public static Iris instance; @@ -69,7 +72,7 @@ public class Iris extends MortarPlugin public static boolean isGen(World world) { IrisGenerator g = getGen(world); - return g != null && g instanceof IrisGenerator; + return g != null; } public static IrisGenerator getGen(World world) @@ -92,30 +95,6 @@ public class Iris extends MortarPlugin { instance = this; packController.compile(); - - new S(0) - { - @Override - public void run() - { - instance = Iris.this; - for(World i : Bukkit.getWorlds()) - { - try - { - new V(i.getGenerator()).invoke("setGenerator", new IrisGenerator()); - L.i("Hotloading Generator for World " + i.getName()); - } - - catch(Throwable e) - { - - } - } - } - }; - - instance = this; } @Override @@ -129,7 +108,6 @@ public class Iris extends MortarPlugin HandlerList.unregisterAll((Plugin) this); Bukkit.getScheduler().cancelTasks(this); executionController.stop(); - packController.dispose(); } @EventHandler @@ -174,18 +152,13 @@ public class Iris extends MortarPlugin public static ExecutionController exec() { - if(instance == null) + if(executionController == null) { - instance = (Iris) Bukkit.getPluginManager().getPlugin("Iris"); + executionController = new ExecutionController(); + executionController.start(); } - if(instance.executionController == null) - { - instance.executionController = new ExecutionController(); - instance.executionController.start(); - } - - return instance.executionController; + return executionController; } public static WandController wand() diff --git a/src/main/java/ninja/bytecode/iris/generator/IrisGenerator.java b/src/main/java/ninja/bytecode/iris/generator/IrisGenerator.java index 861d27c0a..0d5644893 100644 --- a/src/main/java/ninja/bytecode/iris/generator/IrisGenerator.java +++ b/src/main/java/ninja/bytecode/iris/generator/IrisGenerator.java @@ -14,7 +14,6 @@ import org.bukkit.util.NumberConversions; import mortar.util.text.C; import ninja.bytecode.iris.Iris; -import ninja.bytecode.iris.IrisMetrics; import ninja.bytecode.iris.generator.atomics.AtomicChunkData; import ninja.bytecode.iris.generator.genobject.GenObjectDecorator; import ninja.bytecode.iris.generator.genobject.PlacedObject; @@ -32,6 +31,7 @@ import ninja.bytecode.iris.pack.IrisRegion; import ninja.bytecode.iris.util.ChunkPlan; import ninja.bytecode.iris.util.InterpolationMode; import ninja.bytecode.iris.util.IrisInterpolation; +import ninja.bytecode.iris.util.IrisMetrics; import ninja.bytecode.iris.util.MB; import ninja.bytecode.iris.util.NoiseProvider; import ninja.bytecode.iris.util.ObjectMode; diff --git a/src/main/java/ninja/bytecode/iris/generator/genobject/GenObjectDecorator.java b/src/main/java/ninja/bytecode/iris/generator/genobject/GenObjectDecorator.java index 803278189..b65309260 100644 --- a/src/main/java/ninja/bytecode/iris/generator/genobject/GenObjectDecorator.java +++ b/src/main/java/ninja/bytecode/iris/generator/genobject/GenObjectDecorator.java @@ -334,6 +334,11 @@ public class GenObjectDecorator extends BlockPopulator { if(M.r(Iris.settings.gen.objectDensity)) { + if(i.getSchematics().isEmpty()) + { + continue; + } + GenObject go = i.getSchematics().get(random.nextInt(i.getSchematics().size())); int x = (cx << 4) + random.nextInt(16); int z = (cz << 4) + random.nextInt(16); diff --git a/src/main/java/ninja/bytecode/iris/IrisMetrics.java b/src/main/java/ninja/bytecode/iris/util/IrisMetrics.java similarity index 98% rename from src/main/java/ninja/bytecode/iris/IrisMetrics.java rename to src/main/java/ninja/bytecode/iris/util/IrisMetrics.java index f423572f5..dabc80a57 100644 --- a/src/main/java/ninja/bytecode/iris/IrisMetrics.java +++ b/src/main/java/ninja/bytecode/iris/util/IrisMetrics.java @@ -1,4 +1,4 @@ -package ninja.bytecode.iris; +package ninja.bytecode.iris.util; import java.util.function.Consumer; @@ -6,6 +6,7 @@ import org.bukkit.command.CommandSender; import mortar.compute.math.M; import mortar.util.text.C; +import ninja.bytecode.iris.Iris; import ninja.bytecode.shuriken.bench.PrecisionStopwatch; import ninja.bytecode.shuriken.collections.KList; import ninja.bytecode.shuriken.collections.KMap;