package com.elmakers.mine.bukkit.api.event;

import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;

import com.elmakers.mine.bukkit.api.magic.Mage;
import com.elmakers.mine.bukkit.api.spell.SpellTemplate;
import com.elmakers.mine.bukkit.api.wand.Wand;

/**
 * A custom event that the Magic plugin will fire whenever a player upgrades
 * a spell by casting it enough.
 */
public class SpellUpgradeEvent extends Event {
    private final Mage mage;
    private final Wand wand;
    private final SpellTemplate oldSpell;
    private final SpellTemplate newSpell;

    private static final HandlerList handlers = new HandlerList();

    public SpellUpgradeEvent(Mage mage, Wand wand, SpellTemplate oldSpell, SpellTemplate newSpell) {
        this.mage = mage;
        this.wand = wand;
        this.oldSpell = oldSpell;
        this.newSpell = newSpell;
    }

    @Override
    public HandlerList getHandlers() {
        return handlers;
    }

    public static HandlerList getHandlerList() {
        return handlers;
    }

    public Mage getMage() {
        return mage;
    }

    public SpellTemplate getOldSpell() {
        return oldSpell;
    }

    public SpellTemplate getNewSpell() {
        return newSpell;
    }

    public Wand getWand() {
        return wand;
    }
}

@@ -34,24 +34,92 @@
 api.event;%0A%0A
+import javax.annotation.Nonnull;%0Aimport javax.annotation.Nullable;%0A%0A
 import org.b
@@ -1090,32 +1090,45 @@
 andlers;%0A    %7D%0A%0A
+    @Nonnull%0A
     public Mage 
@@ -1135,24 +1135,24 @@
 getMage() %7B%0A
-
         retu
@@ -1159,32 +1159,45 @@
 rn mage;%0A    %7D%0A%0A
+    @Nonnull%0A
     public Spell
@@ -1245,32 +1245,45 @@
 ldSpell;%0A    %7D%0A%0A
+    @Nonnull%0A
     public Spell
@@ -1331,32 +1331,46 @@
 ewSpell;%0A    %7D%0A%0A
+    @Nullable%0A
     public Wand 

Add nullable/nonnull annotations to SpellUpgradeEvent