Синхронизация TileEntity

Версия Minecraft
1.7.10
API
Forge
236
4
22
Здравствуйте всем, у меня есть не большой вопрос про синхронизацию. Я уже вроде как спрашивал на этом форуме про такое - мне посоветовали смотреть код контейнера печи из Minecraft и "копипастить". Что ж, всё работало, пока не.... Пока не понадобилось отправить int числа, которые > Short.MAX_VALUE. Когда я такие числа посылаю - в одиночной игре всё хорошо отображается, "придраться" не к чему. Но вот если речь идёт о мултиплеере - там уже моя переменная режется и становиться -2045, 1000, 1023 и т.д., а должна быть 1 - 10.000.000. Как мне избежать эту проблему и передать информацию игрокам в GUI? (Хотелось бы посылать данные только для тех, кто смотрит в GUI меню, как в печке контейнера через #detectAndSendChanges(), ибо не хочу баганный мод, который будет молниеносно поедать трафик Интернета + просаживать TPS.

Я конечно видел что-то про дескрипшен пакеты, но в других форумах мне сказали, что они будут посылаться каждый тик всем и вся - а это не очень хорошо, как уже сказал я выше - мне нужно только тем игрокам отправить, которые смотрят в GUI.

Заранее спасибо, если кто-то ответит на эту тему. Попутно задам вопрос, можно ли отправить String данные?
 

Icosider

Kotliner
Администратор
3,600
99
663
Зачем отсылать каждый тик пакет даже если данные вообще не менялись? Понимаю.
Ты меня не понял походу. Мы изменили любые данные - установили changed на тру в сеттере - у себя в контейнере в detectAndSendChanges(он вызывается каждый тик) проверяем changed у тайла и если тру - отсылаем все данные и ставим на фолс. Иначе же ты будешь слать пакет постоянно, даже если ничего не меняется, это глупо.
Эм, кажется ты меня не понял) Он может у себя в своём сеттере сразу слать пакет, если конечно он данные не каждый тик сетает. А так да, лучше слать по флагу
 
7,099
324
1,509
Зачем? Можно же сразу отправить пакет. Можно конечно собирать данные в пачку и по времени отсылать(твой вариант), но есть такие случаи когда данные на клиенте нужны прямо сейчас
Можно каждый тик чекать, есть ли изменения и отсылать в этом случае. Сделать примерно то, что делает DataManager у сущностей
 
7,099
324
1,509
Я пропустил этот момент) И DataManager не упомянали, если ТС запарится с системой синхронизации, то имеет смысл хотя бы посмотреть как устроен DataManager
 
Сверху