Some Fix on FileCache

This commit is contained in:
Xephi 2015-04-21 17:41:46 +02:00
parent 44bbd30fd2
commit 5548004fd0
2 changed files with 319 additions and 306 deletions

View File

@ -21,6 +21,7 @@ import com.comphenix.attribute.Attributes.AttributeType;
import com.comphenix.attribute.Attributes.Operation;
import fr.xephi.authme.AuthMe;
import fr.xephi.authme.ConsoleLogger;
import fr.xephi.authme.api.API;
public class FileCache {
@ -101,19 +102,19 @@ public class FileCache {
for (Enchantment ench : item.getEnchantments().keySet()) {
writer.write("enchant=" + ench.getName() + ":" + item.getEnchantments().get(ench) + API.newline);
}
try {
Attributes attributes = new Attributes(item);
if (attributes != null)
while (attributes.values().iterator().hasNext()) {
Attribute a = attributes.values().iterator().next();
if (a != null) {
try {
if (a.getName() != null && a.getAttributeType() != null
&& a.getOperation() != null && a.getUUID() != null)
writer.write("attribute=" + a.getName() + ";" + a.getAttributeType().getMinecraftId() + ";" + a.getAmount() + ";" + a.getOperation().getId() + ";" + a.getUUID().toString());
}
}
} catch (Exception e) {
} catch (Error e) {}
}
}
} else {
writer.write("AIR");
}
@ -155,25 +156,25 @@ public class FileCache {
for (Enchantment ench : item.getEnchantments().keySet()) {
writer.write("enchant=" + ench.getName() + ":" + item.getEnchantments().get(ench) + API.newline);
}
try {
Attributes attributes = new Attributes(item);
if (attributes != null)
while (attributes.values().iterator().hasNext()) {
Attribute a = attributes.values().iterator().next();
if (a != null) {
try {
if (a.getName() != null && a.getAttributeType() != null
&& a.getOperation() != null && a.getUUID() != null)
writer.write("attribute=" + a.getName() + ";" + a.getAttributeType().getMinecraftId() + ";" + a.getAmount() + ";" + a.getOperation().getId() + ";" + a.getUUID().toString());
}
}
} catch (Exception e) {}
}
}
} else {
writer.write("AIR" + API.newline);
}
writer.close();
}
} catch (final Exception e) {
e.printStackTrace();
ConsoleLogger.showError("Some error on creating file cache...");
}
}
@ -186,6 +187,7 @@ public class FileCache {
} catch (Error e) {
path = player.getName();
}
try {
File file = new File(plugin.getDataFolder() + File.separator + "cache" + File.separator + path + File.separator + ".playerdatas.cache");
String playername = player.getName().toLowerCase();
if (!file.exists()) {
@ -297,7 +299,7 @@ public class FileCache {
}
}
} catch (final Exception e) {
e.printStackTrace();
ConsoleLogger.showError("Error on creating a file cache for " + player.getName() + ", maybe wipe inventory...");
} finally {
if (reader != null) {
reader.close();
@ -484,14 +486,17 @@ public class FileCache {
}
} catch (final Exception e) {
e.printStackTrace();
ConsoleLogger.showError("Error while reading file for " + player.getName() + ", some wipe inventory incoming...");
} finally {
if (reader != null)
reader.close();
}
return new DataFileCache(inv, armours, group, op, flying);
}
} catch (Exception e) {
ConsoleLogger.showError("Error while reading file for " + player.getName() + ", some wipe inventory incoming...");
return null;
}
}
public void removeCache(Player player) {
@ -503,11 +508,11 @@ public class FileCache {
} catch (Error e) {
path = player.getName();
}
try {
File file = new File(plugin.getDataFolder() + File.separator + "cache" + File.separator + path);
if (!file.exists()) {
file = new File("cache/" + player.getName().toLowerCase() + ".cache");
}
if (file.exists()) {
if (file.isDirectory()) {
for (File f : file.listFiles()) {
@ -521,6 +526,9 @@ public class FileCache {
file.delete();
} else file.delete();
}
} catch (Exception e) {
ConsoleLogger.showError("File cannot be removed correctly :/");
}
}
public boolean doesCacheExist(Player player) {

View File

@ -651,8 +651,13 @@ public class AuthMePlayerListener implements Listener {
}
placePlayerSafely(player, spawnLoc);
LimboCache.getInstance().updateLimboPlayer(player);
try {
DataFileCache dataFile = new DataFileCache(LimboCache.getInstance().getLimboPlayer(name).getInventory(), LimboCache.getInstance().getLimboPlayer(name).getArmour());
playerBackup.createCache(player, dataFile, LimboCache.getInstance().getLimboPlayer(name).getGroup(), LimboCache.getInstance().getLimboPlayer(name).getOperator(), LimboCache.getInstance().getLimboPlayer(name).isFlying());
} catch (Exception e)
{
ConsoleLogger.showError("Error on creating an inventory cache for " + name + ", maybe inventory wipe in preparation...");
}
} else {
if (Settings.isForceSurvivalModeEnabled && !Settings.forceOnlyAfterLogin) {
causeByAuthMe.put(name, true);