package eu.univento.commons.player.ban; import eu.univento.commons.player.uuid.NameFetcher; import org.joda.time.DateTime; import org.joda.time.Period; import org.joda.time.format.PeriodFormatter; import org.joda.time.format.PeriodFormatterBuilder; import java.time.Instant; import java.util.Date; import java.util.UUID; /** * @author joethei * @version 1.0 */ public class BanData { private BanReason reason; private UUID banner; private String customMessage; private Instant unbanDate; private String proof; public BanData(BanReason reason, UUID banner, String customMessage, Instant unbanDate, String proof) { this.reason = reason; this.banner = banner; this.customMessage = customMessage; this.unbanDate = unbanDate; this.proof = proof; } public BanReason getReason() { return reason; } public UUID getBanner() { return banner; } public boolean hasCustomReason() { return getReason() == BanReason.CUSTOM; } public String getCustomMessage() { return customMessage; } public Instant getUnbanDate() { return unbanDate; } public String getProof() { return proof; } public String getBannerName() { if(banner == null) return "Auto Ban"; return NameFetcher.getRequest(banner); } public String getTimeTillUnban() { assert getUnbanDate() != null; final DateTime end = new DateTime(getUnbanDate()); final DateTime now = new DateTime(new Date().getTime()); Period period = new Period(now, end); PeriodFormatter formatter = new PeriodFormatterBuilder().printZeroAlways().minimumPrintedDigits(2) .appendYears().appendSuffix(" Jahr", " Jahre") .appendSeparator(", ") .appendMonths().appendSuffix(" Monat", " Monate") .appendSeparator(", ") .appendDays().appendSuffix(" Tag", " Tage") .appendSeparator(" und ") .appendHours().appendSuffix(" Stunde", " Stunden") .appendMinutes().appendSuffix(" Minute", " Minuten") .appendSeconds().appendSuffix(" Sekunde", " Sekunden") .toFormatter(); return period.toString(formatter); } }