    001package net.minecraft.server.integrated;
    002
    003import cpw.mods.fml.relauncher.Side;
    004import cpw.mods.fml.relauncher.SideOnly;
    005import java.net.SocketAddress;
    006import net.minecraft.entity.player.EntityPlayerMP;
    007import net.minecraft.nbt.NBTTagCompound;
    008import net.minecraft.server.MinecraftServer;
    009import net.minecraft.server.management.ServerConfigurationManager;
    010
    011@SideOnly(Side.CLIENT)
    012public 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}