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; package ninja.bytecode.iris.controller;
import java.io.File;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.GameMode; import org.bukkit.GameMode;
import org.bukkit.Location; 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.GList;
import ninja.bytecode.shuriken.collections.GSet; import ninja.bytecode.shuriken.collections.GSet;
import ninja.bytecode.shuriken.execution.J; import ninja.bytecode.shuriken.execution.J;
import ninja.bytecode.shuriken.io.IO;
public class DebugController implements IrisController public class DebugController implements IrisController
{ {
@ -84,24 +81,6 @@ public class DebugController implements IrisController
@Override @Override
public void onStop() 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.GList;
import ninja.bytecode.shuriken.collections.GMap; import ninja.bytecode.shuriken.collections.GMap;
import ninja.bytecode.shuriken.execution.J; 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.format.F;
import ninja.bytecode.shuriken.io.IO; import ninja.bytecode.shuriken.io.IO;
import ninja.bytecode.shuriken.json.JSONException; import ninja.bytecode.shuriken.json.JSONException;
@ -283,6 +281,21 @@ public class PackController implements IrisController
public void dispose() 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(); compiledDimensions.clear();
dimensions.clear(); dimensions.clear();
biomes.clear(); biomes.clear();

View File

@ -1,8 +1,10 @@
package ninja.bytecode.iris.controller; package ninja.bytecode.iris.controller;
import java.io.File; import java.io.File;
import java.io.IOException;
import java.util.UUID; import java.util.UUID;
import org.apache.commons.io.FileUtils;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.WorldCreator; import org.bukkit.WorldCreator;
@ -12,6 +14,7 @@ import ninja.bytecode.iris.generator.IrisGenerator;
import ninja.bytecode.iris.pack.CompiledDimension; import ninja.bytecode.iris.pack.CompiledDimension;
import ninja.bytecode.iris.util.IrisController; import ninja.bytecode.iris.util.IrisController;
import ninja.bytecode.shuriken.execution.J; import ninja.bytecode.shuriken.execution.J;
import ninja.bytecode.shuriken.io.IO;
public class WorldController implements IrisController public class WorldController implements IrisController
{ {
@ -52,7 +55,27 @@ public class WorldController implements IrisController
if(temp) if(temp)
{ {
File folder = ww.getWorldFolder();
J.attempt(() -> new File(ww.getWorldFolder(), ".garbage").createNewFile()); 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; return ww;

View File

@ -468,4 +468,9 @@ public class GenObject
recalculateMountShift(); 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); 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; 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; return environment;
} }
public void dispose()
{
biomes.clear();
}
} }