001 package net.minecraft.server.management; 002 003 import java.text.ParseException; 004 import java.text.SimpleDateFormat; 005 import java.util.Date; 006 import java.util.logging.Level; 007 import java.util.logging.Logger; 008 import java.util.regex.Pattern; 009 010 public class BanEntry 011 { 012 public static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z"); 013 014 /** Creates Ban Entry in the logger. */ 015 public static Logger loggerBanEntry = Logger.getLogger("Minecraft"); 016 private final String username; 017 private Date banStartDate = new Date(); 018 private String bannedBy = "(Unknown)"; 019 private Date banEndDate = null; 020 private String reason = "Banned by an operator."; 021 022 public BanEntry(String par1Str) 023 { 024 this.username = par1Str; 025 } 026 027 public String getBannedUsername() 028 { 029 return this.username; 030 } 031 032 public Date getBanStartDate() 033 { 034 return this.banStartDate; 035 } 036 037 /** 038 * null == start ban now 039 */ 040 public void setBanStartDate(Date par1Date) 041 { 042 this.banStartDate = par1Date != null ? par1Date : new Date(); 043 } 044 045 public String getBannedBy() 046 { 047 return this.bannedBy; 048 } 049 050 public void setBannedBy(String par1Str) 051 { 052 this.bannedBy = par1Str; 053 } 054 055 public Date getBanEndDate() 056 { 057 return this.banEndDate; 058 } 059 060 public void setBanEndDate(Date par1Date) 061 { 062 this.banEndDate = par1Date; 063 } 064 065 public boolean hasBanExpired() 066 { 067 return this.banEndDate == null ? false : this.banEndDate.before(new Date()); 068 } 069 070 public String getBanReason() 071 { 072 return this.reason; 073 } 074 075 public void setBanReason(String par1Str) 076 { 077 this.reason = par1Str; 078 } 079 080 public String buildBanString() 081 { 082 StringBuilder var1 = new StringBuilder(); 083 var1.append(this.getBannedUsername()); 084 var1.append("|"); 085 var1.append(dateFormat.format(this.getBanStartDate())); 086 var1.append("|"); 087 var1.append(this.getBannedBy()); 088 var1.append("|"); 089 var1.append(this.getBanEndDate() == null ? "Forever" : dateFormat.format(this.getBanEndDate())); 090 var1.append("|"); 091 var1.append(this.getBanReason()); 092 return var1.toString(); 093 } 094 095 public static BanEntry parse(String par0Str) 096 { 097 if (par0Str.trim().length() < 2) 098 { 099 return null; 100 } 101 else 102 { 103 String[] var1 = par0Str.trim().split(Pattern.quote("|"), 5); 104 BanEntry var2 = new BanEntry(var1[0].trim()); 105 byte var3 = 0; 106 int var10000 = var1.length; 107 int var7 = var3 + 1; 108 109 if (var10000 <= var7) 110 { 111 return var2; 112 } 113 else 114 { 115 try 116 { 117 var2.setBanStartDate(dateFormat.parse(var1[var7].trim())); 118 } 119 catch (ParseException var6) 120 { 121 loggerBanEntry.log(Level.WARNING, "Could not read creation date format for ban entry \'" + var2.getBannedUsername() + "\' (was: \'" + var1[var7] + "\')", var6); 122 } 123 124 var10000 = var1.length; 125 ++var7; 126 127 if (var10000 <= var7) 128 { 129 return var2; 130 } 131 else 132 { 133 var2.setBannedBy(var1[var7].trim()); 134 var10000 = var1.length; 135 ++var7; 136 137 if (var10000 <= var7) 138 { 139 return var2; 140 } 141 else 142 { 143 try 144 { 145 String var4 = var1[var7].trim(); 146 147 if (!var4.equalsIgnoreCase("Forever") && var4.length() > 0) 148 { 149 var2.setBanEndDate(dateFormat.parse(var4)); 150 } 151 } 152 catch (ParseException var5) 153 { 154 loggerBanEntry.log(Level.WARNING, "Could not read expiry date format for ban entry \'" + var2.getBannedUsername() + "\' (was: \'" + var1[var7] + "\')", var5); 155 } 156 157 var10000 = var1.length; 158 ++var7; 159 160 if (var10000 <= var7) 161 { 162 return var2; 163 } 164 else 165 { 166 var2.setBanReason(var1[var7].trim()); 167 return var2; 168 } 169 } 170 } 171 } 172 } 173 } 174 }