ChangeInventoryEvent.Transfer
в моем случае не дал результата. ClickInventoryEvent.Drag
почему-то срабатывает через раз(SpongeVanilla) и думаю тут надо отдельно контейнер слушать, так как я блокирую только те слоты инвентаря в которых лежат определенные предметы, а если их там нет, то и блокировать нечего, потому предмет и перекладывается. Попробую доработать.
Попробовал так же ClickInventoryEvent.Shift
, могу сказать, что с контейнерами работает идеально в пределах своих функций и не блочит инвентарь игрока.