Improve debug, and other informative messages
This commit is contained in:
@@ -93,52 +93,61 @@ public class PlayerVaults extends JavaPlugin {
|
||||
}
|
||||
|
||||
public static void debug(String s, long start) {
|
||||
long elapsed = System.currentTimeMillis() - start;
|
||||
if (DEBUG || elapsed > 4) {
|
||||
Bukkit.getLogger().log(Level.INFO, "At {0}. Time since start: {1}ms", new Object[]{s, (elapsed)});
|
||||
if (DEBUG) {
|
||||
instance.getLogger().log(Level.INFO, "{0} took {1}ms", new Object[]{s, (System.currentTimeMillis() - start)});
|
||||
}
|
||||
}
|
||||
|
||||
public static void debug(String s) {
|
||||
if (DEBUG) {
|
||||
Bukkit.getLogger().log(Level.INFO, s);
|
||||
instance.getLogger().log(Level.INFO, s);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
instance = this;
|
||||
long start = System.currentTimeMillis();
|
||||
long time = System.currentTimeMillis();
|
||||
loadConfig();
|
||||
DEBUG = getConf().isDebug();
|
||||
debug("config", System.currentTimeMillis());
|
||||
debug("config", time);
|
||||
time = System.currentTimeMillis();
|
||||
uuidData = new File(this.getDataFolder(), "uuidvaults");
|
||||
vaultData = new File(this.getDataFolder(), "base64vaults");
|
||||
debug("vaultdata", System.currentTimeMillis());
|
||||
debug("vaultdata", time);
|
||||
time = System.currentTimeMillis();
|
||||
getServer().getScheduler().runTask(this, new UUIDConversion()); // Convert to UUIDs first. Class checks if necessary.
|
||||
debug("uuid conversion", System.currentTimeMillis());
|
||||
debug("uuid conversion", time);
|
||||
time = System.currentTimeMillis();
|
||||
new VaultManager();
|
||||
getServer().getScheduler().runTask(this, new Base64Conversion());
|
||||
debug("base64 conversion", System.currentTimeMillis());
|
||||
debug("base64 conversion", time);
|
||||
time = System.currentTimeMillis();
|
||||
loadLang();
|
||||
debug("lang", System.currentTimeMillis());
|
||||
debug("lang", time);
|
||||
time = System.currentTimeMillis();
|
||||
new UUIDVaultManager();
|
||||
debug("uuidvaultmanager", System.currentTimeMillis());
|
||||
debug("uuidvaultmanager", time);
|
||||
time = System.currentTimeMillis();
|
||||
getServer().getPluginManager().registerEvents(new Listeners(this), this);
|
||||
getServer().getPluginManager().registerEvents(new VaultPreloadListener(), this);
|
||||
getServer().getPluginManager().registerEvents(new SignListener(this), this);
|
||||
debug("registering listeners", System.currentTimeMillis());
|
||||
debug("registering listeners", time);
|
||||
time = System.currentTimeMillis();
|
||||
this.backupsEnabled = this.getConf().getStorage().getFlatFile().isBackups();
|
||||
this.maxVaultAmountPermTest = this.getConf().getMaxVaultAmountPermTest();
|
||||
loadSigns();
|
||||
debug("loaded signs", System.currentTimeMillis());
|
||||
debug("check update", System.currentTimeMillis());
|
||||
debug("loaded signs", time);
|
||||
time = System.currentTimeMillis();
|
||||
getCommand("pv").setExecutor(new VaultCommand());
|
||||
getCommand("pvdel").setExecutor(new DeleteCommand());
|
||||
getCommand("pvconvert").setExecutor(new ConvertCommand());
|
||||
getCommand("pvsign").setExecutor(new SignCommand());
|
||||
debug("registered commands", System.currentTimeMillis());
|
||||
debug("registered commands", time);
|
||||
time = System.currentTimeMillis();
|
||||
useVault = setupEconomy();
|
||||
debug("setup economy", System.currentTimeMillis());
|
||||
debug("setup economy", time);
|
||||
|
||||
if (getConf().getPurge().isEnabled()) {
|
||||
getServer().getScheduler().runTaskAsynchronously(this, new Cleanup(getConf().getPurge().getDaysSinceLastEdit()));
|
||||
@@ -223,7 +232,7 @@ public class PlayerVaults extends JavaPlugin {
|
||||
return map;
|
||||
});
|
||||
|
||||
debug("enable done", System.currentTimeMillis());
|
||||
this.getLogger().info("Loaded! Took " + (System.currentTimeMillis() - start) + "ms");
|
||||
}
|
||||
|
||||
private void metricsLine(String name, Callable<Integer> callable) {
|
||||
@@ -525,7 +534,7 @@ public class PlayerVaults extends JavaPlugin {
|
||||
|
||||
public int getDefaultVaultRows() {
|
||||
int def = this.config.getDefaultVaultRows();
|
||||
return (def >= 1 && def <=6) ? def : 6;
|
||||
return (def >= 1 && def <= 6) ? def : 6;
|
||||
}
|
||||
|
||||
public int getDefaultVaultSize() {
|
||||
|
||||
@@ -29,6 +29,7 @@ import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.util.logging.Level;
|
||||
|
||||
/**
|
||||
* Created by Lax on 6/6/2017.
|
||||
@@ -36,6 +37,10 @@ import java.io.ByteArrayOutputStream;
|
||||
public class Base64Serialization {
|
||||
|
||||
public static String toBase64(Inventory inventory, int size) {
|
||||
return toBase64(inventory, size, null);
|
||||
}
|
||||
|
||||
public static String toBase64(Inventory inventory, int size, String target) {
|
||||
try {
|
||||
ByteArrayOutputStream finalOutputStream = new ByteArrayOutputStream();
|
||||
ByteArrayOutputStream temporaryOutputStream = new ByteArrayOutputStream();
|
||||
@@ -62,7 +67,7 @@ public class Base64Serialization {
|
||||
}
|
||||
|
||||
if (failedItems > 0) {
|
||||
PlayerVaults.getInstance().getLogger().severe("Failed to save " + failedItems + " invalid items to vault");
|
||||
PlayerVaults.getInstance().getLogger().severe("Failed to save " + failedItems + " invalid items to vault " + target);
|
||||
}
|
||||
|
||||
// Serialize that array
|
||||
@@ -80,6 +85,10 @@ public class Base64Serialization {
|
||||
}
|
||||
|
||||
public static Inventory fromBase64(String data) {
|
||||
return fromBase64(data, null);
|
||||
}
|
||||
|
||||
public static Inventory fromBase64(String data, String target) {
|
||||
try {
|
||||
ByteArrayInputStream inputStream = new ByteArrayInputStream(Base64Coder.decodeLines(data));
|
||||
BukkitObjectInputStream dataInput = new BukkitObjectInputStream(inputStream);
|
||||
@@ -91,6 +100,7 @@ public class Base64Serialization {
|
||||
dataInput.close();
|
||||
return inventory;
|
||||
} catch (Exception e) {
|
||||
PlayerVaults.getInstance().getLogger().log(Level.SEVERE, "Failed to load vault " + target, e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@ public class VaultManager {
|
||||
public void saveVault(Inventory inventory, String target, int number) {
|
||||
YamlConfiguration yaml = getPlayerVaultFile(target, true);
|
||||
int size = VaultOperations.getMaxVaultSize(target);
|
||||
String serialized = Base64Serialization.toBase64(inventory, size);
|
||||
String serialized = Base64Serialization.toBase64(inventory, size, target);
|
||||
yaml.set(String.format(VAULTKEY, number), serialized);
|
||||
saveFileSync(target, yaml);
|
||||
}
|
||||
@@ -85,20 +85,24 @@ public class VaultManager {
|
||||
size = PlayerVaults.getInstance().getDefaultVaultSize();
|
||||
}
|
||||
|
||||
PlayerVaults.debug("Loading self vault for " + player.getName() + " (" + player.getUniqueId() + ')');
|
||||
|
||||
String title = Lang.VAULT_TITLE.toString().replace("%number", String.valueOf(number)).replace("%p", player.getName());
|
||||
VaultViewInfo info = new VaultViewInfo(player.getUniqueId().toString(), number);
|
||||
if (PlayerVaults.getInstance().getOpenInventories().containsKey(info.toString())) {
|
||||
PlayerVaults.debug("Already open");
|
||||
return PlayerVaults.getInstance().getOpenInventories().get(info.toString());
|
||||
}
|
||||
|
||||
YamlConfiguration playerFile = getPlayerVaultFile(player.getUniqueId().toString(), true);
|
||||
VaultHolder vaultHolder = new VaultHolder(number);
|
||||
if (playerFile.getString(String.format(VAULTKEY, number)) == null) {
|
||||
PlayerVaults.debug("No vault matching number");
|
||||
Inventory inv = Bukkit.createInventory(vaultHolder, size, title);
|
||||
vaultHolder.setInventory(inv);
|
||||
return inv;
|
||||
} else {
|
||||
return getInventory(vaultHolder, playerFile, size, number, title);
|
||||
return getInventory(vaultHolder, player.getUniqueId().toString(), playerFile, size, number, title);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -113,6 +117,8 @@ public class VaultManager {
|
||||
size = PlayerVaults.getInstance().getDefaultVaultSize();
|
||||
}
|
||||
|
||||
PlayerVaults.debug("Loading other vault for " + name);
|
||||
|
||||
String holder = name;
|
||||
|
||||
try {
|
||||
@@ -128,10 +134,11 @@ public class VaultManager {
|
||||
Inventory inv;
|
||||
VaultHolder vaultHolder = new VaultHolder(number);
|
||||
if (PlayerVaults.getInstance().getOpenInventories().containsKey(info.toString())) {
|
||||
PlayerVaults.debug("Already open");
|
||||
inv = PlayerVaults.getInstance().getOpenInventories().get(info.toString());
|
||||
} else {
|
||||
YamlConfiguration playerFile = getPlayerVaultFile(holder, true);
|
||||
Inventory i = getInventory(vaultHolder, playerFile, size, number, title);
|
||||
Inventory i = getInventory(vaultHolder, holder, playerFile, size, number, title);
|
||||
if (i == null) {
|
||||
return null;
|
||||
} else {
|
||||
@@ -150,12 +157,13 @@ public class VaultManager {
|
||||
* @param number the vault number.
|
||||
* @return inventory if exists, otherwise null.
|
||||
*/
|
||||
private Inventory getInventory(InventoryHolder owner, YamlConfiguration playerFile, int size, int number, String title) {
|
||||
private Inventory getInventory(InventoryHolder owner, String ownerName, YamlConfiguration playerFile, int size, int number, String title) {
|
||||
Inventory inventory = Bukkit.createInventory(owner, size, title);
|
||||
|
||||
String data = playerFile.getString(String.format(VAULTKEY, number));
|
||||
Inventory deserialized = Base64Serialization.fromBase64(data);
|
||||
Inventory deserialized = Base64Serialization.fromBase64(data, ownerName);
|
||||
if (deserialized == null) {
|
||||
PlayerVaults.debug("Loaded vault as null");
|
||||
return inventory;
|
||||
}
|
||||
|
||||
@@ -172,6 +180,7 @@ public class VaultManager {
|
||||
inventory.setContents(deserialized.getContents());
|
||||
}
|
||||
|
||||
PlayerVaults.debug("Loaded vault");
|
||||
return inventory;
|
||||
}
|
||||
|
||||
@@ -185,7 +194,7 @@ public class VaultManager {
|
||||
public Inventory getVault(String holder, int number) {
|
||||
YamlConfiguration playerFile = getPlayerVaultFile(holder, true);
|
||||
String serialized = playerFile.getString(String.format(VAULTKEY, number));
|
||||
return Base64Serialization.fromBase64(serialized);
|
||||
return Base64Serialization.fromBase64(serialized, holder);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -359,5 +368,6 @@ public class VaultManager {
|
||||
} catch (IOException e) {
|
||||
PlayerVaults.getInstance().getLogger().log(Level.SEVERE, "Failed to save vault file for: " + holder, e);
|
||||
}
|
||||
PlayerVaults.debug("Saved vault for " + holder);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user