Синхронизация данных игрока

Версия Minecraft
1.12.2
API
Forge
198
1
24
Нужно сделать мод, в котором у игрока будет несколько дополнительных характеристик, схожих с опытом - а точнее, расположение того или иного божества или демона к игроку, и для повышения/понижения значений нужны будут разные действия. Сами значения хранятся в Capabilities, но нужно как то синхронизировать значения между клиентом и сервером. Вот это как раз и не понятно. Документацию Forge в этом вопросе можно считать эталоном бесполезности, а искать в исходниках чужих модов - это как искать иголку в железнодорожном составе с сеном. На форуме я видел туториалы про то, как с помощью пакетов сообщить серверу что на клиенте нажата кнопка, но не видел ничего о том, как сделать чтобы изменения характеристик игрока на сервере отправлялись клиенту.
 
Решение
Это не всегда подходит, перезайдешь на сервер и на клиенте тег будет нул, если не слать пакет.
А вот этот вариант должен подойти
1,560
86
204
Как я знаю, Capabilities не обладает способностью синхронизации данных между сервером и клиентом. Просто при изменении значений кидай пакет на клиент, а на клиенте обновляй это значение в таком же Capability (чтобы потом отрисовать и т.д.).
 
198
1
24
Я вообще первый раз имею дело с Capabilities - и мне они показались просто ужасом - чтобы хранить несколько чисел, нужны целых 7 классов... Что касается отправки пакетов, то всё ещё хуже:
На форуме я видел туториалы про то, как с помощью пакетов сообщить серверу что на клиенте нажата кнопка, но не видел ничего о том, как сделать чтобы изменения характеристик игрока на сервере отправлялись клиенту.
 
167
10
69
Это не всегда подходит, перезайдешь на сервер и на клиенте тег будет нул, если не слать пакет.
А вот этот вариант должен подойти
 
198
1
24
3 для любого кол-ва инвы -_-
Ну, видимо я не нашёл годного источника информаци и по незнанию написал говнокод, который потом всё равно выкинул, т.к. он требовал ещё и обмена пакетами (брррр....).
В любом случае, я выбрал систему с EntityDataManager, чтобы не изжарить свой мозг необходимостью использовать сетевые пакеты (хотя кто знает, может по ходу дела мне ещё придётся столкнуться с этим ужасом).
Отдельное спасибо автору вот этого очень понятного и простого туториала. Это спасло мой мод от откладывания в долгий ящик и забвения.
 
Сверху