Вопрос по синхронизации.

Версия Minecraft
1.12.2
После нескольки месяцев изучения lwjgl предстал вот такой вопрос.
Как синхронизировать пакетами классы клиента на сервер?
Ну то-есть представим, в майнкрафтовский класс Block.java я внес свои изменения, и по логике они работают только на синглплеере, а в мультиплеере нет т-к, в ядре сервера этих изменений нету.
Так вот, помогите разобраться как синхронизировать это все, не очень понимаю эту тему с пакетами:cry:

Если что (MCP1.12.2, Spigot V1_12_R1)
 
445
42
117
Опиши ,,изменения,, и чего ты хочешь достичь

,,Состояния,, блоков ,,синхронизируются,, автоматически, а локальные переменные (например в листве там или редстоуне) не нужно синхронизировать вовсе
 
Кратко-говоря, на клиенте в класс BlockLeaves я добавил строку
AxisAlignedBB:
@Override
    public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, IBlockAccess worldIn, BlockPos pos)
    {
        return NULL_AABB;
    }

Этот код убирает грубо говоря коллайд у блоков листья для игрока, в одиночном режиме оно работает, а в мультиплеере нет.
Достичь я хочу того, что бы понять как эту строку передать пакетом на ядро сервера, что бы сервер "воспринимал" мои действия
 
445
42
117
UPD Если не forge - то тебе придется написать свой загрузчик модов (или использовать встроенный от launchwrapper) (это не так сложно, как кажется) чтобы изменить класс. Ну или ручками, через замену классов
 
445
42
117
есть какая-то информация про использование laucnhwrapper в этом плане?
В ванильном клиенте (и сервере) есть этот ,,laucnhwrapper,, к-рый позволяет устанавливать модификации на ваниллу (на этом принципе работает forge) Информации по этому нет (Я в свое время не нашел). (подсмотри как работает forge) Кратко что это из себя представляет:
Laucnhwrapper - это некоторый прокси-загрузчик классов, указываешь для него Tweak-класс (в аргументах запуска), который выполняет манипуляции над исходным байт-кодом (asm, в некоторых случаях другое), перед зарузкой в jvm.

Не знаю существует ли он в spigot (если не вырезали то да) но если нет - тебе придется писать свой аналог с тем же принципом
(+ Я В целом не рекомендую использовать вилки ведра, чистый forge с собственными модификациями даст чуть ли не 2-х кратный прирост производительности по сравнению с тем-же gaurd-spigot)
 
Последнее редактирование:
Сверху