package net.minecraft.server.management; import com.google.gson.JsonObject; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public abstract class BanEntry extends UserListEntry { public static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z"); protected final Date banStartDate; protected final String bannedBy; protected final Date banEndDate; protected final String reason; private static final String __OBFID = "CL_00001395"; public BanEntry(Object p_i1173_1_, Date p_i1173_2_, String p_i1173_3_, Date p_i1173_4_, String p_i1173_5_) { super(p_i1173_1_); this.banStartDate = p_i1173_2_ == null ? new Date() : p_i1173_2_; this.bannedBy = p_i1173_3_ == null ? "(Unknown)" : p_i1173_3_; this.banEndDate = p_i1173_4_; this.reason = p_i1173_5_ == null ? "Banned by an operator." : p_i1173_5_; } protected BanEntry(Object p_i1174_1_, JsonObject p_i1174_2_) { super(p_i1174_1_, p_i1174_2_); Date date; try { date = p_i1174_2_.has("created") ? dateFormat.parse(p_i1174_2_.get("created").getAsString()) : new Date(); } catch (ParseException parseexception1) { date = new Date(); } this.banStartDate = date; this.bannedBy = p_i1174_2_.has("source") ? p_i1174_2_.get("source").getAsString() : "(Unknown)"; Date date1; try { date1 = p_i1174_2_.has("expires") ? dateFormat.parse(p_i1174_2_.get("expires").getAsString()) : null; } catch (ParseException parseexception) { date1 = null; } this.banEndDate = date1; this.reason = p_i1174_2_.has("reason") ? p_i1174_2_.get("reason").getAsString() : "Banned by an operator."; } public Date getBanEndDate() { return this.banEndDate; } public String getBanReason() { return this.reason; } boolean hasBanExpired() { return this.banEndDate == null ? false : this.banEndDate.before(new Date()); } protected void onSerialization(JsonObject data) { data.addProperty("created", dateFormat.format(this.banStartDate)); data.addProperty("source", this.bannedBy); data.addProperty("expires", this.banEndDate == null ? "forever" : dateFormat.format(this.banEndDate)); data.addProperty("reason", this.reason); } }