package net.minecraft.server.dedicated; import com.mojang.authlib.GameProfile; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import java.io.IOException; import net.minecraft.server.MinecraftServer; import net.minecraft.server.management.ServerConfigurationManager; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @SideOnly(Side.SERVER) public class DedicatedPlayerList extends ServerConfigurationManager { private static final Logger LOGGER = LogManager.getLogger(); private static final String __OBFID = "CL_00001783"; public DedicatedPlayerList(DedicatedServer server) { super(server); this.setViewDistance(server.getIntProperty("view-distance", 10)); this.maxPlayers = server.getIntProperty("max-players", 20); this.setWhiteListEnabled(server.getBooleanProperty("white-list", false)); if (!server.isSinglePlayer()) { this.getBannedPlayers().setLanServer(true); this.getBannedIPs().setLanServer(true); } this.loadUserBansList(); this.saveUserBanList(); this.loadIpBanList(); this.saveIpBanList(); this.loadOpsList(); this.readWhiteList(); this.saveOpsList(); if (!this.getWhitelistedPlayers().getSaveFile().exists()) { this.saveWhiteList(); } } public void setWhiteListEnabled(boolean whitelistEnabled) { super.setWhiteListEnabled(whitelistEnabled); this.getServerInstance().setProperty("white-list", Boolean.valueOf(whitelistEnabled)); this.getServerInstance().saveProperties(); } public void addOp(GameProfile profile) { super.addOp(profile); this.saveOpsList(); } public void removeOp(GameProfile profile) { super.removeOp(profile); this.saveOpsList(); } public void removePlayerFromWhitelist(GameProfile profile) { super.removePlayerFromWhitelist(profile); this.saveWhiteList(); } public void addWhitelistedPlayer(GameProfile profile) { super.addWhitelistedPlayer(profile); this.saveWhiteList(); } /** * Either does nothing, or calls readWhiteList. */ public void loadWhiteList() { this.readWhiteList(); } private void saveIpBanList() { try { this.getBannedIPs().writeChanges(); } catch (IOException ioexception) { LOGGER.warn("Failed to save ip banlist: ", ioexception); } } private void saveUserBanList() { try { this.getBannedPlayers().writeChanges(); } catch (IOException ioexception) { LOGGER.warn("Failed to save user banlist: ", ioexception); } } private void loadIpBanList() { try { this.getBannedIPs().readSavedFile(); } catch (IOException ioexception) { LOGGER.warn("Failed to load ip banlist: ", ioexception); } } private void loadUserBansList() { try { this.getBannedPlayers().readSavedFile(); } catch (IOException ioexception) { LOGGER.warn("Failed to load user banlist: ", ioexception); } } private void loadOpsList() { try { this.getOppedPlayers().readSavedFile(); } catch (Exception exception) { LOGGER.warn("Failed to load operators list: ", exception); } } private void saveOpsList() { try { this.getOppedPlayers().writeChanges(); } catch (Exception exception) { LOGGER.warn("Failed to save operators list: ", exception); } } private void readWhiteList() { try { this.getWhitelistedPlayers().readSavedFile(); } catch (Exception exception) { LOGGER.warn("Failed to load white-list: ", exception); } } private void saveWhiteList() { try { this.getWhitelistedPlayers().writeChanges(); } catch (Exception exception) { LOGGER.warn("Failed to save white-list: ", exception); } } public boolean canJoin(GameProfile profile) { return !this.isWhiteListEnabled() || this.canSendCommands(profile) || this.getWhitelistedPlayers().func_152705_a(profile); } public DedicatedServer getServerInstance() { return (DedicatedServer)super.getServerInstance(); } }