Помогите Как изменить текст сверху игрока

  • Автор темы Автор темы Boss90
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Boss90

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
Boss90
Здравствуйте! У меня возник вопрос, как изменить текст сверху игрока? (Где его ник)
Нужно этот текст снизу изменить.
upload_2021-8-8_18-41-1.png
 
Здравствуйте! У меня возник вопрос, как изменить текст сверху игрока? (Где его ник)
Нужно этот текст снизу изменить.
Посмотреть вложение 60107
Через подмену поля в GameProfile игрока, и обновления пакетами

Код:
    public static void setPlayerName(Player p, String name) {
        GameProfile gp = ((CraftPlayer)p).getProfile();
        try {
            Field nameField = GameProfile.class.getDeclaredField("name");
            nameField.setAccessible(true);
            nameField.set(gp, name);
            nameField.setAccessible(false);
        } catch (IllegalAccessException | NoSuchFieldException ex) {
            throw new IllegalStateException(ex);
        }
        for (Player pl : Bukkit.getOnlinePlayers()) {
            if (pl == p) continue;
            ((CraftPlayer)pl).getHandle().playerConnection.sendPacket(new PacketPlayOutEntityDestroy(p.getEntityId()));
            ((CraftPlayer)pl).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, ((CraftPlayer)p).getHandle()));
            ((CraftPlayer)pl).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, ((CraftPlayer)p).getHandle()));
            ((CraftPlayer)pl).getHandle().playerConnection.sendPacket(new PacketPlayOutNamedEntitySpawn(((CraftPlayer)p).getHandle()));
        }
    }
 
Через подмену поля в GameProfile игрока, и обновления пакетами

Код:
    public static void setPlayerName(Player p, String name) {
        GameProfile gp = ((CraftPlayer)p).getProfile();
        try {
            Field nameField = GameProfile.class.getDeclaredField("name");
            nameField.setAccessible(true);
            nameField.set(gp, name);
            nameField.setAccessible(false);
        } catch (IllegalAccessException | NoSuchFieldException ex) {
            throw new IllegalStateException(ex);
        }
        for (Player pl : Bukkit.getOnlinePlayers()) {
            if (pl == p) continue;
            ((CraftPlayer)pl).getHandle().playerConnection.sendPacket(new PacketPlayOutEntityDestroy(p.getEntityId()));
            ((CraftPlayer)pl).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, ((CraftPlayer)p).getHandle()));
            ((CraftPlayer)pl).getHandle().playerConnection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, ((CraftPlayer)p).getHandle()));
            ((CraftPlayer)pl).getHandle().playerConnection.sendPacket(new PacketPlayOutNamedEntitySpawn(((CraftPlayer)p).getHandle()));
        }
    }
Спасибо огромное!) Но можно узнать, как получить ник игрока? С которого игрок зашёл изначально.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх