Browse Source

Update player inventory after crafting multiple ChimaeraWings

Fixes #864
TfT_02 12 years ago
parent
commit
8cf16d4a1c
1 changed files with 26 additions and 0 deletions
  1. 26 0
      src/main/java/com/gmail/nossr50/listeners/InventoryListener.java

+ 26 - 0
src/main/java/com/gmail/nossr50/listeners/InventoryListener.java

@@ -8,6 +8,7 @@ import org.bukkit.entity.Player;
 import org.bukkit.event.EventHandler;
 import org.bukkit.event.EventPriority;
 import org.bukkit.event.Listener;
+import org.bukkit.event.inventory.CraftItemEvent;
 import org.bukkit.event.inventory.FurnaceBurnEvent;
 import org.bukkit.event.inventory.FurnaceExtractEvent;
 import org.bukkit.event.inventory.FurnaceSmeltEvent;
@@ -159,4 +160,29 @@ public class InventoryListener implements Listener {
     public void onInventoryClickEvent(InventoryClickEvent event) {
         SkillUtils.removeAbilityBuff(event.getCurrentItem());
     }
+
+    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
+    public void onCraftItem(CraftItemEvent event) {
+        if (event.getRecipe().getResult() == null) {
+            return;
+        }
+        else if (!ItemUtils.isChimaeraWing(event.getRecipe().getResult())) {
+            return;
+        }
+        else if (event.getWhoClicked() == null) {
+            return;
+        }
+        else if (!(event.getWhoClicked() instanceof Player)) {
+            return;
+        }
+
+        final Player player = (Player) event.getWhoClicked();
+
+        mcMMO.p.getServer().getScheduler().scheduleSyncDelayedTask(mcMMO.p, new Runnable() {
+            @Override
+            public void run() {
+                player.updateInventory();
+            }
+        });
+    }
 }