Commons/src/main/java/eu/univento/commons/player/ban/BanData.java

87 lines
2.4 KiB
Java
Raw Normal View History

/*
* Copyright (c) 2017 univento.eu - All rights reserved
* You are not allowed to use, distribute or modify this code
*/
2016-08-02 23:53:40 +02:00
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;
2017-04-07 17:10:36 +02:00
import java.time.Instant;
2016-08-02 23:53:40 +02:00
import java.util.Date;
import java.util.UUID;
/**
* @author joethei
* @version 1.0
2016-08-02 23:53:40 +02:00
*/
public class BanData {
private BanReason reason;
private UUID banner;
private String customMessage;
2017-04-07 17:10:36 +02:00
private Instant unbanDate;
2016-08-02 23:53:40 +02:00
private String proof;
2017-04-07 17:10:36 +02:00
public BanData(BanReason reason, UUID banner, String customMessage, Instant unbanDate, String proof) {
2016-08-02 23:53:40 +02:00
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;
}
2017-04-07 17:10:36 +02:00
public Instant getUnbanDate() {
2016-08-02 23:53:40 +02:00
return unbanDate;
}
public String getProof() {
return proof;
}
public String getBannerName() {
2016-09-17 11:55:07 +02:00
if(banner == null)
return "Auto Ban";
2016-08-02 23:53:40 +02:00
return NameFetcher.getRequest(banner);
}
public String getTimeTillUnban() {
assert getUnbanDate() != null;
2017-04-07 17:10:36 +02:00
final DateTime end = new DateTime(getUnbanDate());
2016-08-02 23:53:40 +02:00
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);
}
}