Помогите Пропадает подсветка при определенных действиях

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

Phizzle

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
Phizzle
Привет всем, версия ядра Paper 1.13.2. Я использую
PHP:
    public static void sendGlowing(Player player, Player who, boolean glow) {
        if (player == null || who == null) {
            return;
        }

        Entity nmsEntity = ((CraftPlayer) who).getHandle();

        DataWatcher toCloneDataWatcher = nmsEntity.getDataWatcher();
        DataWatcher newDataWatcher = new DataWatcher(nmsEntity);

        Map<Integer, DataWatcher.Item<?>> currentMap = ReflectionUtils.getFieldValue(toCloneDataWatcher, "d");
        Map<Integer, DataWatcher.Item<?>> newMap = new HashMap<>();

        for (Integer integer : currentMap.keySet()) {
            newMap.put(integer, currentMap.get(integer).d());
        }

        DataWatcher.Item item = newMap.get(0);
        byte initialBitMask = (Byte) item.b();
        byte bitMaskIndex = (byte) 6;
        item.a((byte) (glow ? (initialBitMask | 1 << bitMaskIndex) : (initialBitMask & ~(1 << bitMaskIndex))));

        ReflectionUtils.setFieldValue(newDataWatcher, "d", newMap);

        PacketPlayOutEntityMetadata metadataPacket = new PacketPlayOutEntityMetadata(who.getEntityId(),
                newDataWatcher, true);

        sendPacket(player, metadataPacket);
    }

Когда игрок выполняет опред. действия, подсветка этого игрока пропадает у всех.
Найденые действия: приседание, бег, ПКМ по игроку
 
Последнее редактирование:
Оптимизация 80лвл player.setGlowing(true); :D
так я выдаю подсветку с помощью nms, чтобы игрок который ее включил видел всех подсвеченными, а они друг друга видели обычными (без подсветки)
 
так я выдаю подсветку с помощью nms, чтобы игрок который ее включил видел всех подсвеченными, а они друг друга видели обычными (без подсветки)
А и не получится так. Там при каждой отправке метадаты будет сбрасывать. Тебе нужен ивент protocollib-a. Сразу бы на нем все и делал. И работать бстрее будет без рефлексии.
 
А и не получится так. Там при каждой отправке метадаты будет сбрасывать. Тебе нужен ивент protocollib-a. Сразу бы на нем все и делал. И работать бстрее будет без рефлексии.
Спасибо, попробую

Тема закрыта.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх