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    }