Предмет, который нельзя выкинуть или передать

Slot#onSlotChanged
хук туда, дальше обнуляешь слот (куда положили предмет) при нужных условиях, не забывая вернуть предмет игроку
или
Slot#canTakeStack
ещё можно
Slot#isItemValid
Для выбрасывания ловишь ItemTossEvent, где у EntityItem можно легко поменять итемстак, лул
 
С выкидыванием разобрался, спасибо.
А как узнать, что игрок кладет предмет именно в слот сундука, например?
Просто будет глупо, если он не сможет перетаскивать предмет по своему инвентарю при открытом-то сундуке.
 
У слота есть ссылка на инвентарь
fUpB5b.png

дальше банальный чек на instanceOf InventoryPlayer
 
А кроме шифта есть еще перетаскивание цифрами, и прочая, прочая, прочая... используй onSlotChanged, он ловит всё.
 
За slot.inventory. Проверяешь, что это за инвентарь, и если туда нельзя класть этот предмет, возвращай его игроку. Мне для этих целей пришлось в NBT предмета писать ник владельца и возвращать по нику. Дыр в способе пока не нашли :D
 
Назад
Сверху