001 package net.minecraft.server.dedicated; 002 003 import java.io.BufferedReader; 004 import java.io.File; 005 import java.io.FileReader; 006 import java.io.FileWriter; 007 import java.io.PrintWriter; 008 import java.util.Iterator; 009 import net.minecraft.server.MinecraftServer; 010 import net.minecraft.server.management.ServerConfigurationManager; 011 012 public class DedicatedPlayerList extends ServerConfigurationManager 013 { 014 private File opsList; 015 private File whiteList; 016 017 public DedicatedPlayerList(DedicatedServer par1DedicatedServer) 018 { 019 super(par1DedicatedServer); 020 this.opsList = par1DedicatedServer.getFile("ops.txt"); 021 this.whiteList = par1DedicatedServer.getFile("white-list.txt"); 022 this.viewDistance = par1DedicatedServer.getIntProperty("view-distance", 10); 023 this.maxPlayers = par1DedicatedServer.getIntProperty("max-players", 20); 024 this.setWhiteListEnabled(par1DedicatedServer.getBooleanProperty("white-list", false)); 025 026 if (!par1DedicatedServer.isSinglePlayer()) 027 { 028 this.getBannedPlayers().setListActive(true); 029 this.getBannedIPs().setListActive(true); 030 } 031 032 this.getBannedPlayers().loadBanList(); 033 this.getBannedPlayers().saveToFileWithHeader(); 034 this.getBannedIPs().loadBanList(); 035 this.getBannedIPs().saveToFileWithHeader(); 036 this.loadOpsList(); 037 this.readWhiteList(); 038 this.saveOpsList(); 039 this.saveWhiteList(); 040 } 041 042 public void setWhiteListEnabled(boolean par1) 043 { 044 super.setWhiteListEnabled(par1); 045 this.getDedicatedServerInstance().setProperty("white-list", Boolean.valueOf(par1)); 046 this.getDedicatedServerInstance().saveProperties(); 047 } 048 049 /** 050 * This adds a username to the ops list, then saves the op list 051 */ 052 public void addOp(String par1Str) 053 { 054 super.addOp(par1Str); 055 this.saveOpsList(); 056 } 057 058 /** 059 * This removes a username from the ops list, then saves the op list 060 */ 061 public void removeOp(String par1Str) 062 { 063 super.removeOp(par1Str); 064 this.saveOpsList(); 065 } 066 067 /** 068 * Remove the specified player from the whitelist. 069 */ 070 public void removeFromWhitelist(String par1Str) 071 { 072 super.removeFromWhitelist(par1Str); 073 this.saveWhiteList(); 074 } 075 076 /** 077 * Add the specified player to the white list. 078 */ 079 public void addToWhiteList(String par1Str) 080 { 081 super.addToWhiteList(par1Str); 082 this.saveWhiteList(); 083 } 084 085 /** 086 * Either does nothing, or calls readWhiteList. 087 */ 088 public void loadWhiteList() 089 { 090 this.readWhiteList(); 091 } 092 093 private void loadOpsList() 094 { 095 try 096 { 097 this.getOps().clear(); 098 BufferedReader var1 = new BufferedReader(new FileReader(this.opsList)); 099 String var2 = ""; 100 101 while ((var2 = var1.readLine()) != null) 102 { 103 this.getOps().add(var2.trim().toLowerCase()); 104 } 105 106 var1.close(); 107 } 108 catch (Exception var3) 109 { 110 logger.warning("Failed to load operators list: " + var3); 111 } 112 } 113 114 private void saveOpsList() 115 { 116 try 117 { 118 PrintWriter var1 = new PrintWriter(new FileWriter(this.opsList, false)); 119 Iterator var2 = this.getOps().iterator(); 120 121 while (var2.hasNext()) 122 { 123 String var3 = (String)var2.next(); 124 var1.println(var3); 125 } 126 127 var1.close(); 128 } 129 catch (Exception var4) 130 { 131 logger.warning("Failed to save operators list: " + var4); 132 } 133 } 134 135 private void readWhiteList() 136 { 137 try 138 { 139 this.getWhiteListedPlayers().clear(); 140 BufferedReader var1 = new BufferedReader(new FileReader(this.whiteList)); 141 String var2 = ""; 142 143 while ((var2 = var1.readLine()) != null) 144 { 145 this.getWhiteListedPlayers().add(var2.trim().toLowerCase()); 146 } 147 148 var1.close(); 149 } 150 catch (Exception var3) 151 { 152 logger.warning("Failed to load white-list: " + var3); 153 } 154 } 155 156 private void saveWhiteList() 157 { 158 try 159 { 160 PrintWriter var1 = new PrintWriter(new FileWriter(this.whiteList, false)); 161 Iterator var2 = this.getWhiteListedPlayers().iterator(); 162 163 while (var2.hasNext()) 164 { 165 String var3 = (String)var2.next(); 166 var1.println(var3); 167 } 168 169 var1.close(); 170 } 171 catch (Exception var4) 172 { 173 logger.warning("Failed to save white-list: " + var4); 174 } 175 } 176 177 /** 178 * Determine if the player is allowed to connect based on current server settings. 179 */ 180 public boolean isAllowedToLogin(String par1Str) 181 { 182 par1Str = par1Str.trim().toLowerCase(); 183 return !this.isWhiteListEnabled() || this.areCommandsAllowed(par1Str) || this.getWhiteListedPlayers().contains(par1Str); 184 } 185 186 public DedicatedServer getDedicatedServerInstance() 187 { 188 return (DedicatedServer)super.getServerInstance(); 189 } 190 191 public MinecraftServer getServerInstance() 192 { 193 return this.getDedicatedServerInstance(); 194 } 195 }