[1.15.2.a.5] Added staff access to offline players' banks.

This commit is contained in:
TheTealViper 2020-04-26 20:05:18 -07:00
parent 1f83b3989b
commit 95f105707c
3 changed files with 21 additions and 16 deletions

View File

@ -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

View File

@ -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<Player, BankStorage> bankDatabase = new HashMap<Player, BankStorage>(); // This links players to THEIR own bank
public static Map<UUID, BankStorage> bankDatabase = new HashMap<UUID, BankStorage>(); // This links players to THEIR own bank
public static Map<Player, BankStorage> openBankDatabase = new HashMap<Player, BankStorage>(); // This links players to the bank they are viewing
public static Map<Player, BankStorage> searchDatabase = new HashMap<Player, BankStorage>(); // 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<Integer> 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;

View File

@ -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);
}