Номера слотов

Как сделать, чтобы подобранный предмет никогда не попадал в слот №0 инвентаря игрока?
 
В онАпдейте тестишь на  слот. Если слот это слот 0 - выкидываешь.
 
а как, собственно говоря, тестить на слот? я вот в Container.class, ContainerPlayer.class и Slot.class колупаюсь и  ноль понимания
 
if(player.inventory.getStackInSlot(0) != null && player.inventory.getStackInSlot(0).getItem() == ТвойИтем)) {
player.dropPlayerItemWithRandomChoice(player.inventory.getStackInSlot(0), true);
player.inventory.setInventorySlotContents(0, null);

}
 
подчеркивает player, inventory и getStackInSlot
Код:
public void onUpdate() {
         if(player.inventory.getStackInSlot(0) != null && player.inventory.getStackInSlot(0).getItem() == мойпредмет) {
             player.dropPlayerItemWithRandomChoice(player.inventory.getStackInSlot(0), true);
             player.inventory.setInventorySlotContents(0, null);

             } 
     }
 
Girigiri написал(а):
подчеркивает player, inventory и getStackInSlot
Код:
public void onUpdate() {
         if(player.inventory.getStackInSlot(0) != null && player.inventory.getStackInSlot(0).getItem() == мойпредмет) {
             player.dropPlayerItemWithRandomChoice(player.inventory.getStackInSlot(0), true);
             player.inventory.setInventorySlotContents(0, null);

             } 
  
   }
Я просто промолчу. Это надо писать в предмете и давать. И как бы у onUpdate аргументы не пустые.
 
да, добавление EntityPlayer player в аргументы убирает подчеркивание, но оставляет ошибку player cannot be resolved to a variable
[merge_posts_bbcode]Добавлено: 28.10.2014 15:08:40[/merge_posts_bbcode]

отставить player cannot be resolved to a variable, теперь несовместимые операнды пишет
 
вот здесь
&& player.inventory.getStackInSlot(0).getItem() == ТвойИтем
мне пишет, что несовместимые операнды типов Item и Block, может потому что у меня блок, а не предмет, как я наврал выше, если так, то что исправить?
 
Item.getItemForBlock(Your_block) никуда не вписался, заменил блок на предмет - подчеркивать перестало, но не работает, предмет как и прежде попадает в слот №0
попробовал
Код:
 @SubscribeEvent
     public void ghh(ItemPickupEvent ev) {
         if(ev.player.inventory.getStackInSlot(0) != null && ev.player.inventory.getStackInSlot(0).getItem() == мойпредмет) {
             ev.player.dropPlayerItemWithRandomChoice(ev.player.inventory.getStackInSlot(0), true);
             ev.player.inventory.setInventorySlotContents(0, null);
         }
     }

в классе МойПредмет и
Код:
MinecraftForge.EVENT_BUS.register(new КлассПредмета());
в основном классе в
@EventHandler
   
    public void preLoad(FMLPreInitializationEvent event)
    {
ошибки не подчеркивает, но задача не выполняется
 
_NlDfZuwXZs.jpg
 
вот посоветовали использовать EntityItemPickupEvent и event.setCanceled(true), но опять же связать полученную информацию не получается. С инвентарем и слотами мне еще работать и работать, задач в этом направлении несколько, поэтому хотелось бы уйти со стартовой отметки. Помогите.
 
Назад
Сверху