From 96d65967026c832831c915b4f3614cd3e6074c2a Mon Sep 17 00:00:00 2001
From: Chris Kearney <chris@kearneymail.com>
Date: Wed, 19 Aug 2015 15:03:07 -0700
Subject: [PATCH] effects are wiped on death and anyone can cast aids spell now

---
 .../java/com/comandante/creeper/command/CastCommand.java | 5 -----
 src/main/java/com/comandante/creeper/player/Player.java  | 9 +++++++++
 .../com/comandante/creeper/player/PlayerMetadata.java    | 4 ++++
 3 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/comandante/creeper/command/CastCommand.java b/src/main/java/com/comandante/creeper/command/CastCommand.java
index e3975653..1c508a66 100644
--- a/src/main/java/com/comandante/creeper/command/CastCommand.java
+++ b/src/main/java/com/comandante/creeper/command/CastCommand.java
@@ -44,11 +44,6 @@ public class CastCommand extends Command {
             }
             String desiredSpellName = originalMessageParts.get(1);
             Spell spell = SpellRegistry.getSpell(desiredSpellName);
-            if (spell instanceof AidsSpell) {
-                if (!player.getPlayerName().equals("fibs")) {
-                    return;
-                }
-            }
             if (spell == null) {
                 write("No spell found with the name: " + desiredSpellName + "\r\n");
                 return;
diff --git a/src/main/java/com/comandante/creeper/player/Player.java b/src/main/java/com/comandante/creeper/player/Player.java
index 79a4170f..608bfb17 100755
--- a/src/main/java/com/comandante/creeper/player/Player.java
+++ b/src/main/java/com/comandante/creeper/player/Player.java
@@ -146,6 +146,7 @@ public class Player extends CreeperEntity {
     }
 
     public void killPlayer(Npc npc) {
+        resetEffects();
         synchronized (interner.intern(playerId)) {
             if (npc != null && doesActiveFightExist(npc)) {
                 removeAllActiveFights();
@@ -283,6 +284,14 @@ public class Player extends CreeperEntity {
         }
     }
 
+    public void resetEffects(){
+        synchronized (interner){
+            PlayerMetadata playerMetadata = getPlayerMetadata();
+            playerMetadata.resetEffects();
+            gameManager.getPlayerManager().savePlayerMetadata(playerMetadata);
+        }
+    }
+
     public void addLockerInventoryId(String entityId) {
         synchronized (interner.intern(playerId)) {
             PlayerMetadata playerMetadata = getPlayerMetadata();
diff --git a/src/main/java/com/comandante/creeper/player/PlayerMetadata.java b/src/main/java/com/comandante/creeper/player/PlayerMetadata.java
index 3e24accd..44279f75 100644
--- a/src/main/java/com/comandante/creeper/player/PlayerMetadata.java
+++ b/src/main/java/com/comandante/creeper/player/PlayerMetadata.java
@@ -214,4 +214,8 @@ public class PlayerMetadata implements Serializable {
     public void setIsMarkedForDelete(boolean isMarkedForDelete) {
         this.isMarkedForDelete = isMarkedForDelete;
     }
+
+    protected void resetEffects(){
+        this.effects = Lists.newArrayList();
+    }
 }
-- 
GitLab