Smashed the Stupid out of Memory

This commit is contained in:
Daniel Mills 2020-01-19 02:58:29 -05:00
parent 445ce46357
commit f5ab7f3102
7 changed files with 74 additions and 25 deletions

View File

@ -1,7 +1,5 @@
package ninja.bytecode.iris.controller;
import java.io.File;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Location;
@ -14,7 +12,6 @@ import ninja.bytecode.iris.util.IrisController;
import ninja.bytecode.shuriken.collections.GList;
import ninja.bytecode.shuriken.collections.GSet;
import ninja.bytecode.shuriken.execution.J;
import ninja.bytecode.shuriken.io.IO;
public class DebugController implements IrisController
{
@ -84,24 +81,6 @@ public class DebugController implements IrisController
@Override
public void onStop()
{
deleteOnExit(new File("iris-worlds"));
}
public static void deleteOnExit(File f)
{
if(f == null || !f.exists())
{
return;
}
if(f.isDirectory())
{
for(File i : f.listFiles())
{
deleteOnExit(i);
}
}
f.deleteOnExit();
}
}

View File

@ -18,8 +18,6 @@ import ninja.bytecode.shuriken.bench.PrecisionStopwatch;
import ninja.bytecode.shuriken.collections.GList;
import ninja.bytecode.shuriken.collections.GMap;
import ninja.bytecode.shuriken.execution.J;
import ninja.bytecode.shuriken.execution.TaskExecutor;
import ninja.bytecode.shuriken.execution.TaskExecutor.TaskGroup;
import ninja.bytecode.shuriken.format.F;
import ninja.bytecode.shuriken.io.IO;
import ninja.bytecode.shuriken.json.JSONException;
@ -283,6 +281,21 @@ public class PackController implements IrisController
public void dispose()
{
for(GenObjectGroup i : genObjectGroups.values())
{
i.dispose();
}
for(IrisDimension i : dimensions.values())
{
i.dispose();
}
for(CompiledDimension i : compiledDimensions.values())
{
i.dispose();
}
compiledDimensions.clear();
dimensions.clear();
biomes.clear();

View File

@ -1,8 +1,10 @@
package ninja.bytecode.iris.controller;
import java.io.File;
import java.io.IOException;
import java.util.UUID;
import org.apache.commons.io.FileUtils;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.WorldCreator;
@ -12,15 +14,16 @@ import ninja.bytecode.iris.generator.IrisGenerator;
import ninja.bytecode.iris.pack.CompiledDimension;
import ninja.bytecode.iris.util.IrisController;
import ninja.bytecode.shuriken.execution.J;
import ninja.bytecode.shuriken.io.IO;
public class WorldController implements IrisController
{
@Override
public void onStart()
{
}
public boolean isChunkGenerated(World w, int x, int z)
{
return w.loadChunk(x, z, false);
@ -52,7 +55,27 @@ public class WorldController implements IrisController
if(temp)
{
File folder = ww.getWorldFolder();
J.attempt(() -> new File(ww.getWorldFolder(), ".garbage").createNewFile());
Runtime.getRuntime().addShutdownHook(new Thread()
{
@Override
public void run()
{
IO.delete(folder);
try
{
FileUtils.forceDelete(folder);
System.out.println("Deleted Debug World: " + folder.getName());
}
catch(IOException e)
{
System.out.println("FAILED TO Delete Debug World: " + folder.getName());
}
}
});
}
return ww;

View File

@ -468,4 +468,9 @@ public class GenObject
recalculateMountShift();
}
}
public void dispose()
{
s.clear();
}
}

View File

@ -220,4 +220,15 @@ public class GenObjectGroup
L.i(ChatColor.LIGHT_PURPLE + "Processed " + ChatColor.WHITE + F.f(schematics.size()) + ChatColor.LIGHT_PURPLE + " Schematics in " + ChatColor.WHITE + name);
}
public void dispose()
{
for(GenObject i : schematics)
{
i.dispose();
}
schematics.clear();
flags.clear();
}
}

View File

@ -169,4 +169,17 @@ public class CompiledDimension
return b;
}
public void dispose()
{
biomes.clear();
biomeCache.clear();
for(GenObjectGroup i : objects.values())
{
i.dispose();
}
objects.clear();
}
}

View File

@ -104,4 +104,9 @@ public class IrisDimension
{
return environment;
}
public void dispose()
{
biomes.clear();
}
}