package net.minecraft.server.management; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.regex.Pattern; import net.minecraft.server.MinecraftServer; public class BanEntry { public static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z"); 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 stringbuilder = new StringBuilder(); stringbuilder.append(this.getBannedUsername()); stringbuilder.append("|"); stringbuilder.append(dateFormat.format(this.getBanStartDate())); stringbuilder.append("|"); stringbuilder.append(this.getBannedBy()); stringbuilder.append("|"); stringbuilder.append(this.getBanEndDate() == null ? "Forever" : dateFormat.format(this.getBanEndDate())); stringbuilder.append("|"); stringbuilder.append(this.getBanReason()); return stringbuilder.toString(); } public static BanEntry parse(String par0Str) { if (par0Str.trim().length() < 2) { return null; } else { String[] astring = par0Str.trim().split(Pattern.quote("|"), 5); BanEntry banentry = new BanEntry(astring[0].trim()); byte b0 = 0; int i = astring.length; int j = b0 + 1; if (i <= j) { return banentry; } else { try { banentry.setBanStartDate(dateFormat.parse(astring[j].trim())); } catch (ParseException parseexception) { MinecraftServer.getServer().getLogAgent().logWarningException("Could not read creation date format for ban entry \'" + banentry.getBannedUsername() + "\' (was: \'" + astring[j] + "\')", parseexception); } i = astring.length; ++j; if (i <= j) { return banentry; } else { banentry.setBannedBy(astring[j].trim()); i = astring.length; ++j; if (i <= j) { return banentry; } else { try { String s1 = astring[j].trim(); if (!s1.equalsIgnoreCase("Forever") && s1.length() > 0) { banentry.setBanEndDate(dateFormat.parse(s1)); } } catch (ParseException parseexception1) { MinecraftServer.getServer().getLogAgent().logWarningException("Could not read expiry date format for ban entry \'" + banentry.getBannedUsername() + "\' (was: \'" + astring[j] + "\')", parseexception1); } i = astring.length; ++j; if (i <= j) { return banentry; } else { banentry.setBanReason(astring[j].trim()); return banentry; } } } } } } }