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 }