001 package net.minecraft.src; 002 003 import cpw.mods.fml.common.Side; 004 import cpw.mods.fml.common.asm.SideOnly; 005 import java.net.SocketAddress; 006 import net.minecraft.server.MinecraftServer; 007 008 @SideOnly(Side.CLIENT) 009 public class IntegratedPlayerList extends ServerConfigurationManager 010 { 011 private NBTTagCompound tagsForLastWrittenPlayer = null; 012 013 public IntegratedPlayerList(IntegratedServer par1IntegratedServer) 014 { 015 super(par1IntegratedServer); 016 this.viewDistance = 10; 017 } 018 019 /** 020 * also stores the NBTTags if this is an intergratedPlayerList 021 */ 022 protected void writePlayerData(EntityPlayerMP par1EntityPlayerMP) 023 { 024 if (par1EntityPlayerMP.getCommandSenderName().equals(this.getIntegratedServer().getServerOwner())) 025 { 026 this.tagsForLastWrittenPlayer = new NBTTagCompound(); 027 par1EntityPlayerMP.writeToNBT(this.tagsForLastWrittenPlayer); 028 } 029 030 super.writePlayerData(par1EntityPlayerMP); 031 } 032 033 /** 034 * checks ban-lists, then white-lists, then space for the server. Returns null on success, or an error message 035 */ 036 public String allowUserToConnect(SocketAddress par1SocketAddress, String par2Str) 037 { 038 return par2Str.equalsIgnoreCase(this.getIntegratedServer().getServerOwner()) ? "That name is already taken." : super.allowUserToConnect(par1SocketAddress, par2Str); 039 } 040 041 /** 042 * get the associated Integrated Server 043 */ 044 public IntegratedServer getIntegratedServer() 045 { 046 return (IntegratedServer)super.getServerInstance(); 047 } 048 049 /** 050 * gets the tags created in the last writePlayerData call 051 */ 052 public NBTTagCompound getTagsFromLastWrite() 053 { 054 return this.tagsForLastWrittenPlayer; 055 } 056 057 public MinecraftServer getServerInstance() 058 { 059 return this.getIntegratedServer(); 060 } 061 }