Improve debug, and other informative messages

This commit is contained in:
CmdrKittens
2020-04-09 01:54:32 -04:00
parent 6d95eadf78
commit 2e4fef70d9
3 changed files with 58 additions and 29 deletions
@@ -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) {
@@ -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);
}
}