From 99ffc12ca160141822387da38e4d3f0468f52d53 Mon Sep 17 00:00:00 2001 From: dwa slashe <63373312+dwaslashe@users.noreply.github.com> Date: Mon, 6 Nov 2023 19:02:57 +0100 Subject: [PATCH] Update PlayerUtil.java Adding a delay before doing this and closing the inventory. --- .../me/realized/duels/util/PlayerUtil.java | 34 ++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/duels-plugin/src/main/java/me/realized/duels/util/PlayerUtil.java b/duels-plugin/src/main/java/me/realized/duels/util/PlayerUtil.java index 22f86428..38a77808 100644 --- a/duels-plugin/src/main/java/me/realized/duels/util/PlayerUtil.java +++ b/duels-plugin/src/main/java/me/realized/duels/util/PlayerUtil.java @@ -34,23 +34,25 @@ private static void setMaxHealth(final Player player) { } public static void reset(final Player player) { - player.setFireTicks(0); - player.getActivePotionEffects().forEach(effect -> player.removePotionEffect(effect.getType())); - setMaxHealth(player); - player.setExhaustion(DEFAULT_EXHAUSTION); - player.setSaturation(DEFAULT_SATURATION); - player.setFoodLevel(DEFAULT_MAX_FOOD_LEVEL); - player.setItemOnCursor(null); - - final Inventory top = player.getOpenInventory().getTopInventory(); - - if (top.getType() == InventoryType.CRAFTING) { - top.clear(); - } + Bukkit.getScheduler().scheduleSyncDelayedTask(DuelsPlugin.getInstance(), () -> { + player.closeInventory(); + + player.setFireTicks(0); + player.getActivePotionEffects().forEach(effect -> player.removePotionEffect(effect.getType())); + setMaxHealth(player); + player.setFoodLevel(DEFAULT_MAX_FOOD_LEVEL); + player.setItemOnCursor(null); + + final Inventory top = player.getOpenInventory().getTopInventory(); + + if (top != null && top.getType() == InventoryType.CRAFTING) { + top.clear(); + } - player.getInventory().setArmorContents(new ItemStack[4]); - player.getInventory().clear(); - player.updateInventory(); + player.getInventory().setArmorContents(new ItemStack[4]); + player.getInventory().clear(); + player.updateInventory(); + }, 2L); } private PlayerUtil() {}