Помогите Как отменить отображение игрока в табе?

  • Автор темы Автор темы slime_j
  • Дата начала Дата начала

slime_j

Участник
Пользователь
Баллы
36
Имя в Minecraft
slime_j
Я создал NPC и отправляю пакеты таким способом:
Код:
public static void addNPCPacket(EntityPlayer npc) {
            for(Player player : Bukkit.getOnlinePlayers()) {
                PlayerConnection connection = ((CraftPlayer)player).getHandle().b;
                connection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.a, npc));
                connection.sendPacket(new PacketPlayOutNamedEntitySpawn(npc));
                connection.sendPacket(new PacketPlayOutEntityHeadRotation(npc, (byte) (npc.getYRot() * 256/360)));
            }
    }
Мне нужно чтобы Никнейм над NPC отображался но в Табе(в списке игроков) он был не виден. Какой пакет или какой есть способ что бы это реализовать?
 
Последнее редактирование:
Я создал NPC и отправляю пакеты таким способом:
Код:
public static void addNPCPacket(EntityPlayer npc) {
            for(Player player : Bukkit.getOnlinePlayers()) {
                PlayerConnection connection = ((CraftPlayer)player).getHandle().b;
                connection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.a, npc));
                connection.sendPacket(new PacketPlayOutNamedEntitySpawn(npc));
                connection.sendPacket(new PacketPlayOutEntityHeadRotation(npc, (byte) (npc.getYRot() * 256/360)));
            }
    }
Мне нужно чтобы Никнейм над NPC отображался но в Табе(в списке игроков) он был не виден. Какой пакет или какой есть способ что бы это реализовать?
Код:
Bukkit.getScheduler().scheduleSyncDelayedTask(Main.getInstance(), new Runnable() {
            @Override
            public void run() {
                ((CraftPlayer) p).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.REMOVE_PLAYER, npc));
            }
        }, 1);
 
Код:
Bukkit.getScheduler().scheduleSyncDelayedTask(Main.getInstance(), new Runnable() {
            @Override
            public void run() {
                ((CraftPlayer) p).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.REMOVE_PLAYER, npc));
            }
        }, 1);
На версии 1 17 нету playerConection его заменили и теперь обозначает просто "b" вроде бы. А
EnumPlayerInfoAction.REMOVE_PLAYER я не знаю как теперь изменилось и не знаю где можно это посмотреть, знаю только то что ADD_PLAYER теперь обозначается как "a"
 
На версии 1 17 нету playerConection его заменили и теперь обозначает просто "b" вроде бы. А
EnumPlayerInfoAction.REMOVE_PLAYER я не знаю как теперь изменилось и не знаю где можно это посмотреть, знаю только то что ADD_PLAYER теперь обозначается как "a"
Так вы даже не указали какое у вас ядро, какая версия ядра, поэтому такой и ответ на ваш вопрос
 
На версии 1 17 нету playerConection его заменили и теперь обозначает просто "b" вроде бы. А
EnumPlayerInfoAction.REMOVE_PLAYER я не знаю как теперь изменилось и не знаю где можно это посмотреть, знаю только то что ADD_PLAYER теперь обозначается как "a"
Используй протоколлиб и будут тебе читаемые имена.
 
UPDATE_GAME_MODE - PacketPlayOutPlayerInfo.EnumPlayerInfoAction.b
UPDATE_LATENCY - PacketPlayOutPlayerInfo.EnumPlayerInfoAction.c
UPDATE_DISPLAY_NAME - PacketPlayOutPlayerInfo.EnumPlayerInfoAction.d
REMOVE_PLAYER - PacketPlayOutPlayerInfo.EnumPlayerInfoAction.e
 
Назад
Верх