package net.minecraft.client.multiplayer; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ChatComponentTranslation; import net.minecraft.util.IChatComponent; @SideOnly(Side.CLIENT) public class ServerData { public String serverName; public String serverIP; /** * the string indicating number of players on and capacity of the server that is shown on the server browser (i.e. * "5/20" meaning 5 slots used out of 20 slots total) */ public String populationInfo; /** * (better variable name would be 'hostname') server name as displayed in the server browser's second line (grey * text) */ public String serverMOTD; /** last server ping that showed up in the server browser */ public long pingToServer; public int version; /** Game version for this server. */ public String gameVersion; public boolean field_78841_f; public String playerList; private ServerData.ServerResourceMode resourceMode; private String serverIcon; private boolean lanServer; private static final String __OBFID = "CL_00000890"; public ServerData(String p_i1193_1_, String p_i1193_2_) { this.version = 5; this.gameVersion = "1.7.10"; this.resourceMode = ServerData.ServerResourceMode.PROMPT; this.serverName = p_i1193_1_; this.serverIP = p_i1193_2_; } public ServerData(String p_i1055_1_, String p_i1055_2_, boolean p_i1055_3_) { this(p_i1055_1_, p_i1055_2_); this.lanServer = p_i1055_3_; } /** * Returns an NBTTagCompound with the server's name, IP and maybe acceptTextures. */ public NBTTagCompound getNBTCompound() { NBTTagCompound nbttagcompound = new NBTTagCompound(); nbttagcompound.setString("name", this.serverName); nbttagcompound.setString("ip", this.serverIP); if (this.serverIcon != null) { nbttagcompound.setString("icon", this.serverIcon); } if (this.resourceMode == ServerData.ServerResourceMode.ENABLED) { nbttagcompound.setBoolean("acceptTextures", true); } else if (this.resourceMode == ServerData.ServerResourceMode.DISABLED) { nbttagcompound.setBoolean("acceptTextures", false); } return nbttagcompound; } public ServerData.ServerResourceMode getResourceMode() { return this.resourceMode; } public void setResourceMode(ServerData.ServerResourceMode mode) { this.resourceMode = mode; } /** * Takes an NBTTagCompound with 'name' and 'ip' keys, returns a ServerData instance. */ public static ServerData getServerDataFromNBTCompound(NBTTagCompound nbtCompound) { ServerData serverdata = new ServerData(nbtCompound.getString("name"), nbtCompound.getString("ip")); if (nbtCompound.hasKey("icon", 8)) { serverdata.setBase64EncodedIconData(nbtCompound.getString("icon")); } if (nbtCompound.hasKey("acceptTextures", 1)) { if (nbtCompound.getBoolean("acceptTextures")) { serverdata.setResourceMode(ServerData.ServerResourceMode.ENABLED); } else { serverdata.setResourceMode(ServerData.ServerResourceMode.DISABLED); } } else { serverdata.setResourceMode(ServerData.ServerResourceMode.PROMPT); } return serverdata; } /** * Returns the base-64 encoded representation of the server's icon, or null if not available */ public String getBase64EncodedIconData() { return this.serverIcon; } public void setBase64EncodedIconData(String icon) { this.serverIcon = icon; } public void copyFrom(ServerData serverDataIn) { this.serverIP = serverDataIn.serverIP; this.serverName = serverDataIn.serverName; this.setResourceMode(serverDataIn.getResourceMode()); this.serverIcon = serverDataIn.serverIcon; } public boolean isLanServer() { return this.lanServer; } @SideOnly(Side.CLIENT) public static enum ServerResourceMode { ENABLED("enabled"), DISABLED("disabled"), PROMPT("prompt"); private final IChatComponent motd; private static final String __OBFID = "CL_00001833"; private ServerResourceMode(String p_i1053_3_) { this.motd = new ChatComponentTranslation("addServer.resourcePack." + p_i1053_3_, new Object[0]); } public IChatComponent getMotd() { return this.motd; } } }