Files
CustomNPC-Plus/src/main/java/noppes/npcs/controllers/data/PlayerMailData.java
T

105 lines
2.3 KiB
Java
Raw Normal View History

package noppes.npcs.controllers.data;
2018-09-13 12:03:28 -04:00
import java.util.ArrayList;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
2022-11-15 15:25:53 -05:00
import noppes.npcs.api.handler.IPlayerMailData;
import noppes.npcs.api.handler.data.IPlayerMail;
2018-09-13 12:03:28 -04:00
2022-06-12 01:26:23 -05:00
public class PlayerMailData implements IPlayerMailData {
private final PlayerData parent;
2018-09-13 12:03:28 -04:00
public ArrayList<PlayerMail> playermail = new ArrayList<PlayerMail>();
2022-06-12 01:26:23 -05:00
public PlayerMailData() {
this.parent = null;
}
public PlayerMailData(PlayerData parent) {
this.parent = parent;
}
2018-09-13 12:03:28 -04:00
public void loadNBTData(NBTTagCompound compound) {
ArrayList<PlayerMail> newmail = new ArrayList<PlayerMail>();
NBTTagList list = compound.getTagList("MailData", 10);
if(list == null)
return;
for(int i = 0; i < list.tagCount(); i++){
PlayerMail mail = new PlayerMail();
mail.readNBT(list.getCompoundTagAt(i));
newmail.add(mail);
}
playermail = newmail;
}
public NBTTagCompound saveNBTData(NBTTagCompound compound) {
NBTTagList list = new NBTTagList();
for(PlayerMail mail : playermail){
list.appendTag(mail.writeNBT());
}
compound.setTag("MailData", list);
return compound;
}
public boolean hasMail() {
for(PlayerMail mail : playermail)
if(!mail.beenRead)
return true;
return false;
}
2022-06-12 01:26:23 -05:00
public void addMail(IPlayerMail mail) {
playermail.add((PlayerMail) mail);
}
public void removeMail(IPlayerMail mail) {
playermail.remove((PlayerMail) mail);
}
public boolean hasMail(IPlayerMail mail) {
return playermail.contains((PlayerMail) mail);
}
public IPlayerMail[] getAllMail() {
return playermail.toArray(new IPlayerMail[0]);
}
public IPlayerMail[] getUnreadMail() {
ArrayList<IPlayerMail> mails = new ArrayList<>();
for (PlayerMail mail : playermail) {
if (!mail.beenRead) {
mails.add(mail);
}
}
return mails.toArray(new IPlayerMail[0]);
}
public IPlayerMail[] getReadMail() {
ArrayList<IPlayerMail> mails = new ArrayList<>();
for (PlayerMail mail : playermail) {
if (mail.beenRead) {
mails.add(mail);
}
}
return mails.toArray(new IPlayerMail[0]);
}
public IPlayerMail[] getMailFrom(String sender) {
ArrayList<IPlayerMail> mails = new ArrayList<>();
for (PlayerMail mail : playermail) {
if (mail.sender.equals(sender)) {
mails.add(mail);
}
}
return mails.toArray(new IPlayerMail[0]);
}
2018-09-13 12:03:28 -04:00
}