2022-05-24 01:07:50 -05:00
|
|
|
package noppes.npcs.controllers.data;
|
2018-09-13 12:03:28 -04:00
|
|
|
|
|
|
|
|
import net.minecraft.nbt.NBTTagCompound;
|
|
|
|
|
import net.minecraft.nbt.NBTTagList;
|
2022-11-15 15:25:53 -05:00
|
|
|
import noppes.npcs.api.handler.IPlayerBankData;
|
2023-01-12 21:33:06 -05:00
|
|
|
import noppes.npcs.controllers.BankController;
|
|
|
|
|
|
|
|
|
|
import java.util.HashMap;
|
2018-09-13 12:03:28 -04:00
|
|
|
|
2022-06-12 01:26:23 -05:00
|
|
|
public class PlayerBankData implements IPlayerBankData {
|
|
|
|
|
private final PlayerData parent;
|
2018-09-13 12:03:28 -04:00
|
|
|
public HashMap<Integer,BankData> banks;
|
2022-06-12 01:26:23 -05:00
|
|
|
|
|
|
|
|
public PlayerBankData(PlayerData parent){
|
2018-09-13 12:03:28 -04:00
|
|
|
banks = new HashMap<Integer,BankData>();
|
2022-06-12 01:26:23 -05:00
|
|
|
this.parent = parent;
|
2018-09-13 12:03:28 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void loadNBTData(NBTTagCompound compound) {
|
|
|
|
|
HashMap<Integer,BankData> banks = new HashMap<Integer,BankData>();
|
|
|
|
|
NBTTagList list = compound.getTagList("BankData", 10);
|
|
|
|
|
if(list == null){
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
for(int i = 0; i < list.tagCount(); i++)
|
|
|
|
|
{
|
|
|
|
|
NBTTagCompound nbttagcompound = list.getCompoundTagAt(i);
|
|
|
|
|
BankData data = new BankData();
|
|
|
|
|
data.readNBT(nbttagcompound);
|
|
|
|
|
banks.put(data.bankId, data);
|
|
|
|
|
}
|
|
|
|
|
this.banks = banks;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void saveNBTData(NBTTagCompound playerData){
|
|
|
|
|
NBTTagList list = new NBTTagList();
|
|
|
|
|
for(BankData data : banks.values()){
|
|
|
|
|
NBTTagCompound nbttagcompound = new NBTTagCompound();
|
|
|
|
|
data.writeNBT(nbttagcompound);
|
|
|
|
|
list.appendTag(nbttagcompound);
|
|
|
|
|
}
|
|
|
|
|
playerData.setTag("BankData", list);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public BankData getBank(int bankId) {
|
|
|
|
|
return banks.get(bankId);
|
|
|
|
|
}
|
|
|
|
|
public BankData getBankOrDefault(int bankId) {
|
|
|
|
|
BankData data = banks.get(bankId);
|
|
|
|
|
if(data != null)
|
|
|
|
|
return data;
|
|
|
|
|
Bank bank = BankController.getInstance().getBank(bankId);
|
|
|
|
|
return banks.get(bank.id);
|
|
|
|
|
}
|
|
|
|
|
public boolean hasBank(int bank) {
|
|
|
|
|
return banks.containsKey(bank);
|
|
|
|
|
}
|
|
|
|
|
public void loadNew(int bank) {
|
|
|
|
|
BankData data = new BankData();
|
|
|
|
|
data.bankId = bank;
|
|
|
|
|
banks.put(bank, data);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|