Однократное использование ивента

Версия Minecraft
1.12.2
API
Forge
У меня есть 2 кастомных инвентаря. Первый срабатывает всегда вместо ванильного, а второй заменяет первый, если в определённом слоте есть определённый предмет. Проверку делаю через LivingEvent.LivingUpdateEvent. В целом оно работает, но сам ивент постоянно обновляется. Как сделать так, чтобы при открытии инвентаря он один раз сработал и не обновлялся до следующего открытия?
 
Написал такой код. Всё работает, но для смены инвентаря приходится перезаходить в него после помещения предмета в слот. Можно ли обновлять это сразу?

Ивент:
@SubscribeEvent
    public void onOpenGui(GuiOpenEvent event) {
        if(event.getGui() instanceof GuiInventory) {
            EntityPlayer player = FMLClientHandler.instance().getClient().player;
            if (!player.capabilities.isCreativeMode) {
                event.setCanceled(true);
                NetworkHandler.network.sendToServer(new OpenInventoryMessage());
            }
        }
        if(event.getGui() instanceof GUICustomInv) {
            EntityPlayer player = FMLClientHandler.instance().getClient().player;
            ICAPCustomInventory cap = player.getCapability(CAPCustomInventoryProvider.INVENTORY_CAP, null);
            CustomInventory inv = cap.getInventory();
            if ((!player.capabilities.isCreativeMode) && (inv.getStackInSlot(70).getItem() == ItemInit.BACKPACK_BASIC)) {
                event.setCanceled(true);
                NetworkHandler.network.sendToServer(new OpenInventoryMessageBasic());
            }
        }
    }
 
390
7
27
Ну проверяй в том же LivingEvent.LivingUpdateEvent, что у тебя, при открытом первом инвентаре, в нужном тебе слоте находится нужный итем. Ну и если да - то открывай второй инвентарь.
 
Сверху