commit
3ea16068f2
|
@ -4,7 +4,7 @@
|
|||
|
||||
<groupId>com.lishid</groupId>
|
||||
<artifactId>orebfuscator</artifactId>
|
||||
<version>4.1.8-SNAPSHOT</version>
|
||||
<version>4.1.10-SNAPSHOT</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>Orebfuscator4</name>
|
||||
|
|
|
@ -24,6 +24,7 @@ import org.bukkit.command.CommandSender;
|
|||
import org.bukkit.plugin.PluginManager;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import com.lishid.orebfuscator.cache.CacheCleaner;
|
||||
import com.lishid.orebfuscator.cache.ObfuscatedDataCache;
|
||||
import com.lishid.orebfuscator.commands.OrebfuscatorCommandExecutor;
|
||||
import com.lishid.orebfuscator.hithack.BlockHitManager;
|
||||
|
@ -51,7 +52,8 @@ public class Orebfuscator extends JavaPlugin {
|
|||
return this.isProtocolLibFound;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
@Override
|
||||
public void onEnable() {
|
||||
// Get plugin manager
|
||||
PluginManager pm = getServer().getPluginManager();
|
||||
|
@ -76,6 +78,9 @@ public class Orebfuscator extends JavaPlugin {
|
|||
pm.registerEvents(new OrebfuscatorChunkListener(), this);
|
||||
|
||||
(new ProtocolLibHook()).register(this);
|
||||
|
||||
// Run CacheCleaner
|
||||
getServer().getScheduler().scheduleAsyncRepeatingTask(this, new CacheCleaner(), 0, OrebfuscatorConfig.CacheCleanRate);
|
||||
}
|
||||
|
||||
private static INmsManager createNmsManager() {
|
||||
|
|
|
@ -68,6 +68,7 @@ public class OrebfuscatorConfig {
|
|||
public static int MaxLoadedCacheFiles = 64;
|
||||
public static String CacheLocation = "orebfuscator_cache";
|
||||
public static File CacheFolder = new File(Bukkit.getServer().getWorldContainer(), CacheLocation);
|
||||
public static int DeleteCacheFilesAfterDays = 0;
|
||||
|
||||
// ProximityHider
|
||||
public static int ProximityHiderRate = 500;
|
||||
|
@ -107,6 +108,10 @@ public class OrebfuscatorConfig {
|
|||
|
||||
// ChunkReloader
|
||||
public static int ChunkReloaderRate = 500;
|
||||
public static boolean UseChunkReloader = false;
|
||||
|
||||
// CacheCleaner
|
||||
public static long CacheCleanRate = 60 * 60 * 20;//once per hour
|
||||
|
||||
public static File getCacheFolder() {
|
||||
// Try to make the folder
|
||||
|
@ -451,6 +456,8 @@ public class OrebfuscatorConfig {
|
|||
Enabled = getBoolean("Booleans.Enabled", Enabled);
|
||||
NoObfuscationForMetadata = getBoolean("Booleans.NoObfuscationForMetadata", NoObfuscationForMetadata);
|
||||
NoObfuscationForMetadataTagName = getString("Strings.NoObfuscationForMetadataTagName", NoObfuscationForMetadataTagName);
|
||||
DeleteCacheFilesAfterDays = getInt("Integers.DeleteCacheFilesAfterDays", DeleteCacheFilesAfterDays);
|
||||
//UseChunkReloader = getBoolean("Booleans.UseChunkReloader", UseChunkReloader);
|
||||
|
||||
generateTransparentBlocks();
|
||||
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
package com.lishid.orebfuscator.cache;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.World;
|
||||
|
||||
import com.lishid.orebfuscator.Orebfuscator;
|
||||
import com.lishid.orebfuscator.OrebfuscatorConfig;
|
||||
|
||||
public class CacheCleaner implements Runnable {
|
||||
public void run() {
|
||||
if(!OrebfuscatorConfig.Enabled || OrebfuscatorConfig.DeleteCacheFilesAfterDays <= 0) return;
|
||||
|
||||
int count = 0;
|
||||
|
||||
for(World world : Bukkit.getWorlds()) {
|
||||
File cacheFolder = new File(OrebfuscatorConfig.getCacheFolder(), world.getName());
|
||||
count += ObfuscatedDataCache.deleteFiles(cacheFolder, OrebfuscatorConfig.DeleteCacheFilesAfterDays);
|
||||
}
|
||||
|
||||
Orebfuscator.log("Cache cleaner completed, deleted files: " + count);
|
||||
}
|
||||
}
|
|
@ -20,6 +20,7 @@ import java.io.DataInputStream;
|
|||
import java.io.DataOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.Date;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.lishid.orebfuscator.Orebfuscator;
|
||||
|
@ -78,4 +79,29 @@ public class ObfuscatedDataCache {
|
|||
public static DataOutputStream getOutputStream(File folder, int x, int z) {
|
||||
return getInternalCache().getOutputStream(folder, x, z);
|
||||
}
|
||||
|
||||
public static int deleteFiles(File folder, int deleteAfterDays) {
|
||||
int count = 0;
|
||||
|
||||
try {
|
||||
File regionFolder = new File(folder, "data/region");
|
||||
|
||||
if(!regionFolder.exists()) return count;
|
||||
|
||||
long deleteAfterDaysMs = (long)deleteAfterDays * 24L * 60L * 60L * 1000L;
|
||||
|
||||
for(File file : regionFolder.listFiles()) {
|
||||
long diff = new Date().getTime() - file.lastModified();
|
||||
|
||||
if (diff > deleteAfterDaysMs) {
|
||||
file.delete();
|
||||
count++;
|
||||
}
|
||||
}
|
||||
} catch(Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
}
|
|
@ -61,6 +61,10 @@ public class ChunkReloader extends Thread implements Runnable {
|
|||
Thread.sleep(timeWait);
|
||||
}
|
||||
|
||||
if (!OrebfuscatorConfig.UseChunkReloader) {
|
||||
return;
|
||||
}
|
||||
|
||||
synchronized (loadedChunks) {
|
||||
localWorldsToCheck.addAll(loadedChunks.keySet());
|
||||
}
|
||||
|
@ -189,7 +193,8 @@ public class ChunkReloader extends Thread implements Runnable {
|
|||
|
||||
public static void addLoadedChunk(World world, int chunkX, int chunkZ) {
|
||||
if (!OrebfuscatorConfig.Enabled // Plugin enabled
|
||||
|| OrebfuscatorConfig.isWorldDisabled(world.getName())) // World not enabled
|
||||
|| OrebfuscatorConfig.isWorldDisabled(world.getName()) // World not enabled
|
||||
|| !OrebfuscatorConfig.UseChunkReloader)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -209,7 +214,8 @@ public class ChunkReloader extends Thread implements Runnable {
|
|||
|
||||
public static void addUnloadedChunk(World world, int chunkX, int chunkZ) {
|
||||
if (!OrebfuscatorConfig.Enabled // Plugin enabled
|
||||
|| OrebfuscatorConfig.isWorldDisabled(world.getName())) // World not enabled
|
||||
|| OrebfuscatorConfig.isWorldDisabled(world.getName()) // World not enabled
|
||||
|| !OrebfuscatorConfig.UseChunkReloader)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue