- Баллы
- 36
Приветствую! Я слежу за каждым сообщением которое получает игрок через пакет
PacketType.Play.Server.CHAT. Мне надо заменить в нем определенные слова на другие и так же проверить текст на наличие моего форматирование для применения hex цветов и hex градиентов. Все уже есть, проблема в том, что когда я изменяю именно тексты в компоненте чата, эти hex цвета и градиенты применяются не правильно (по итогу цвет другой). Hex цвета добавляю к строке через
net.md_5.bungee.api.ChatColor.of().
Я получаю WrappedChatComponent и его json из пакета, делаю массив из BaseComponent из этого json чтобы потом пройтись по нему через цикл, если BaseComponent является образцом TextComponent - изменить ему extra. Что я только не пробовал, заменял и extra, и сам текст через setText, ничего нормально не работает.
Можно конечно отредактировать строку и сделать из неё json чтобы потом изменить WrappedChatComponent из этого json. Всё будет супер, hex цвета, градиенты применятся отлично, но все ховер и клик ивенты которые уже были на сообщении будут потеряны.
ComponentSerializer.toString(TextComponent.fromLegacyText("string"))
Большое спасибо за ответ.
PacketType.Play.Server.CHAT. Мне надо заменить в нем определенные слова на другие и так же проверить текст на наличие моего форматирование для применения hex цветов и hex градиентов. Все уже есть, проблема в том, что когда я изменяю именно тексты в компоненте чата, эти hex цвета и градиенты применяются не правильно (по итогу цвет другой). Hex цвета добавляю к строке через
net.md_5.bungee.api.ChatColor.of().
Я получаю WrappedChatComponent и его json из пакета, делаю массив из BaseComponent из этого json чтобы потом пройтись по нему через цикл, если BaseComponent является образцом TextComponent - изменить ему extra. Что я только не пробовал, заменял и extra, и сам текст через setText, ничего нормально не работает.
Можно конечно отредактировать строку и сделать из неё json чтобы потом изменить WrappedChatComponent из этого json. Всё будет супер, hex цвета, градиенты применятся отлично, но все ховер и клик ивенты которые уже были на сообщении будут потеряны.
ComponentSerializer.toString(TextComponent.fromLegacyText("string"))
Большое спасибо за ответ.
Последнее редактирование: