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