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) {
|
public static void debug(String s, long start) {
|
||||||
long elapsed = System.currentTimeMillis() - start;
|
if (DEBUG) {
|
||||||
if (DEBUG || elapsed > 4) {
|
instance.getLogger().log(Level.INFO, "{0} took {1}ms", new Object[]{s, (System.currentTimeMillis() - start)});
|
||||||
Bukkit.getLogger().log(Level.INFO, "At {0}. Time since start: {1}ms", new Object[]{s, (elapsed)});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void debug(String s) {
|
public static void debug(String s) {
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
Bukkit.getLogger().log(Level.INFO, s);
|
instance.getLogger().log(Level.INFO, s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
instance = this;
|
instance = this;
|
||||||
|
long start = System.currentTimeMillis();
|
||||||
|
long time = System.currentTimeMillis();
|
||||||
loadConfig();
|
loadConfig();
|
||||||
DEBUG = getConf().isDebug();
|
DEBUG = getConf().isDebug();
|
||||||
debug("config", System.currentTimeMillis());
|
debug("config", time);
|
||||||
|
time = System.currentTimeMillis();
|
||||||
uuidData = new File(this.getDataFolder(), "uuidvaults");
|
uuidData = new File(this.getDataFolder(), "uuidvaults");
|
||||||
vaultData = new File(this.getDataFolder(), "base64vaults");
|
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.
|
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();
|
new VaultManager();
|
||||||
getServer().getScheduler().runTask(this, new Base64Conversion());
|
getServer().getScheduler().runTask(this, new Base64Conversion());
|
||||||
debug("base64 conversion", System.currentTimeMillis());
|
debug("base64 conversion", time);
|
||||||
|
time = System.currentTimeMillis();
|
||||||
loadLang();
|
loadLang();
|
||||||
debug("lang", System.currentTimeMillis());
|
debug("lang", time);
|
||||||
|
time = System.currentTimeMillis();
|
||||||
new UUIDVaultManager();
|
new UUIDVaultManager();
|
||||||
debug("uuidvaultmanager", System.currentTimeMillis());
|
debug("uuidvaultmanager", time);
|
||||||
|
time = System.currentTimeMillis();
|
||||||
getServer().getPluginManager().registerEvents(new Listeners(this), this);
|
getServer().getPluginManager().registerEvents(new Listeners(this), this);
|
||||||
getServer().getPluginManager().registerEvents(new VaultPreloadListener(), this);
|
getServer().getPluginManager().registerEvents(new VaultPreloadListener(), this);
|
||||||
getServer().getPluginManager().registerEvents(new SignListener(this), 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.backupsEnabled = this.getConf().getStorage().getFlatFile().isBackups();
|
||||||
this.maxVaultAmountPermTest = this.getConf().getMaxVaultAmountPermTest();
|
this.maxVaultAmountPermTest = this.getConf().getMaxVaultAmountPermTest();
|
||||||
loadSigns();
|
loadSigns();
|
||||||
debug("loaded signs", System.currentTimeMillis());
|
debug("loaded signs", time);
|
||||||
debug("check update", System.currentTimeMillis());
|
time = System.currentTimeMillis();
|
||||||
getCommand("pv").setExecutor(new VaultCommand());
|
getCommand("pv").setExecutor(new VaultCommand());
|
||||||
getCommand("pvdel").setExecutor(new DeleteCommand());
|
getCommand("pvdel").setExecutor(new DeleteCommand());
|
||||||
getCommand("pvconvert").setExecutor(new ConvertCommand());
|
getCommand("pvconvert").setExecutor(new ConvertCommand());
|
||||||
getCommand("pvsign").setExecutor(new SignCommand());
|
getCommand("pvsign").setExecutor(new SignCommand());
|
||||||
debug("registered commands", System.currentTimeMillis());
|
debug("registered commands", time);
|
||||||
|
time = System.currentTimeMillis();
|
||||||
useVault = setupEconomy();
|
useVault = setupEconomy();
|
||||||
debug("setup economy", System.currentTimeMillis());
|
debug("setup economy", time);
|
||||||
|
|
||||||
if (getConf().getPurge().isEnabled()) {
|
if (getConf().getPurge().isEnabled()) {
|
||||||
getServer().getScheduler().runTaskAsynchronously(this, new Cleanup(getConf().getPurge().getDaysSinceLastEdit()));
|
getServer().getScheduler().runTaskAsynchronously(this, new Cleanup(getConf().getPurge().getDaysSinceLastEdit()));
|
||||||
@@ -223,7 +232,7 @@ public class PlayerVaults extends JavaPlugin {
|
|||||||
return map;
|
return map;
|
||||||
});
|
});
|
||||||
|
|
||||||
debug("enable done", System.currentTimeMillis());
|
this.getLogger().info("Loaded! Took " + (System.currentTimeMillis() - start) + "ms");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void metricsLine(String name, Callable<Integer> callable) {
|
private void metricsLine(String name, Callable<Integer> callable) {
|
||||||
@@ -525,7 +534,7 @@ public class PlayerVaults extends JavaPlugin {
|
|||||||
|
|
||||||
public int getDefaultVaultRows() {
|
public int getDefaultVaultRows() {
|
||||||
int def = this.config.getDefaultVaultRows();
|
int def = this.config.getDefaultVaultRows();
|
||||||
return (def >= 1 && def <=6) ? def : 6;
|
return (def >= 1 && def <= 6) ? def : 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getDefaultVaultSize() {
|
public int getDefaultVaultSize() {
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder;
|
|||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Lax on 6/6/2017.
|
* Created by Lax on 6/6/2017.
|
||||||
@@ -36,6 +37,10 @@ import java.io.ByteArrayOutputStream;
|
|||||||
public class Base64Serialization {
|
public class Base64Serialization {
|
||||||
|
|
||||||
public static String toBase64(Inventory inventory, int size) {
|
public static String toBase64(Inventory inventory, int size) {
|
||||||
|
return toBase64(inventory, size, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String toBase64(Inventory inventory, int size, String target) {
|
||||||
try {
|
try {
|
||||||
ByteArrayOutputStream finalOutputStream = new ByteArrayOutputStream();
|
ByteArrayOutputStream finalOutputStream = new ByteArrayOutputStream();
|
||||||
ByteArrayOutputStream temporaryOutputStream = new ByteArrayOutputStream();
|
ByteArrayOutputStream temporaryOutputStream = new ByteArrayOutputStream();
|
||||||
@@ -62,7 +67,7 @@ public class Base64Serialization {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (failedItems > 0) {
|
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
|
// Serialize that array
|
||||||
@@ -80,6 +85,10 @@ public class Base64Serialization {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static Inventory fromBase64(String data) {
|
public static Inventory fromBase64(String data) {
|
||||||
|
return fromBase64(data, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Inventory fromBase64(String data, String target) {
|
||||||
try {
|
try {
|
||||||
ByteArrayInputStream inputStream = new ByteArrayInputStream(Base64Coder.decodeLines(data));
|
ByteArrayInputStream inputStream = new ByteArrayInputStream(Base64Coder.decodeLines(data));
|
||||||
BukkitObjectInputStream dataInput = new BukkitObjectInputStream(inputStream);
|
BukkitObjectInputStream dataInput = new BukkitObjectInputStream(inputStream);
|
||||||
@@ -91,6 +100,7 @@ public class Base64Serialization {
|
|||||||
dataInput.close();
|
dataInput.close();
|
||||||
return inventory;
|
return inventory;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
PlayerVaults.getInstance().getLogger().log(Level.SEVERE, "Failed to load vault " + target, e);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,13 +63,13 @@ public class VaultManager {
|
|||||||
* Saves the inventory to the specified player and vault number.
|
* Saves the inventory to the specified player and vault number.
|
||||||
*
|
*
|
||||||
* @param inventory The inventory to be saved.
|
* @param inventory The inventory to be saved.
|
||||||
* @param target The player of whose file to save to.
|
* @param target The player of whose file to save to.
|
||||||
* @param number The vault number.
|
* @param number The vault number.
|
||||||
*/
|
*/
|
||||||
public void saveVault(Inventory inventory, String target, int number) {
|
public void saveVault(Inventory inventory, String target, int number) {
|
||||||
YamlConfiguration yaml = getPlayerVaultFile(target, true);
|
YamlConfiguration yaml = getPlayerVaultFile(target, true);
|
||||||
int size = VaultOperations.getMaxVaultSize(target);
|
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);
|
yaml.set(String.format(VAULTKEY, number), serialized);
|
||||||
saveFileSync(target, yaml);
|
saveFileSync(target, yaml);
|
||||||
}
|
}
|
||||||
@@ -85,27 +85,31 @@ public class VaultManager {
|
|||||||
size = PlayerVaults.getInstance().getDefaultVaultSize();
|
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());
|
String title = Lang.VAULT_TITLE.toString().replace("%number", String.valueOf(number)).replace("%p", player.getName());
|
||||||
VaultViewInfo info = new VaultViewInfo(player.getUniqueId().toString(), number);
|
VaultViewInfo info = new VaultViewInfo(player.getUniqueId().toString(), number);
|
||||||
if (PlayerVaults.getInstance().getOpenInventories().containsKey(info.toString())) {
|
if (PlayerVaults.getInstance().getOpenInventories().containsKey(info.toString())) {
|
||||||
|
PlayerVaults.debug("Already open");
|
||||||
return PlayerVaults.getInstance().getOpenInventories().get(info.toString());
|
return PlayerVaults.getInstance().getOpenInventories().get(info.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
YamlConfiguration playerFile = getPlayerVaultFile(player.getUniqueId().toString(), true);
|
YamlConfiguration playerFile = getPlayerVaultFile(player.getUniqueId().toString(), true);
|
||||||
VaultHolder vaultHolder = new VaultHolder(number);
|
VaultHolder vaultHolder = new VaultHolder(number);
|
||||||
if (playerFile.getString(String.format(VAULTKEY, number)) == null) {
|
if (playerFile.getString(String.format(VAULTKEY, number)) == null) {
|
||||||
|
PlayerVaults.debug("No vault matching number");
|
||||||
Inventory inv = Bukkit.createInventory(vaultHolder, size, title);
|
Inventory inv = Bukkit.createInventory(vaultHolder, size, title);
|
||||||
vaultHolder.setInventory(inv);
|
vaultHolder.setInventory(inv);
|
||||||
return inv;
|
return inv;
|
||||||
} else {
|
} else {
|
||||||
return getInventory(vaultHolder, playerFile, size, number, title);
|
return getInventory(vaultHolder, player.getUniqueId().toString(), playerFile, size, number, title);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load the player's vault and return it.
|
* Load the player's vault and return it.
|
||||||
*
|
*
|
||||||
* @param name The holder of the vault.
|
* @param name The holder of the vault.
|
||||||
* @param number The vault number.
|
* @param number The vault number.
|
||||||
*/
|
*/
|
||||||
public Inventory loadOtherVault(String name, int number, int size) {
|
public Inventory loadOtherVault(String name, int number, int size) {
|
||||||
@@ -113,6 +117,8 @@ public class VaultManager {
|
|||||||
size = PlayerVaults.getInstance().getDefaultVaultSize();
|
size = PlayerVaults.getInstance().getDefaultVaultSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PlayerVaults.debug("Loading other vault for " + name);
|
||||||
|
|
||||||
String holder = name;
|
String holder = name;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -128,10 +134,11 @@ public class VaultManager {
|
|||||||
Inventory inv;
|
Inventory inv;
|
||||||
VaultHolder vaultHolder = new VaultHolder(number);
|
VaultHolder vaultHolder = new VaultHolder(number);
|
||||||
if (PlayerVaults.getInstance().getOpenInventories().containsKey(info.toString())) {
|
if (PlayerVaults.getInstance().getOpenInventories().containsKey(info.toString())) {
|
||||||
|
PlayerVaults.debug("Already open");
|
||||||
inv = PlayerVaults.getInstance().getOpenInventories().get(info.toString());
|
inv = PlayerVaults.getInstance().getOpenInventories().get(info.toString());
|
||||||
} else {
|
} else {
|
||||||
YamlConfiguration playerFile = getPlayerVaultFile(holder, true);
|
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) {
|
if (i == null) {
|
||||||
return null;
|
return null;
|
||||||
} else {
|
} else {
|
||||||
@@ -146,16 +153,17 @@ public class VaultManager {
|
|||||||
* Get an inventory from file. Returns null if the inventory doesn't exist. SHOULD ONLY BE USED INTERNALLY
|
* Get an inventory from file. Returns null if the inventory doesn't exist. SHOULD ONLY BE USED INTERNALLY
|
||||||
*
|
*
|
||||||
* @param playerFile the YamlConfiguration file.
|
* @param playerFile the YamlConfiguration file.
|
||||||
* @param size the size of the vault.
|
* @param size the size of the vault.
|
||||||
* @param number the vault number.
|
* @param number the vault number.
|
||||||
* @return inventory if exists, otherwise null.
|
* @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);
|
Inventory inventory = Bukkit.createInventory(owner, size, title);
|
||||||
|
|
||||||
String data = playerFile.getString(String.format(VAULTKEY, number));
|
String data = playerFile.getString(String.format(VAULTKEY, number));
|
||||||
Inventory deserialized = Base64Serialization.fromBase64(data);
|
Inventory deserialized = Base64Serialization.fromBase64(data, ownerName);
|
||||||
if (deserialized == null) {
|
if (deserialized == null) {
|
||||||
|
PlayerVaults.debug("Loaded vault as null");
|
||||||
return inventory;
|
return inventory;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -172,6 +180,7 @@ public class VaultManager {
|
|||||||
inventory.setContents(deserialized.getContents());
|
inventory.setContents(deserialized.getContents());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PlayerVaults.debug("Loaded vault");
|
||||||
return inventory;
|
return inventory;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -185,7 +194,7 @@ public class VaultManager {
|
|||||||
public Inventory getVault(String holder, int number) {
|
public Inventory getVault(String holder, int number) {
|
||||||
YamlConfiguration playerFile = getPlayerVaultFile(holder, true);
|
YamlConfiguration playerFile = getPlayerVaultFile(holder, true);
|
||||||
String serialized = playerFile.getString(String.format(VAULTKEY, number));
|
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) {
|
} catch (IOException e) {
|
||||||
PlayerVaults.getInstance().getLogger().log(Level.SEVERE, "Failed to save vault file for: " + holder, 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