Don't close other inventories for opened player during close

This commit is contained in:
Jikoo
2022-05-15 11:34:35 -04:00
parent 6407f1d8e4
commit 44e514d8c2

View File

@@ -522,6 +522,11 @@ public class OpenInv extends JavaPlugin implements IOpenInv {
static void ejectViewers(@NotNull ISpecialInventory inventory, @NotNull Predicate<@NotNull HumanEntity> predicate) {
Inventory bukkitInventory = inventory.getBukkitInventory();
for (HumanEntity viewer : new ArrayList<>(bukkitInventory.getViewers())) {
if (viewer.getUniqueId().equals(inventory.getPlayer().getUniqueId())
&& !viewer.getOpenInventory().getTopInventory().equals(bukkitInventory)) {
// Skip owner with other inventory open. They aren't actually a viewer.
continue;
}
if (predicate.test(viewer)) {
viewer.closeInventory();
}