Отмена открытия сундука

Версия Minecraft
1.12.2
API
Forge
Хочу отменить открытие сундука.
Ивент:
@SubscribeEvent
    public void onOpenChestGui(GuiOpenEvent event) {
        if(event.getGui() instanceof GuiChest) {
                event.setCanceled(true);
            }
        }
Этот код отменяет открытие ГУИ, но сама анимация всё равно происходит. К тому же удаляются все предметы в инвентаре. Так же пробовал сделать через отмену PlayerInteractEvent.RightClickBlock, но оно вообще не работало. Может, кто знает, как это исправить? Желательно чтобы ещё и анимация тоже отменялась.
 
7,099
324
1,510
Лови событие PlayerInteractEvent.RightClickBlock и отменяй его
 

VeniVidiVici

Санта Барбарис
327
15
198
Совсем туплю. Сидел и пытался отменить, но всё равно не получилось
Так в чём сложность? Тебе нужно, как выше @hohserg и написал, в ивенте взаимодействия на ПКМ проверять, что нажатие идёт по сундуку (event.getBlockPos()), доп.условия если есть, и вызывать event.setCanceled(true). Тогда по идее сундук даже не начнёт открываться, если всё правильно
 
7,099
324
1,510
Java:
@SubscribeEvent
    public void onChestRightClick(PlayerInteractEvent.RightClickBlock event) {
        BlockPos pos;
        EntityPlayer player = event.getEntityPlayer();
        if(player.world.getBlockState(pos).getBlock() == Blocks.CHEST) {
                event.setCanceled(true);
            }
        }

Пробовал так, например, но не понял, что писать после = в строке BlockPos pos. Как вызвать (event.getBlockPos()) я даже не понял, а через getPos() оно тоже не хочет работать.
 
Сверху