Disabled ChunkReloader and implemented 'Issue #66: Limit Cache Size'

master
Aleksey-Terzi 2016-09-21 16:01:39 +03:00
parent 9234949476
commit 63be95ee87
6 changed files with 21 additions and 15 deletions

View File

@ -4,7 +4,7 @@
<groupId>com.lishid</groupId> <groupId>com.lishid</groupId>
<artifactId>orebfuscator</artifactId> <artifactId>orebfuscator</artifactId>
<version>4.1.9-SNAPSHOT</version> <version>4.1.10-SNAPSHOT</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>Orebfuscator4</name> <name>Orebfuscator4</name>

View File

@ -24,6 +24,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import com.lishid.orebfuscator.cache.CacheCleaner;
import com.lishid.orebfuscator.cache.ObfuscatedDataCache; import com.lishid.orebfuscator.cache.ObfuscatedDataCache;
import com.lishid.orebfuscator.commands.OrebfuscatorCommandExecutor; import com.lishid.orebfuscator.commands.OrebfuscatorCommandExecutor;
import com.lishid.orebfuscator.hithack.BlockHitManager; import com.lishid.orebfuscator.hithack.BlockHitManager;
@ -51,7 +52,7 @@ public class Orebfuscator extends JavaPlugin {
return this.isProtocolLibFound; return this.isProtocolLibFound;
} }
//\\@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
@Override @Override
public void onEnable() { public void onEnable() {
// Get plugin manager // Get plugin manager
@ -79,7 +80,7 @@ public class Orebfuscator extends JavaPlugin {
(new ProtocolLibHook()).register(this); (new ProtocolLibHook()).register(this);
// Run CacheCleaner // Run CacheCleaner
//\\getServer().getScheduler().scheduleAsyncRepeatingTask(this, new CacheCleaner(), 0, OrebfuscatorConfig.CacheCleanRate); getServer().getScheduler().scheduleAsyncRepeatingTask(this, new CacheCleaner(), 0, OrebfuscatorConfig.CacheCleanRate);
} }
private static INmsManager createNmsManager() { private static INmsManager createNmsManager() {

View File

@ -108,11 +108,10 @@ public class OrebfuscatorConfig {
// ChunkReloader // ChunkReloader
public static int ChunkReloaderRate = 500; public static int ChunkReloaderRate = 500;
public static boolean UseChunkReloader = true; public static boolean UseChunkReloader = false;
// CacheCleaner // CacheCleaner
//\\public static long CacheCleanRate = 60 * 60 * 20;//once per hour public static long CacheCleanRate = 60 * 60 * 20;//once per hour
public static long CacheCleanRate = 60 * 20;
public static File getCacheFolder() { public static File getCacheFolder() {
// Try to make the folder // Try to make the folder
@ -458,7 +457,7 @@ public class OrebfuscatorConfig {
NoObfuscationForMetadata = getBoolean("Booleans.NoObfuscationForMetadata", NoObfuscationForMetadata); NoObfuscationForMetadata = getBoolean("Booleans.NoObfuscationForMetadata", NoObfuscationForMetadata);
NoObfuscationForMetadataTagName = getString("Strings.NoObfuscationForMetadataTagName", NoObfuscationForMetadataTagName); NoObfuscationForMetadataTagName = getString("Strings.NoObfuscationForMetadataTagName", NoObfuscationForMetadataTagName);
DeleteCacheFilesAfterDays = getInt("Integers.DeleteCacheFilesAfterDays", DeleteCacheFilesAfterDays); DeleteCacheFilesAfterDays = getInt("Integers.DeleteCacheFilesAfterDays", DeleteCacheFilesAfterDays);
UseChunkReloader = getBoolean("Booleans.UseChunkReloader", UseChunkReloader); //UseChunkReloader = getBoolean("Booleans.UseChunkReloader", UseChunkReloader);
generateTransparentBlocks(); generateTransparentBlocks();

View File

@ -12,13 +12,13 @@ public class CacheCleaner implements Runnable {
public void run() { public void run() {
if(!OrebfuscatorConfig.Enabled || OrebfuscatorConfig.DeleteCacheFilesAfterDays <= 0) return; if(!OrebfuscatorConfig.Enabled || OrebfuscatorConfig.DeleteCacheFilesAfterDays <= 0) return;
Orebfuscator.log("Started checking old cache files to delete..."); int count = 0;
for(World world : Bukkit.getWorlds()) { for(World world : Bukkit.getWorlds()) {
File cacheFolder = new File(OrebfuscatorConfig.getCacheFolder(), world.getName()); File cacheFolder = new File(OrebfuscatorConfig.getCacheFolder(), world.getName());
ObfuscatedDataCache.deleteFiles(cacheFolder, OrebfuscatorConfig.DeleteCacheFilesAfterDays); count += ObfuscatedDataCache.deleteFiles(cacheFolder, OrebfuscatorConfig.DeleteCacheFilesAfterDays);
} }
Orebfuscator.log("Compleetd checking old cache files to delete..."); Orebfuscator.log("Cache cleaner completed, deleted files: " + count);
} }
} }

View File

@ -80,11 +80,13 @@ public class ObfuscatedDataCache {
return getInternalCache().getOutputStream(folder, x, z); return getInternalCache().getOutputStream(folder, x, z);
} }
public static void deleteFiles(File folder, int deleteAfterDays) { public static int deleteFiles(File folder, int deleteAfterDays) {
int count = 0;
try { try {
File regionFolder = new File(folder, "data/region"); File regionFolder = new File(folder, "data/region");
if(!regionFolder.exists()) return; if(!regionFolder.exists()) return count;
long deleteAfterDaysMs = (long)deleteAfterDays * 24L * 60L * 60L * 1000L; long deleteAfterDaysMs = (long)deleteAfterDays * 24L * 60L * 60L * 1000L;
@ -93,11 +95,13 @@ public class ObfuscatedDataCache {
if (diff > deleteAfterDaysMs) { if (diff > deleteAfterDaysMs) {
file.delete(); file.delete();
Orebfuscator.log("File " + file.getName() + " is deleted."); count++;
} }
} }
} catch(Exception ex) { } catch(Exception ex) {
ex.printStackTrace(); ex.printStackTrace();
} }
return count;
} }
} }

View File

@ -193,7 +193,8 @@ public class ChunkReloader extends Thread implements Runnable {
public static void addLoadedChunk(World world, int chunkX, int chunkZ) { public static void addLoadedChunk(World world, int chunkX, int chunkZ) {
if (!OrebfuscatorConfig.Enabled // Plugin enabled if (!OrebfuscatorConfig.Enabled // Plugin enabled
|| OrebfuscatorConfig.isWorldDisabled(world.getName())) // World not enabled || OrebfuscatorConfig.isWorldDisabled(world.getName()) // World not enabled
|| !OrebfuscatorConfig.UseChunkReloader)
{ {
return; return;
} }
@ -213,7 +214,8 @@ public class ChunkReloader extends Thread implements Runnable {
public static void addUnloadedChunk(World world, int chunkX, int chunkZ) { public static void addUnloadedChunk(World world, int chunkX, int chunkZ) {
if (!OrebfuscatorConfig.Enabled // Plugin enabled if (!OrebfuscatorConfig.Enabled // Plugin enabled
|| OrebfuscatorConfig.isWorldDisabled(world.getName())) // World not enabled || OrebfuscatorConfig.isWorldDisabled(world.getName()) // World not enabled
|| !OrebfuscatorConfig.UseChunkReloader)
{ {
return; return;
} }