package joshie.harvest.knowledge.letter; import joshie.harvest.api.calendar.CalendarDate; import joshie.harvest.api.calendar.Festival; import joshie.harvest.api.calendar.Season; import joshie.harvest.api.core.Letter; import joshie.harvest.core.HFTrackers; import joshie.harvest.town.TownHelper; import joshie.harvest.town.data.TownDataServer; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.ResourceLocation; public class LetterFestival extends Letter { private final Festival festival; private final Season season; public LetterFestival(Festival festival, Season season, ResourceLocation resource) { super(resource); this.festival = festival; this.season = season; this.setRejectable(); this.setTownLetter(); } @Override public boolean isExpired(CalendarDate today, int days) { return expires() && days >= getExpiry() || today.getSeason() != season; } @Override public void onLetterAccepted(EntityPlayer player) { TownHelper.<TownDataServer>getClosestTownToEntity(player, false).startFestival(festival); onLetterRejected(player); //Remove the letter as well as starting the festival HFTrackers.markTownsDirty(); } @Override public void onLetterRejected(EntityPlayer player) { if (festival.getLetter() != null) { //Just remove the letter TownHelper.<TownDataServer>getClosestTownToEntity(player, false).getLetters().removeLetterAndSync(festival.getLetter()); HFTrackers.markTownsDirty(); } } }