Тест предмета из мода из руки игрока

Версия Minecraft
1.12.2
У меня есть класс "EventListeners", который, как можно понять из названия, работает с событиями. Моей целью было создать предмет, которым можно один раз кликнуть ПКМ, и, например, выдавался алмаз.

onInteract:
@SubscribeEvent
public void onInteract(PlayerInteractEvent e) {
    EntityPlayer p = e.getEntityPlayer();
    if(new ItemStack(?????) == p.getActiveItemStack()) {
        p.setItemStackToSlot(EntityEquipmentSlot.MAINHAND, new ItemStack(Items.AIR));
        p.addItemStackToInventory(new ItemStack(Items.DIAMOND));
    }
    
}

Что мне нужно написать вместо "new ItemStack(?????)", чтобы всё работало? А также, если Вы найдёте ошибку в коде, буду рад прочитать об этом.
 
3,005
192
592
627
72
178
Идя дальше, можно сделать так


Java:
@SubscribeEvent
public void onInteract(PlayerInteractEvent e) {
    EntityPlayer p = e.getEntityPlayer();
    ItemStack s = p.getActiveItemStack();
    if(p.getEntityWorld().isRemote) return;
    if(!s.isEmpty() && s.getItem().equals(Main.yourItem)){
        s.shrink(1); //если предмет стакается, лучше сделать так, в обратном случае оставь p.setItemStackToSlot()
        p.addItemStackToInventory(new ItemStack(Items.DIAMOND));
    }
}
 
3,005
192
592
@GoogleTan Наверное потому что нужно проверить что есть предмет, а не что объект существует?
*Это должен быть жирный 100500 размерности текст.
 
Сверху