Как заставить игрока кликнуть на предмет

13
1
0
Как сделать так чтобы игрок кликнул на предмет на Forge API?
У меня есть ItemStack (предмет) но не знаю как сделать действие клика по предмету. Помогите пожалуйста.
 
395
39
97
Может быть, эмулировать нажатие на слот в инвентаре? Как вариант получаешь свой Container и вызываешь slotClick напрямую.
 
13
1
0
Я уже сделал, теперь не понимаю почему когда я вызываю item.getTag() все нормально, а когда я что то делаю с ним майн крашит.
например item.getTag().getAsString() и майн крашит и это со всеми методами
Мое предположение это много итемов, можно ли как то получить самый первый из слотов?
Например первый итем на 6 слоте второй итем на 18 слоте и третий итем на 24 слоте.
 
395
39
97
Мое предположение
Научись работать исключениями. (И бонусом отладчиком) В краш-логе тебя ткнет на само исключение, и номер строки даже укажет. Ставлю сотку, что оно падает от NullPointerException (getTag() специально помечен как Nullable - т.е оно может вернуть null)
 
Дабы в будущем избегать такие "краши", нужно использовать проверки.
Java:
if (item.getTag()..... != null) {

}
 
343
24
97
Для начала просто ItemStack#getTag проверять на null, а вообще, если брать старые версии, то был отдельный метод - ItemStack#hasTagCompound (IDE под рукой нет, в названии могу ошибаться), думаю в новых есть точно такой же, разве только с иным названием.
 

TheAndrey

Редактор учебника
1,071
72
372
Сверху