diff --git a/plugin.yml b/plugin.yml index 71cc6ac..80c0afe 100644 --- a/plugin.yml +++ b/plugin.yml @@ -1,6 +1,6 @@ name: "EnderBank" author: TheTealViper -version: "1.15.2.a.4" +version: "1.15.2.a.5" api-version: 1.13 description: "Bank system from popular RPG's." main: me.TheTealViper.enderbank.EnderBank diff --git a/src/me/TheTealViper/enderbank/BankStorage.java b/src/me/TheTealViper/enderbank/BankStorage.java index 4fa0308..1ee42e6 100644 --- a/src/me/TheTealViper/enderbank/BankStorage.java +++ b/src/me/TheTealViper/enderbank/BankStorage.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.UUID; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -18,7 +19,7 @@ import org.bukkit.inventory.meta.ItemMeta; import me.TheTealViper.enderbank.utils.PluginFile; public class BankStorage { - public static Map bankDatabase = new HashMap(); // This links players to THEIR own bank + public static Map bankDatabase = new HashMap(); // This links players to THEIR own bank public static Map openBankDatabase = new HashMap(); // This links players to the bank they are viewing public static Map searchDatabase = new HashMap(); // This links players to the last bank they tried to search public static EnderBank plugin; @@ -29,23 +30,23 @@ public class BankStorage { public Inventory lastOpenedInventory; public int lastOpenedPage; public List itemIdentifiers; - public Player bankOwner; + public UUID bankOwnerUUID; public static void setup(EnderBank plugin) { BankStorage.plugin = plugin; } - public static BankStorage getBank(Player bankOwner) { + public static BankStorage getBank(UUID bankOwner) { if(bankDatabase.containsKey(bankOwner)) return bankDatabase.get(bankOwner); else return new BankStorage(bankOwner); } - public BankStorage(Player bankOwner) { - bankDatabase.put(bankOwner, this); - this.bankOwner = bankOwner; - pf = new PluginFile(plugin, "banks/banks." + bankOwner.getUniqueId().toString() + ".yml"); + public BankStorage(UUID bankOwnerUUID) { + bankDatabase.put(bankOwnerUUID, this); + this.bankOwnerUUID = bankOwnerUUID; + pf = new PluginFile(plugin, "banks/banks." + bankOwnerUUID.toString() + ".yml"); //Load in defaults if not saved yet if(!pf.contains("unlockedPages")) { @@ -69,7 +70,7 @@ public class BankStorage { public void openPage(int page, Player opener) { openBankDatabase.put(opener, this); - Inventory inv = Bukkit.createInventory(null, 54, bankOwner.getName() + "'s Bank [Pg. " + page + "]"); + Inventory inv = Bukkit.createInventory(null, 54, Bukkit.getOfflinePlayer(bankOwnerUUID).getName() + "'s Bank [Pg. " + page + "]"); int startingIndex = (page - 1) * 42; // int endingIndex = page * 42 - 1; diff --git a/src/me/TheTealViper/enderbank/EnderBank.java b/src/me/TheTealViper/enderbank/EnderBank.java index 86c8b62..88abd67 100644 --- a/src/me/TheTealViper/enderbank/EnderBank.java +++ b/src/me/TheTealViper/enderbank/EnderBank.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.UUID; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -127,13 +128,16 @@ public class EnderBank extends JavaPlugin implements Listener { String oPlayerName = args[1]; @SuppressWarnings("deprecation") OfflinePlayer oPlayerOffline = Bukkit.getOfflinePlayer(oPlayerName); - if(oPlayerOffline.isOnline()) { - Player oPlayer = oPlayerOffline.getPlayer(); - BankStorage bank = BankStorage.getBank(oPlayer); + UUID oPlayerUUID = oPlayerOffline.getUniqueId(); + if(BankStorage.bankDatabase.containsKey(oPlayerUUID)) { + BankStorage bank = BankStorage.getBank(oPlayerUUID); bank.openPage(1, p); - }else { - p.sendMessage("That player is not online."); - } + if(!oPlayerOffline.isOnline()){ + p.sendMessage("That player is not online. Opening last save of inventory."); + } + }else { + p.sendMessage("That bank does not exist yet. The player must sign in at least once."); + } }else { warnmissingperms = true; } @@ -336,7 +340,7 @@ public class EnderBank extends JavaPlugin implements Listener { } public void openEnderBank(Player p) { - BankStorage bank = BankStorage.getBank(p); + BankStorage bank = BankStorage.getBank(p.getUniqueId()); bank.openPage(1, p); }