How to delete fake player from tab?

Discussion in 'Spigot Plugin Development' started by Dark4ty, May 23, 2015.

  1. How could I delete a fake player (who isn't online) from the tab list?
     
    #1 Dark4ty, May 23, 2015
    Last edited: May 23, 2015
  2. Which plugin are you using?
     
  3. I'm using my own Plugin, it changes the skin and name from a Player but when the player use /unnick the old(fake) names are still in the tab
     
  4. I can help you if you share the code, because is a problem from your code
     
  5. Code (Text):
    package de.gs.skin;

    import java.lang.reflect.Field;
    import java.lang.reflect.Modifier;
    import java.util.Arrays;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map.Entry;
    import java.util.UUID;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;

    import net.minecraft.server.v1_8_R2.EntityPlayer;
    import net.minecraft.server.v1_8_R2.PacketPlayOutEntityDestroy;
    import net.minecraft.server.v1_8_R2.PacketPlayOutNamedEntitySpawn;
    import net.minecraft.server.v1_8_R2.PacketPlayOutPlayerInfo;
    import net.minecraft.server.v1_8_R2.PacketPlayOutPlayerInfo.EnumPlayerInfoAction;
    import net.minecraft.server.v1_8_R2.PlayerConnection;

    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer;
    import org.bukkit.craftbukkit.v1_8_R2.util.CraftChatMessage;
    import org.bukkit.entity.Player;

    import com.mojang.authlib.GameProfile;

    public class ChangeNick {

        private static ExecutorService pool = Executors.newCachedThreadPool();
        private static Field modifiers = getField(Field.class, "modifiers");
        private static Field playerUuidField = getField(PacketPlayOutNamedEntitySpawn.class, "b");
        private static Field actionField = getField(PacketPlayOutPlayerInfo.class, "a");
        private static Field dataField = getField(PacketPlayOutPlayerInfo.class, "b");
        private static Field nameField = getField(GameProfile.class, "name");


        public static void updateNick(Player p){
       
            PacketPlayOutEntityDestroy despawn = new PacketPlayOutEntityDestroy(((CraftPlayer) p).getHandle().getId());
            PacketPlayOutPlayerInfo removeProfile = new PacketPlayOutPlayerInfo();
            setInfo(removeProfile, EnumPlayerInfoAction.REMOVE_PLAYER, removeProfile.new PlayerInfoData(((CraftPlayer) p).getProfile(), -1, null, null));

       
            for (Player player : Bukkit.getOnlinePlayers()) {
           
                if(player != p){

                  // player.hidePlayer(p);
           
           
                }
           
            }
           
        }


        public static void nick(final Player p, final String name) {
       
           pool.execute(new Runnable() {
              @Override
              public void run() {
                 try {        
                 
                    GameProfile prof = GameProfileBuilder.fetch(UUIDFetcher.getUUID(ChatColor.stripColor(name)));
                    nameField.set(prof, name);
               
                    EntityPlayer entity = ((CraftPlayer) p).getHandle();
               
                    PacketPlayOutEntityDestroy despawn = new PacketPlayOutEntityDestroy(entity.getId());
               
               

                    PacketPlayOutPlayerInfo removeProfile = new PacketPlayOutPlayerInfo();
                    setInfo(removeProfile, EnumPlayerInfoAction.REMOVE_PLAYER, removeProfile.new PlayerInfoData(entity.getProfile(), -1, null, null));

               
                    PacketPlayOutPlayerInfo info = new PacketPlayOutPlayerInfo();
                    setInfo(info, EnumPlayerInfoAction.ADD_PLAYER, info.new PlayerInfoData(prof, entity.ping, entity.playerInteractManager.getGameMode(), CraftChatMessage.fromString(name)[0]));

               
                    PacketPlayOutNamedEntitySpawn spawn = new PacketPlayOutNamedEntitySpawn(entity);
                    playerUuidField.set(spawn, prof.getId());
         
               
                    @SuppressWarnings("unchecked")
                    List<Player> players = (List<Player>) Bukkit.getOnlinePlayers();
               
                    synchronized (players) {
                       for (Player player : players) {

                       
                          PlayerConnection connection = ((CraftPlayer) player).getHandle().playerConnection;
                     
                     
                          for(PacketPlayOutEntityDestroy des : despawnlist.values()){
                              for(Entry<UUID, PacketPlayOutEntityDestroy> entry : despawnlist.entrySet()){
                             
                                  if (entry.getValue().equals(des)) {
                                      if(!entry.getKey().equals(player.getUniqueId()))
                                              connection.sendPacket(des);
                                  }
                             
                         
                     
                          }
                         
                     
                          for(PacketPlayOutPlayerInfo rmvp : removeProfilelist.values()){
                              for(Entry<UUID, PacketPlayOutPlayerInfo> entry : removeProfilelist.entrySet()){
                             
                                  if (entry.getValue().equals(rmvp)) {
                                      if(!entry.getKey().equals(player.getUniqueId()))
                                              connection.sendPacket(rmvp);
                                  }
                              }
                          }
                     
                     
                     
                     
                     
                           }
                       
                       }
                       
                    }
               
                    synchronized (this) {
                       wait(50L);              
                    }
               
                    synchronized (players) {
                       for (Player player : players) {

                          PlayerConnection connection = ((CraftPlayer) player).getHandle().playerConnection;
                     
                     
                          for(PacketPlayOutPlayerInfo inf : infolist.values()){
                              for(Entry<UUID, PacketPlayOutPlayerInfo> entry : infolist.entrySet()){
                             
                                  if (entry.getValue().equals(inf)) {
                                      if(!entry.getKey().equals(player.getUniqueId()))
                                              connection.sendPacket(inf);
                                  }
                              }
                          }
                     
                          for(PacketPlayOutNamedEntitySpawn spwn : spawnlist.values()){
                              for(Entry<UUID, PacketPlayOutNamedEntitySpawn> entry : spawnlist.entrySet()){
                             
                                  if (entry.getValue().equals(spwn)) {
                                          if(!entry.getKey().equals(player.getUniqueId()))
                                              connection.sendPacket(spwn);
                                  }
                              }
                          }
                     
                     
                     
                   
                       }
                    }
                 } catch (Exception e) {
                    e.printStackTrace();
                 }
              }
           });
        }


        private static PacketPlayOutPlayerInfo setInfo(PacketPlayOutPlayerInfo packet, EnumPlayerInfoAction action, PacketPlayOutPlayerInfo.PlayerInfoData data) {
           try {
              actionField.set(packet, action);
              dataField.set(packet, Arrays.asList(data));
           } catch (Exception e) {
              e.printStackTrace();
           }
           return packet;
        }



        private static Field getField(Class<?> clazz, String name) {
           try {
              Field field = clazz.getDeclaredField(name);
              field.setAccessible(true);
         
              if (Modifier.isFinal(field.getModifiers())) {
                 modifiers.set(field, field.getModifiers() & ~Modifier.FINAL);
              }
         
              return field;
           } catch (Exception e) {
              e.printStackTrace();
           }
           return null;
        }


    }
     
    Unnick Command
    Code (Text):
                         String nn = "§a" + p.getName() + "§f";
       
                     
                             p.setPlayerListName(nn);
                             p.setDisplayName(nn);
                         
                           ChangeNick.delPlayer(p.getUniqueId());
                           ChangeNick.nick(p, nn);
                           ChangeNick.updateNick(p);

                     
     
    #5 Dark4ty, May 23, 2015
    Last edited: May 24, 2015
  6. I already do this with
    Code (Text):
    EnumPlayerInfoAction.REMOVE_PLAYER
    , doesn't I?
     
  7. You only seem to be removing the real Player Info before nicknaming, not the fake ones. You'll need to save the Player Info for the fake ones and remove it when the player is nicknamed again.
     
  8. I tried to remove the fake player with my new code, but it's still not working
    Code (Text):
        public static void updateNick(Player p){
           
            if(p == null)
                return;
           
            PacketPlayOutEntityDestroy despawn = null;
            PacketPlayOutPlayerInfo removeProfile = null;
           
            for(UUID puuid : despawnlist.keySet()){
                if(p.getUniqueId().equals(puuid)){
                    despawn = despawnlist.get(puuid);
                }
            }

           
            for(UUID puuid : removeProfilelist.keySet()){
                if(p.getUniqueId().equals(puuid)){
                    removeProfile = removeProfilelist.get(puuid);
                }
            }
           
           
            if(despawn != null && removeProfile != null){
               
                for (Player player : Bukkit.getOnlinePlayers()) {
                   
                        if(player != p){
                       
                            PlayerConnection connection = ((CraftPlayer) player).getHandle().playerConnection;
                     
                            connection.sendPacket(despawn);
                            connection.sendPacket(removeProfile);      

                        }
                       
                    }
               
            }
           
           

               
        }
     
  9. You must destroy the Gameprofile from the nicked Player.
    • get the GameProfile
    • define a PacketPlayOutPlayerInfo with action REMOVE_PLAYER
    • and set the playerinfo over the instance from the defined packet
    Example:

    Code (Text):
    PacketPlayOutPlayerInfo removeProfile = new PacketPlayOutPlayerInfo();
    setInfo(removeProfile, EnumPlayerInfoAction.REMOVE_PLAYER, removeProfile.new PlayerInfoData(put here the gameprofile, entity.ping, null, null));
     
    • Winner Winner x 4
    • Agree Agree x 1
  10. I was wrong, it's still buggie... If I type /unnick the name in the tab doesn't update by the sender but by the other players it does. Here are some screenshots..
    [​IMG]
    [​IMG] [​IMG]
    My ChangeNick class
    Code (Text):
    package de.gs.skin;

    import java.lang.reflect.Field;
    import java.lang.reflect.Modifier;
    import java.util.Arrays;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map.Entry;
    import java.util.UUID;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;

    import net.minecraft.server.v1_8_R2.EntityPlayer;
    import net.minecraft.server.v1_8_R2.PacketPlayOutEntityDestroy;
    import net.minecraft.server.v1_8_R2.PacketPlayOutNamedEntitySpawn;
    import net.minecraft.server.v1_8_R2.PacketPlayOutPlayerInfo;
    import net.minecraft.server.v1_8_R2.PacketPlayOutPlayerInfo.EnumPlayerInfoAction;
    import net.minecraft.server.v1_8_R2.PlayerConnection;

    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer;
    import org.bukkit.craftbukkit.v1_8_R2.util.CraftChatMessage;
    import org.bukkit.entity.Player;

    import com.mojang.authlib.GameProfile;

    public class ChangeNick {

        private static ExecutorService pool = Executors.newCachedThreadPool();
        private static Field modifiers = getField(Field.class, "modifiers");
        private static Field playerUuidField = getField(PacketPlayOutNamedEntitySpawn.class, "b");
        private static Field actionField = getField(PacketPlayOutPlayerInfo.class, "a");
        private static Field dataField = getField(PacketPlayOutPlayerInfo.class, "b");
        private static Field nameField = getField(GameProfile.class, "name");




        private static  HashMap<UUID, PacketPlayOutPlayerInfo> removeprofilelist = new HashMap<UUID, PacketPlayOutPlayerInfo>();
        private static  HashMap<UUID, PacketPlayOutEntityDestroy> despawnlist = new HashMap<UUID, PacketPlayOutEntityDestroy>();
        private static HashMap<UUID, PacketPlayOutPlayerInfo> infolist = new HashMap<UUID, PacketPlayOutPlayerInfo>();
        private static HashMap<UUID, PacketPlayOutNamedEntitySpawn> spawnlist = new HashMap<UUID, PacketPlayOutNamedEntitySpawn>();


        public static void delPlayer(UUID p){
            if(despawnlist.containsKey(p))
                despawnlist.remove(p);
            if(infolist.containsKey(p))
                infolist.remove(p);
            if(spawnlist.containsKey(p))
                spawnlist.remove(p);
        }



        public static void nick(final Player p, final String name) {
     
           pool.execute(new Runnable() {
              @Override
              public void run() {
                 try {      
               
             
                    GameProfile prof = GameProfileBuilder.fetch(UUIDFetcher.getUUID(ChatColor.stripColor(name)));
                    nameField.set(prof, name);
             
                    EntityPlayer entity = ((CraftPlayer) p).getHandle();
             
                    PacketPlayOutEntityDestroy despawn = new PacketPlayOutEntityDestroy(entity.getId());
             
             

                    PacketPlayOutPlayerInfo removeProfile = new PacketPlayOutPlayerInfo();
                    setInfo(removeProfile, EnumPlayerInfoAction.REMOVE_PLAYER, removeProfile.new PlayerInfoData(entity.getProfile(), -1, null, null));

             
                    PacketPlayOutPlayerInfo info = new PacketPlayOutPlayerInfo();
                    setInfo(info, EnumPlayerInfoAction.ADD_PLAYER, info.new PlayerInfoData(prof, entity.ping, entity.playerInteractManager.getGameMode(), CraftChatMessage.fromString(name)[0]));

             
                    PacketPlayOutNamedEntitySpawn spawn = new PacketPlayOutNamedEntitySpawn(entity);
                    playerUuidField.set(spawn, prof.getId());
             
             
             
                    removeprofilelist.put(p.getUniqueId(), removeProfile);
                    despawnlist.put(p.getUniqueId(), despawn);    
                    infolist.put(p.getUniqueId(), info);
                    spawnlist.put(p.getUniqueId(), spawn);
             
                    @SuppressWarnings("unchecked")
                    List<Player> players = (List<Player>) Bukkit.getOnlinePlayers();
             
                    synchronized (players) {
                       for (Player player : players) {

    //                       if(player != p){
                     
                          PlayerConnection connection = ((CraftPlayer) player).getHandle().playerConnection;
                   
                   
                          for(PacketPlayOutEntityDestroy des : despawnlist.values()){
                              for(Entry<UUID, PacketPlayOutEntityDestroy> entry : despawnlist.entrySet()){
                           
                                  if (entry.getValue().equals(des)) {
                                      if(!entry.getKey().equals(player.getUniqueId()))
                                              connection.sendPacket(des);
                                  }
                   
    //                          }
                             }
                          }
                       
                   
                          for(PacketPlayOutPlayerInfo rmvp : removeprofilelist.values()){
                              for(Entry<UUID, PacketPlayOutPlayerInfo> entry : removeprofilelist.entrySet()){
                           
                                  if (entry.getValue().equals(rmvp)) {
                                      if(!entry.getKey().equals(player.getUniqueId()))
                                              connection.sendPacket(rmvp);
                                  }
                              }
                          }
                   
                   
                   
                   
                   
                          }
                   
                   
                    }
                     
         
             
             
                    synchronized (this) {
                       wait(50L);            
                    }
             
                    synchronized (players) {
                       for (Player player : players) {

                          PlayerConnection connection = ((CraftPlayer) player).getHandle().playerConnection;
                   
                   
                          for(PacketPlayOutPlayerInfo inf : infolist.values()){
                              for(Entry<UUID, PacketPlayOutPlayerInfo> entry : infolist.entrySet()){
                           
                                  if (entry.getValue().equals(inf)) {
                                      if(!entry.getKey().equals(player.getUniqueId()))
                                              connection.sendPacket(inf);
                                  }
                              }
                          }
                   
                   
                          for(PacketPlayOutNamedEntitySpawn spwn : spawnlist.values()){
                              for(Entry<UUID, PacketPlayOutNamedEntitySpawn> entry : spawnlist.entrySet()){
                           
                                  if (entry.getValue().equals(spwn)) {
                                          if(!entry.getKey().equals(player.getUniqueId()))
                                              connection.sendPacket(spwn);
                                  }
                              }
                          }
                   
                   
                   
                 
                       }
                    }
                 } catch (Exception e) {
                    e.printStackTrace();
                 }
              }
           });
        }


        private static PacketPlayOutPlayerInfo setInfo(PacketPlayOutPlayerInfo packet, EnumPlayerInfoAction action, PacketPlayOutPlayerInfo.PlayerInfoData data) {
           try {
              actionField.set(packet, action);
              dataField.set(packet, Arrays.asList(data));
           } catch (Exception e) {
              e.printStackTrace();
           }
           return packet;
        }



        private static Field getField(Class<?> clazz, String name) {
           try {
              Field field = clazz.getDeclaredField(name);
              field.setAccessible(true);
       
              if (Modifier.isFinal(field.getModifiers())) {
                 modifiers.set(field, field.getModifiers() & ~Modifier.FINAL);
              }
       
              return field;
           } catch (Exception e) {
              e.printStackTrace();
           }
           return null;
        }


    }
     
    My unnick command
    Code (Text):
        public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
            if(commandLabel.equalsIgnoreCase("unnick")){
       
       
                Player p = (Player) sender;
                String nn = "§c" + p.getName() + "§f";
                ChangeNick.nick(p, nn);
                   
                p.sendMessage((plugin.getConfig().getString("AutoNick.Messages.Unnick.message")).replace("<Player>", nn));
            }
        }
     
    #12 Dark4ty, May 25, 2015
    Last edited: May 25, 2015
  11. Do you save the new Gameprofile from the nicked player?
     
  12. You forget to also delete the faked message for yourself :) right?
     
  13. Yes you're right! I'll test it out in a few days :)
     
  14. No I'm not, how could i do that?
     
  15. I belive you can just hide the fake player from every player online:
    Code (Text):
    for (Player p: Bukkit.getOnlinePlayers()) {
    Player fakePlayer; //the fake
    p.hidePlayer(fakePlayer);
    }
     
  16. Yes would be an Idea, but the fake plaer isn't an online Player.
     
  17. Have you tried:

    Code (Text):
    EntityPlayer other = ((CraftPlayer)player).getHandle();
    ((CraftPlayer)playerToBeSentTo).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, new EntityPlayer[] { other }));
     
  18. Okay, I tried my best (with your code snippet @Friwi and @JPG2000) but it's still not working :(
    My idea was :
    1. Delete the fake player
    2. Delete the real player
    3. Add the new player

    But I'm only deleting me from my own tab and not from the others tabs.
    Here's my new code :
    Code (Text):

        public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {

            if(commandLabel.equalsIgnoreCase("unnick")){

                    Player p = (Player) sender;
                    String nn = "§5" + p.getName() + "§f";

                     ChangeNick.DeleteFakePlayersNick(p.getPlayerListName());     //Delete OLD nick
                     ChangeNick.DeleteFakePlayersNick(((CraftPlayer) p).getHandle()); //Delete CURRENT name
             
    //                for(Player allP : Bukkit.getOnlinePlayers()){
    //                    allP.hidePlayer(p);
    //                }
         
                    p.setDisplayName(nn);
                    ChangeNick.updateNick(p, nn);
                     
                    p.sendMessage((plugin.getConfig().getString("AutoNick.Messages.Unnick.message")).replace("<Player>", nn));
         
         
                return true;
            }
     
     
     
            return false;

        }
       
    Code (Text):
        private static HashMap<String, EntityPlayer> allFakeNicks = new HashMap<String, EntityPlayer>();

        private static  HashMap<UUID, PacketPlayOutPlayerInfo> removeprofilelist = new HashMap<UUID, PacketPlayOutPlayerInfo>();
        private static  HashMap<UUID, PacketPlayOutEntityDestroy> despawnlist = new HashMap<UUID, PacketPlayOutEntityDestroy>();
        private static HashMap<UUID, PacketPlayOutPlayerInfo> infolist = new HashMap<UUID, PacketPlayOutPlayerInfo>();
        private static HashMap<UUID, PacketPlayOutNamedEntitySpawn> spawnlist = new HashMap<UUID, PacketPlayOutNamedEntitySpawn>();


        public static void delPFromHashmaps(UUID p){
     
            System.out.println("UUID is " + p);
     
            for(UUID ui : despawnlist.keySet())
                System.out.println("UUid which is there : " + ui);
     
            if(despawnlist.containsKey(p))
                despawnlist.remove(p);
            if(removeprofilelist.containsKey(p))
                removeprofilelist.remove(p);
            if(infolist.containsKey(p))
                infolist.remove(p);
            if(spawnlist.containsKey(p))
                spawnlist.remove(p);
        }

        public static void DeleteFakePlayersNick(EntityPlayer withIfE){
     
            EntityPlayer other = withIfE;
     
            for(Player allPlayers : Bukkit.getServer().getOnlinePlayers()){
                ((CraftPlayer)allPlayers).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, new EntityPlayer[] { other }));
                System.out.println("EntityPlayer : Deleting Player '" + other + "' from '"+ allPlayers +"'.");
            }
     
            delPFromHashmaps(other.getUniqueID());
     
        }


        public static void DeleteFakePlayersNick(String Nick){
            for(String allNicks : allFakeNicks.keySet()){
                if(Nick.equals(allNicks)){
             
                    EntityPlayer other = allFakeNicks.get(allNicks);
             
                    for(Player allPlayers : Bukkit.getServer().getOnlinePlayers()){
                         ((CraftPlayer)allPlayers).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, new EntityPlayer[] { other }));
                          System.out.println("Nick : Deleting Player '" + allNicks + "' from '"+ allPlayers +"'.");
                    }
             
                    delPFromHashmaps(other.getUniqueID());
             
                }
            }
        }

        //Spawn the new Player
        public static void updateNick(final Player p, final String name) {
            pool.execute(new Runnable() {
                  @Override
                  public void run() {
                     try {      
                 
                        System.out.println("Update nick! in " + name);
                   
                        if(!allFakeNicks.containsKey(name))
                            allFakeNicks.put(name, ((CraftPlayer) p).getHandle());
                        else
                            System.out.println("Bug! AllFakeNicks contains key " + name);
                 
                        GameProfile prof = GameProfileBuilder.fetch(UUIDFetcher.getUUID(ChatColor.stripColor(name)));
                        nameField.set(prof, name);
                 
                        EntityPlayer entity = ((CraftPlayer) p).getHandle();
                 
                        PacketPlayOutPlayerInfo info = new PacketPlayOutPlayerInfo();
                        setInfo(info, EnumPlayerInfoAction.ADD_PLAYER, info.new PlayerInfoData(prof, entity.ping, entity.playerInteractManager.getGameMode(), CraftChatMessage.fromString(name)[0]));

                 
                        PacketPlayOutNamedEntitySpawn spawn = new PacketPlayOutNamedEntitySpawn(entity);
                        playerUuidField.set(spawn, prof.getId());
                 
                 
                        @SuppressWarnings("unchecked")
                        List<Player> players = (List<Player>) Bukkit.getOnlinePlayers();
                 
                 
                        //Add new Player  
                        synchronized (players) {
                           for (Player player : players) {
                         
                                   if(!player.equals(p)){
                                       PlayerConnection connection = ((CraftPlayer) player).getHandle().playerConnection;
                                       connection.sendPacket(info);
                                       connection.sendPacket(spawn);
                                   }
                             
                           }
                        }
                     } catch (Exception e) {
                        e.printStackTrace();
                     }
                  }
               });
        }
       
    Code (Text):
    [14:05:48] [Server thread/INFO]: Alexander247[/127.0.0.1:51286] logged in with entity id 66950 at ([world]33.699999988079085, 78.0, 239.69999998807907)
    [14:05:51] [Server thread/INFO]: Niclas253[/127.0.0.1:51289] logged in with entity id 66987 at ([world]33.77003425191478, 86.0, 235.82811338333744)
    [14:05:55] [Netty Server IO #1/INFO]: 2
    [14:05:55] [Netty Server IO #1/INFO]: [0;30;1m>> [0;32;1mRacccccer12 : [0;33;22mI am Racccccer12! *_*.[m
    [14:06:00] [Server thread/INFO]: Niclas253 issued server command: /unnick
    [14:06:00] [Server thread/INFO]: Nick : Deleting Player '§aRacccccer12' from 'CraftPlayer{name=Alexander247}'.
    [14:06:00] [Server thread/INFO]: Nick : Deleting Player '§aRacccccer12' from 'CraftPlayer{name=Niclas253}'.
    [14:06:00] [Server thread/INFO]: UUID is 0cc87b03-9bff-3e09-80fe-7485ab31db71
    [14:06:00] [Server thread/INFO]: UUid which is there : 0cc87b03-9bff-3e09-80fe-7485ab31db71
    [14:06:00] [Server thread/INFO]: UUid which is there : 43f249d2-b743-3adb-a258-7baba9b7c0b6
    [14:06:00] [Server thread/INFO]: EntityPlayer : Deleting Player 'EntityPlayer['Niclas253'/66987, l='world', x=33,77, y=70,00, z=235,83](Niclas253 at 33.77003425191478,70.0,235.82811338333744)' from 'CraftPlayer{name=Alexander247}'.
    [14:06:00] [Server thread/INFO]: EntityPlayer : Deleting Player 'EntityPlayer['Niclas253'/66987, l='world', x=33,77, y=70,00, z=235,83](Niclas253 at 33.77003425191478,70.0,235.82811338333744)' from 'CraftPlayer{name=Niclas253}'.
    [14:06:00] [Server thread/INFO]: UUID is 0cc87b03-9bff-3e09-80fe-7485ab31db71
    [14:06:00] [Server thread/INFO]: UUid which is there : 43f249d2-b743-3adb-a258-7baba9b7c0b6
    [14:06:00] [pool-199-thread-1/INFO]: Update nick! in §aNiclas253§f
    [14:06:17] [Netty Server IO #1/INFO]: 2
    [14:06:17] [Netty Server IO #1/INFO]: [0;30;1m>> [0;32;1mNiclas253[0;37;1m : [0;33;22mand now I'm Niclas253.[m
    [14:06:33] [Netty Server IO #0/INFO]: 2
    [14:06:33] [Netty Server IO #0/INFO]: [0;30;1m>> [0;32;1mez : [0;33;22mNo you're not...[m
     
    #20 Dark4ty, May 30, 2015
    Last edited: May 30, 2015