Первое, что приходит на ум:
Есть некое множество:
private final Set<UUID> playersWithOffPickup = ,,,;
В это множество пользователь заносит или удаляет себя командой.
Слушаем эвент требующегося события (Кстати, как называется аналог PlayerPickupItemEvent в Sponge?).
Если игрок есть в листе - отменяем эвент.
Правильно ли подобрана реализация и с помощью какого события можно слушать поднятия предмета игроком?