diff --git a/src/main/java/com/volmit/iris/core/service/LocateSVC.java b/src/main/java/com/volmit/iris/core/service/LocateSVC.java index 1d862a34c..15c84fdc9 100644 --- a/src/main/java/com/volmit/iris/core/service/LocateSVC.java +++ b/src/main/java/com/volmit/iris/core/service/LocateSVC.java @@ -1,26 +1,8 @@ package com.volmit.iris.core.service; -import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.util.format.C; import com.volmit.iris.util.plugin.IrisService; -import com.volmit.iris.util.plugin.VolmitSender; -import org.bukkit.Bukkit; -import org.bukkit.event.EventHandler; -import org.bukkit.event.player.PlayerCommandPreprocessEvent; public class LocateSVC implements IrisService { - - @EventHandler - public void on(final PlayerCommandPreprocessEvent event) { - if (IrisToolbelt.isIrisWorld(event.getPlayer().getWorld())) { - VolmitSender sender = new VolmitSender(event.getPlayer()); - sender.sendMessage(C.YELLOW + "You cannot locate structures in Iris worlds through vanilla commands"); - sender.sendMessage("You can use:"); - // TODO: Convert this to have the correct command prefix - Bukkit.dispatchCommand(event.getPlayer(), "/ird studio find"); - } - } - @Override public void onEnable() { diff --git a/src/main/java/com/volmit/iris/engine/IrisComplex.java b/src/main/java/com/volmit/iris/engine/IrisComplex.java index 6888284d3..914e048a2 100644 --- a/src/main/java/com/volmit/iris/engine/IrisComplex.java +++ b/src/main/java/com/volmit/iris/engine/IrisComplex.java @@ -47,6 +47,7 @@ import org.bukkit.Material; import org.bukkit.block.Biome; import org.bukkit.block.data.BlockData; +import java.lang.reflect.Field; import java.util.List; import java.util.UUID; @@ -502,4 +503,20 @@ public class IrisComplex implements DataProvider { biome.setInferredType(b.getInferredType()); return implode(biome, x, z, max - 1); } + + public void close() { + // I know this looks awful, but it helps gc not deal with the spaghetti reference soup going on here + for (Field i : getClass().getDeclaredFields()) + { + if(i.getType().equals(ProceduralStream.class)) + { + i.setAccessible(true); + try { + i.set(this, null); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + } + } } diff --git a/src/main/java/com/volmit/iris/engine/IrisEngine.java b/src/main/java/com/volmit/iris/engine/IrisEngine.java index 2e24fa4aa..cff08766a 100644 --- a/src/main/java/com/volmit/iris/engine/IrisEngine.java +++ b/src/main/java/com/volmit/iris/engine/IrisEngine.java @@ -303,6 +303,7 @@ public class IrisEngine extends BlockPopulator implements Engine { getCaveModifier().close(); getPostModifier().close(); getMantle().close(); + getComplex().close(); Iris.debug("Engine Fully Shutdown!"); } diff --git a/src/main/java/com/volmit/iris/util/stream/arithmetic/AddingStream.java b/src/main/java/com/volmit/iris/util/stream/arithmetic/AddingStream.java index f9db98818..a6c0ef29b 100644 --- a/src/main/java/com/volmit/iris/util/stream/arithmetic/AddingStream.java +++ b/src/main/java/com/volmit/iris/util/stream/arithmetic/AddingStream.java @@ -58,5 +58,4 @@ public class AddingStream extends BasicStream { public T get(double x, double y, double z) { return fromDouble(add.apply(x, y, z) + getTypedSource().getDouble(x, y, z)); } - }