В SpigotAPI есть метод
public interface Inventory extends Iterable<ItemStack>
{
java.util.List<HumanEntity> getViewers();
}
Ища подобные решения в SpongeAPI, нашел в доках такой вариант
public interface Container extends ... extends Inventory
{
Set<Player> getViewers();
}
Но создавая инвентарь таким кодом
Inventory.builder()
.title(this.title)
.dimension(this.cols, this.rows)
.listener( ... )
.build(plugin);
Инвентарь не наследует Container
и при попытке каста, получаем ClassCastException
.
После этого я пошел искать дальше. И нашел где можно достать контейнер. Это оказался ивент InventoryClickEvent
(На самом деле InventoryClickEvent extends ... extends TargetContainerEvent
). В нем то уже есть метод Container getTargetInventory();
И я подошел к сути. Как получить список игроков не из ивента, а имея лишь экземпляр класса?
Inventory inventory = Inventory.builder() ... .build();