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_i46334_1_, Date p_i46334_2_, String p_i46334_3_, Date p_i46334_4_, String p_i46334_5_)
{
super(p_i46334_1_);
this.banStartDate = p_i46334_2_ == null ? new Date() : p_i46334_2_;
this.bannedBy = p_i46334_3_ == null ? "(Unknown)" : p_i46334_3_;
this.banEndDate = p_i46334_4_;
this.reason = p_i46334_5_ == null ? "Banned by an operator." : p_i46334_5_;
}
protected BanEntry(Object p_i1174_1_, JsonObject p_i1174_2_)
{
super(p_i1174_1_, p_i1174_2_);
Date var3;
try
{
var3 = p_i1174_2_.has("created") ? dateFormat.parse(p_i1174_2_.get("created").getAsString()) : new Date();
}
catch (ParseException var7)
{
var3 = new Date();
}
this.banStartDate = var3;
this.bannedBy = p_i1174_2_.has("source") ? p_i1174_2_.get("source").getAsString() : "(Unknown)";
Date var4;
try
{
var4 = p_i1174_2_.has("expires") ? dateFormat.parse(p_i1174_2_.get("expires").getAsString()) : null;
}
catch (ParseException var6)
{
var4 = null;
}
this.banEndDate = var4;
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);
}
}