package joshie.harvest.knowledge.letter;
import joshie.harvest.api.core.Letter;
import joshie.harvest.core.HFTrackers;
import joshie.harvest.player.PlayerTrackerServer;
import joshie.harvest.town.TownHelper;
import joshie.harvest.town.data.TownDataServer;
import net.minecraft.entity.player.EntityPlayer;
import javax.annotation.Nonnull;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class LetterHelper {
public static boolean hasUnreadLetters(EntityPlayer player) {
return HFTrackers.getPlayerTrackerFromPlayer(player).getLetters().hasUnreadLetters() ||
TownHelper.getClosestTownToEntity(player, false).getLetters().hasUnreadLetters();
}
public static void addLetterToMailbox(EntityPlayer player, Letter letter) {
if (!letter.isTownLetter()) HFTrackers.<PlayerTrackerServer>getPlayerTrackerFromPlayer(player).getLetters().addLetterAndSync(letter);
else TownHelper.<TownDataServer>getClosestTownToEntity(player, false).getLetters().addLetterAndSync(letter);
HFTrackers.markTownsDirty();
}
@Nonnull
public static Letter getMostRecentLetter(EntityPlayer player) {
List<Letter> letterList = new ArrayList<>();
letterList.addAll(HFTrackers.getPlayerTrackerFromPlayer(player).getLetters().getLetters());
letterList.addAll(TownHelper.getClosestTownToEntity(player, false).getLetters().getLetters());
if (letterList.size() == 0) return Letter.NONE;
Collections.sort(letterList, ((o1, o2) -> o1.getPriority().compareTo(o2.getPriority())));
return letterList.get(0);
}
}