From 4a4934de6832f7ae431753a0a30ec5c36f033b6e Mon Sep 17 00:00:00 2001 From: SoSeDiK Date: Sat, 30 Mar 2019 12:15:56 +0200 Subject: [PATCH] Prevent "Asynchronous entity add!" --- src/me/mrCookieSlime/Slimefun/api/BlockStorage.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/me/mrCookieSlime/Slimefun/api/BlockStorage.java b/src/me/mrCookieSlime/Slimefun/api/BlockStorage.java index da032f22e..8895d950d 100644 --- a/src/me/mrCookieSlime/Slimefun/api/BlockStorage.java +++ b/src/me/mrCookieSlime/Slimefun/api/BlockStorage.java @@ -339,7 +339,7 @@ public class BlockStorage { @SuppressWarnings("unchecked") private static String serializeBlockInfo(Config cfg) { JSONObject json = new JSONObject(); - for (String key: cfg.getKeys()) { + for (String key : cfg.getKeys()) { json.put(key, cfg.getString(key)); } return json.toJSONString(); @@ -596,8 +596,11 @@ public class BlockStorage { public void clearInventory(Location l) { BlockMenu menu = getInventory(l); - for (HumanEntity human: new ArrayList<>(menu.toInventory().getViewers())) { - human.closeInventory(); + for (HumanEntity human : new ArrayList<>(menu.toInventory().getViewers())) { + // Prevents "java.lang.IllegalStateException: Asynchronous entity add!" when closing inventory while holding an item + Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, () -> { + human.closeInventory(); + }); } inventories.get(l).delete(l);