package net.minecraft.server.dedicated; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.PrintWriter; import java.util.Iterator; import net.minecraft.server.MinecraftServer; import net.minecraft.server.management.ServerConfigurationManager; public class DedicatedPlayerList extends ServerConfigurationManager { private File opsList; private File whiteList; public DedicatedPlayerList(DedicatedServer par1DedicatedServer) { super(par1DedicatedServer); this.opsList = par1DedicatedServer.getFile("ops.txt"); this.whiteList = par1DedicatedServer.getFile("white-list.txt"); this.viewDistance = par1DedicatedServer.getIntProperty("view-distance", 10); this.maxPlayers = par1DedicatedServer.getIntProperty("max-players", 20); this.setWhiteListEnabled(par1DedicatedServer.getBooleanProperty("white-list", false)); if (!par1DedicatedServer.isSinglePlayer()) { this.getBannedPlayers().setListActive(true); this.getBannedIPs().setListActive(true); } this.getBannedPlayers().loadBanList(); this.getBannedPlayers().saveToFileWithHeader(); this.getBannedIPs().loadBanList(); this.getBannedIPs().saveToFileWithHeader(); this.loadOpsList(); this.readWhiteList(); this.saveOpsList(); this.saveWhiteList(); } public void setWhiteListEnabled(boolean par1) { super.setWhiteListEnabled(par1); this.getDedicatedServerInstance().setProperty("white-list", Boolean.valueOf(par1)); this.getDedicatedServerInstance().saveProperties(); } /** * This adds a username to the ops list, then saves the op list */ public void addOp(String par1Str) { super.addOp(par1Str); this.saveOpsList(); } /** * This removes a username from the ops list, then saves the op list */ public void removeOp(String par1Str) { super.removeOp(par1Str); this.saveOpsList(); } /** * Remove the specified player from the whitelist. */ public void removeFromWhitelist(String par1Str) { super.removeFromWhitelist(par1Str); this.saveWhiteList(); } /** * Add the specified player to the white list. */ public void addToWhiteList(String par1Str) { super.addToWhiteList(par1Str); this.saveWhiteList(); } /** * Either does nothing, or calls readWhiteList. */ public void loadWhiteList() { this.readWhiteList(); } private void loadOpsList() { try { this.getOps().clear(); BufferedReader var1 = new BufferedReader(new FileReader(this.opsList)); String var2 = ""; while ((var2 = var1.readLine()) != null) { this.getOps().add(var2.trim().toLowerCase()); } var1.close(); } catch (Exception var3) { logger.warning("Failed to load operators list: " + var3); } } private void saveOpsList() { try { PrintWriter var1 = new PrintWriter(new FileWriter(this.opsList, false)); Iterator var2 = this.getOps().iterator(); while (var2.hasNext()) { String var3 = (String)var2.next(); var1.println(var3); } var1.close(); } catch (Exception var4) { logger.warning("Failed to save operators list: " + var4); } } private void readWhiteList() { try { this.getWhiteListedPlayers().clear(); BufferedReader var1 = new BufferedReader(new FileReader(this.whiteList)); String var2 = ""; while ((var2 = var1.readLine()) != null) { this.getWhiteListedPlayers().add(var2.trim().toLowerCase()); } var1.close(); } catch (Exception var3) { logger.warning("Failed to load white-list: " + var3); } } private void saveWhiteList() { try { PrintWriter var1 = new PrintWriter(new FileWriter(this.whiteList, false)); Iterator var2 = this.getWhiteListedPlayers().iterator(); while (var2.hasNext()) { String var3 = (String)var2.next(); var1.println(var3); } var1.close(); } catch (Exception var4) { logger.warning("Failed to save white-list: " + var4); } } /** * Determine if the player is allowed to connect based on current server settings. */ public boolean isAllowedToLogin(String par1Str) { par1Str = par1Str.trim().toLowerCase(); return !this.isWhiteListEnabled() || this.areCommandsAllowed(par1Str) || this.getWhiteListedPlayers().contains(par1Str); } public DedicatedServer getDedicatedServerInstance() { return (DedicatedServer)super.getServerInstance(); } public MinecraftServer getServerInstance() { return this.getDedicatedServerInstance(); } }