package net.minecraft.server.management;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Pattern;
public class BanEntry
{
public static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");
/** Creates Ban Entry in the logger. */
public static Logger loggerBanEntry = Logger.getLogger("Minecraft");
private final String username;
private Date banStartDate = new Date();
private String bannedBy = "(Unknown)";
private Date banEndDate = null;
private String reason = "Banned by an operator.";
public BanEntry(String par1Str)
{
this.username = par1Str;
}
public String getBannedUsername()
{
return this.username;
}
public Date getBanStartDate()
{
return this.banStartDate;
}
/**
* null == start ban now
*/
public void setBanStartDate(Date par1Date)
{
this.banStartDate = par1Date != null ? par1Date : new Date();
}
public String getBannedBy()
{
return this.bannedBy;
}
public void setBannedBy(String par1Str)
{
this.bannedBy = par1Str;
}
public Date getBanEndDate()
{
return this.banEndDate;
}
public void setBanEndDate(Date par1Date)
{
this.banEndDate = par1Date;
}
public boolean hasBanExpired()
{
return this.banEndDate == null ? false : this.banEndDate.before(new Date());
}
public String getBanReason()
{
return this.reason;
}
public void setBanReason(String par1Str)
{
this.reason = par1Str;
}
public String buildBanString()
{
StringBuilder var1 = new StringBuilder();
var1.append(this.getBannedUsername());
var1.append("|");
var1.append(dateFormat.format(this.getBanStartDate()));
var1.append("|");
var1.append(this.getBannedBy());
var1.append("|");
var1.append(this.getBanEndDate() == null ? "Forever" : dateFormat.format(this.getBanEndDate()));
var1.append("|");
var1.append(this.getBanReason());
return var1.toString();
}
public static BanEntry parse(String par0Str)
{
if (par0Str.trim().length() < 2)
{
return null;
}
else
{
String[] var1 = par0Str.trim().split(Pattern.quote("|"), 5);
BanEntry var2 = new BanEntry(var1[0].trim());
byte var3 = 0;
int var10000 = var1.length;
int var7 = var3 + 1;
if (var10000 <= var7)
{
return var2;
}
else
{
try
{
var2.setBanStartDate(dateFormat.parse(var1[var7].trim()));
}
catch (ParseException var6)
{
loggerBanEntry.log(Level.WARNING, "Could not read creation date format for ban entry \'" + var2.getBannedUsername() + "\' (was: \'" + var1[var7] + "\')", var6);
}
var10000 = var1.length;
++var7;
if (var10000 <= var7)
{
return var2;
}
else
{
var2.setBannedBy(var1[var7].trim());
var10000 = var1.length;
++var7;
if (var10000 <= var7)
{
return var2;
}
else
{
try
{
String var4 = var1[var7].trim();
if (!var4.equalsIgnoreCase("Forever") && var4.length() > 0)
{
var2.setBanEndDate(dateFormat.parse(var4));
}
}
catch (ParseException var5)
{
loggerBanEntry.log(Level.WARNING, "Could not read expiry date format for ban entry \'" + var2.getBannedUsername() + "\' (was: \'" + var1[var7] + "\')", var5);
}
var10000 = var1.length;
++var7;
if (var10000 <= var7)
{
return var2;
}
else
{
var2.setBanReason(var1[var7].trim());
return var2;
}
}
}
}
}
}
}