Исключение предмета

Версия Minecraft
1.12.2

GoogleTan

Картошка :3
1,354
43
310
У меня есть код:
Java:
    @SubscribeEvent
    public static void Interact(PlayerInteractEvent.RightClickItem event)
    {
        if(event.getEntityLiving().getActiveItemStack().getItem().getRegistryName() != BlocksRegister.PRIVATE_BANNER.getRegistryName() && !event.getWorld().isRemote)
        {
            event.setCanceled(true);
        }
    }
Надо чтоб если игрок ставит блок PRIVATE_BANNER тогда он ставился в противном случае - нет. Но это так не работает. Никакие блоки не ставятся.
 
Решение
Обьекты предметов можно сравнивать через == т.к. создаються они лишь один раз. И если ты хочешь проверить по блоку, то вроде там есть RightClickBlock (насколько помню)

GoogleTan

Картошка :3
1,354
43
310
Тогда надо делать Item.getItemFromBlock и сравнивать через equals. == для меня роднее. И строки он сравнивает вполне хорошо. Да и работаеть это все ровно не начнет:
Java:
    @SubscribeEvent
    public static void Interact(PlayerInteractEvent.RightClickItem event)
    {
        if(!event.getEntityLiving().getActiveItemStack().getItem().equals(Item.getItemFromBlock(PRIVATE_BANNER)) && !event.getWorld().isRemote)
        {            
            event.setCanceled(true);
        }
    }
 
1,560
86
204
Зачем использовать equals здесь? Лучше просто сравнивать вот так.
Java:
    @SubscribeEvent
    public static void Interact(PlayerInteractEvent.RightClickItem event)
    {
        if (event.getEntityLiving().getActiveItemStack().getItem() != Item.getItemFromBlock(PRIVATE_BANNER) && !event.getWorld().isRemote)
        {          
            event.setCanceled(true);
        }
    }
 

GoogleTan

Картошка :3
1,354
43
310
Последнее редактирование:
Сверху