From a0f1ade4ce272691c10c11f1d3afc9807035fb5a Mon Sep 17 00:00:00 2001
From: Chris Kearney <chris@kearneymail.com>
Date: Wed, 25 Nov 2015 21:18:19 -0800
Subject: [PATCH] this should make blazecrafts changes work

---
 .../com/comandante/creeper/ConfigureNpc.java  |  1 +
 .../creeper/Items/ItemUseRegistry.java        |  3 +-
 .../Items/use/ResetAllEffectsUseAction.java   | 51 +++++++++++++++++++
 world/6May2015-7PM                            |  0
 4 files changed, 54 insertions(+), 1 deletion(-)
 create mode 100644 src/main/java/com/comandante/creeper/Items/use/ResetAllEffectsUseAction.java
 mode change 100755 => 100644 world/6May2015-7PM

diff --git a/src/main/java/com/comandante/creeper/ConfigureNpc.java b/src/main/java/com/comandante/creeper/ConfigureNpc.java
index b7beab8a..7799e9af 100755
--- a/src/main/java/com/comandante/creeper/ConfigureNpc.java
+++ b/src/main/java/com/comandante/creeper/ConfigureNpc.java
@@ -445,5 +445,6 @@ public class ConfigureNpc {
         SpellRegistry.addSpell(new ClumsinessSpell(gameManager));
         SpellRegistry.addSpell(new RestoreSpell(gameManager));
         SpellRegistry.addSpell(new AidsSpell(gameManager));
+        SpellRegistry.addSpell(new FreezeSpell(gameManager));
     }
 }
diff --git a/src/main/java/com/comandante/creeper/Items/ItemUseRegistry.java b/src/main/java/com/comandante/creeper/Items/ItemUseRegistry.java
index 716bb60d..50c68150 100644
--- a/src/main/java/com/comandante/creeper/Items/ItemUseRegistry.java
+++ b/src/main/java/com/comandante/creeper/Items/ItemUseRegistry.java
@@ -2,6 +2,7 @@ package com.comandante.creeper.Items;
 
 import com.comandante.creeper.Items.use.DefaultApplyStatsAction;
 import com.comandante.creeper.Items.use.DirtyBombUseAction;
+import com.comandante.creeper.Items.use.ResetAllEffectsUseAction;
 import com.comandante.creeper.managers.GameManager;
 import com.comandante.creeper.player.Player;
 import com.comandante.creeper.spells.Effect;
@@ -43,7 +44,7 @@ public class ItemUseRegistry {
         addItemUseAction(new DefaultApplyStatsAction(ItemType.DOGDICKS, buildStats(500,500), Sets.<Effect>newHashSet()));
         
         //Mithaem Leaf
-        addItemUseAction(new DefaultApplyStatsAction(ItemType.MITHAEM_LEAF, buildStats(0,0), resetEffects()));
+        addItemUseAction(new ResetAllEffectsUseAction(ItemType.MITHAEM_LEAF));
 
         //Dirty Bomb
         addItemUseAction(new DirtyBombUseAction(ItemType.DIRTY_BOMB));
diff --git a/src/main/java/com/comandante/creeper/Items/use/ResetAllEffectsUseAction.java b/src/main/java/com/comandante/creeper/Items/use/ResetAllEffectsUseAction.java
new file mode 100644
index 00000000..eb610a27
--- /dev/null
+++ b/src/main/java/com/comandante/creeper/Items/use/ResetAllEffectsUseAction.java
@@ -0,0 +1,51 @@
+package com.comandante.creeper.Items.use;
+
+import com.comandante.creeper.Items.Item;
+import com.comandante.creeper.Items.ItemType;
+import com.comandante.creeper.Items.ItemUseAction;
+import com.comandante.creeper.Items.ItemUseRegistry;
+import com.comandante.creeper.managers.GameManager;
+import com.comandante.creeper.player.Player;
+import com.comandante.creeper.spells.Effect;
+
+import java.util.Set;
+
+public class ResetAllEffectsUseAction implements ItemUseAction {
+
+    private final ItemType itemType;
+
+    public ResetAllEffectsUseAction(ItemType itemType) {
+        this.itemType = itemType;
+    }
+
+    @Override
+    public Integer getItemTypeId() {
+        return itemType.getItemTypeCode();
+    }
+
+
+    @Override
+    public void executeAction(GameManager gameManager, Player player, Item item) {
+        player.resetEffects();
+        gameManager.getChannelUtils().write(player.getPlayerId(), "All Effects are removed." + "\r\n");
+    }
+
+    @Override
+    public void postExecuteAction(GameManager gameManager, Player player, Item item) {
+        ItemUseRegistry.incrementUses(item);
+        if (ItemType.itemTypeFromCode(item.getItemTypeId()).isDisposable()) {
+            if (item.getNumberOfUses() < ItemType.itemTypeFromCode(item.getItemTypeId()).getMaxUses()) {
+                gameManager.getEntityManager().saveItem(item);
+            } else {
+                player.removeInventoryId(item.getItemId());
+                gameManager.getEntityManager().removeItem(item);
+            }
+        }
+    }
+
+    @Override
+    public Set<Effect> getEffects() {
+        return null;
+    }
+
+}
diff --git a/world/6May2015-7PM b/world/6May2015-7PM
old mode 100755
new mode 100644
-- 
GitLab