Begin rework of Cache

This commit is contained in:
Xephi 2014-08-20 06:05:35 +02:00
parent 4193806c82
commit e9032d1739
9 changed files with 44 additions and 28 deletions

View File

@ -562,8 +562,8 @@ public class AuthMe extends JavaPlugin {
this.plugin.getServer().getScheduler()
.cancelTask(limbo.getTimeoutTaskId());
LimboCache.getInstance().deleteLimboPlayer(name);
if (this.playerBackup.doesCacheExist(name)) {
this.playerBackup.removeCache(name);
if (this.playerBackup.doesCacheExist(player)) {
this.playerBackup.removeCache(player);
}
}
PlayerCache.getInstance().removePlayer(name);

View File

@ -2,13 +2,13 @@ package fr.xephi.authme.cache.backup;
import java.io.File;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
@ -26,8 +26,9 @@ public class FileCache {
}
}
public void createCache(String playername, DataFileCache playerData,
public void createCache(Player player, DataFileCache playerData,
String group, boolean operator, boolean flying) {
String playername = player.getName();
final File file = new File("cache/" + playername + ".cache");
if (file.exists()) {
@ -132,8 +133,13 @@ public class FileCache {
}
}
public DataFileCache readCache(String playername) {
final File file = new File("cache/" + playername + ".cache");
public DataFileCache readCache(Player player) {
String playername = player.getName();
File file = new File("cache/" + playername + ".cache");
if (!file.exists()) {
playername = player.getName().toLowerCase();
file = new File("cache/" + playername + ".cache");
}
ItemStack[] stacki = new ItemStack[36];
ItemStack[] stacka = new ItemStack[4];
@ -252,16 +258,26 @@ public class FileCache {
return new DataFileCache(stacki, stacka, group, op, flying);
}
public void removeCache(String playername) {
final File file = new File("cache/" + playername + ".cache");
public void removeCache(Player player) {
String playername = player.getName();
File file = new File("cache/" + playername + ".cache");
if (!file.exists()) {
playername = player.getName().toLowerCase();
file = new File("cache/" + playername + ".cache");
}
if (file.exists()) {
file.delete();
}
}
public boolean doesCacheExist(String playername) {
final File file = new File("cache/" + playername + ".cache");
public boolean doesCacheExist(Player player) {
String playername = player.getName();
File file = new File("cache/" + playername + ".cache");
if (!file.exists()) {
playername = player.getName().toLowerCase();
file = new File("cache/" + playername + ".cache");
}
if (file.exists()) {
return true;

View File

@ -37,7 +37,7 @@ public class LimboCache {
String playerGroup = "";
boolean flying;
if (playerData.doesCacheExist(name)) {
if (playerData.doesCacheExist(player)) {
StoreInventoryEvent event = new StoreInventoryEvent(player,
playerData);
Bukkit.getServer().getPluginManager().callEvent(event);
@ -49,9 +49,9 @@ public class LimboCache {
inv = null;
arm = null;
}
playerGroup = playerData.readCache(name).getGroup();
operator = playerData.readCache(name).getOperator();
flying = playerData.readCache(name).isFlying();
playerGroup = playerData.readCache(player).getGroup();
operator = playerData.readCache(player).getOperator();
flying = playerData.readCache(player).isFlying();
} else {
StoreInventoryEvent event = new StoreInventoryEvent(player);
Bukkit.getServer().getPluginManager().callEvent(event);

View File

@ -92,7 +92,7 @@ public class LogoutCommand implements CommandExecutor {
DataFileCache playerData = new DataFileCache(LimboCache
.getInstance().getLimboPlayer(name).getInventory(),
LimboCache.getInstance().getLimboPlayer(name).getArmour());
playerBackup.createCache(name, playerData, LimboCache.getInstance()
playerBackup.createCache(player, playerData, LimboCache.getInstance()
.getLimboPlayer(name).getGroup(), LimboCache.getInstance()
.getLimboPlayer(name).getOperator(), LimboCache
.getInstance().getLimboPlayer(name).isFlying());

View File

@ -128,8 +128,8 @@ public class UnregisterCommand implements CommandExecutor {
player.getName().toLowerCase());
// check if Player cache File Exist and delete it, preventing
// duplication of items
if (playerCache.doesCacheExist(name)) {
playerCache.removeCache(name);
if (playerCache.doesCacheExist(player)) {
playerCache.removeCache(player);
}
if (Settings.applyBlindEffect) player
.addPotionEffect(new PotionEffect(

View File

@ -23,9 +23,9 @@ public class StoreInventoryEvent extends CustomEvent {
public StoreInventoryEvent(Player player, FileCache fileCache) {
this.player = player;
this.inventory = fileCache.readCache(player.getName().toLowerCase())
this.inventory = fileCache.readCache(player)
.getInventory();
this.armor = fileCache.readCache(player.getName().toLowerCase())
this.armor = fileCache.readCache(player)
.getArmour();
}

View File

@ -666,7 +666,7 @@ public class AuthMePlayerListener implements Listener {
DataFileCache dataFile = new DataFileCache(LimboCache.getInstance()
.getLimboPlayer(name).getInventory(), LimboCache
.getInstance().getLimboPlayer(name).getArmour());
playerBackup.createCache(name, dataFile, LimboCache.getInstance()
playerBackup.createCache(player, dataFile, LimboCache.getInstance()
.getLimboPlayer(name).getGroup(), LimboCache.getInstance()
.getLimboPlayer(name).getOperator(), LimboCache
.getInstance().getLimboPlayer(name).isFlying());
@ -848,8 +848,8 @@ public class AuthMePlayerListener implements Listener {
this.plugin.getServer().getScheduler()
.cancelTask(limbo.getMessageTaskId());
LimboCache.getInstance().deleteLimboPlayer(name);
if (playerBackup.doesCacheExist(name)) {
playerBackup.removeCache(name);
if (playerBackup.doesCacheExist(player)) {
playerBackup.removeCache(player);
}
}
PlayerCache.getInstance().removePlayer(name);
@ -950,8 +950,8 @@ public class AuthMePlayerListener implements Listener {
this.plugin.getServer().getScheduler()
.cancelTask(limbo.getMessageTaskId());
LimboCache.getInstance().deleteLimboPlayer(name);
if (this.playerBackup.doesCacheExist(name)) {
this.playerBackup.removeCache(name);
if (this.playerBackup.doesCacheExist(player)) {
this.playerBackup.removeCache(player);
}
}
PlayerCache.getInstance().removePlayer(name);

View File

@ -179,8 +179,8 @@ public class ProcessSyncronousPlayerLogin implements Runnable {
// Cleanup no longer used temporary data
LimboCache.getInstance().deleteLimboPlayer(name);
if (playerCache.doesCacheExist(name)) {
playerCache.removeCache(name);
if (playerCache.doesCacheExist(player)) {
playerCache.removeCache(player);
}
}

View File

@ -41,8 +41,8 @@ public class TimeoutTask implements Runnable {
.cancelTask(inv.getMessageTaskId());
player.getServer().getScheduler()
.cancelTask(inv.getTimeoutTaskId());
if (playerCache.doesCacheExist(name)) {
playerCache.removeCache(name);
if (playerCache.doesCacheExist(player)) {
playerCache.removeCache(player);
}
}
GameMode gm = AuthMePlayerListener.gameMode.get(name);