Передача предметов из инвентаря в рендер игрока

Версия Minecraft
1.7.10
API
Forge
48
2
9
Приветсвую. Я хочу отрендерить поверх модели игрока некоторые предметы, если они находятся у него в инвентаре в определенных слотах. Проблема в том, что при рендере игрока в RenderPlayer#doRender передается AbstractPlayer у которого в инвентаре есть лишь предмет, который держиться на даный момент в руке. Поэтому мне нужно еще дополнительно передать предметы из нужных мне слотов. Кто-то знает в каком месте можно передать в AbstractPlayer при вызове AbstractPlayer дополнительные предметы?
 
Решение
Всё верно, синхронизируются только слоты брони и текущий слот хотбара.
Другие слоты нужны синхронизировать ручками.

Отсылай пакет в PlayerEvent.StartTracking, чтобы при появлении игрока в области видимости ты получал его ItemStack в слоте.
Далее тебе нужно сделать синхронизацию, если предмет в слоте изменился. Майн это делает в EntityLivingBase, проверяя каждый тик:
1642842637267.png
После этого у тебя на клиенте будет возможность получить ItemStack в слоте. Как у себя, так и у всех клиентов в области видимости, чтобы отрисовать модель или что там тебе надо.

tox1cozZ

aka Agravaine
8,456
598
2,892
Всё верно, синхронизируются только слоты брони и текущий слот хотбара.
Другие слоты нужны синхронизировать ручками.

Отсылай пакет в PlayerEvent.StartTracking, чтобы при появлении игрока в области видимости ты получал его ItemStack в слоте.
Далее тебе нужно сделать синхронизацию, если предмет в слоте изменился. Майн это делает в EntityLivingBase, проверяя каждый тик:
1642842637267.png
После этого у тебя на клиенте будет возможность получить ItemStack в слоте. Как у себя, так и у всех клиентов в области видимости, чтобы отрисовать модель или что там тебе надо.
 
  • Like
Реакции: klas
Сверху