Skip to content

Commit

Permalink
I added 2 new Events for the Heroes Plugin.
Browse files Browse the repository at this point in the history
Hero level change event
Hero experience change event
  • Loading branch information
Mike0so committed Apr 22, 2014
1 parent 06f7e11 commit 90b1e9a
Showing 1 changed file with 70 additions and 0 deletions.
70 changes: 70 additions & 0 deletions src/main/java/net/gnomeffinway/depenizen/events/HeroesEvents.java
@@ -1,13 +1,17 @@
package net.gnomeffinway.depenizen.events;

import com.herocraftonline.heroes.api.events.ClassChangeEvent;
import com.herocraftonline.heroes.api.events.ExperienceChangeEvent;
import com.herocraftonline.heroes.api.events.HeroChangeLevelEvent;

import net.aufdemrand.denizen.events.EventManager;
import net.aufdemrand.denizen.objects.Element;
import net.aufdemrand.denizen.objects.dEntity;
import net.aufdemrand.denizen.objects.dNPC;
import net.aufdemrand.denizen.objects.dPlayer;
import net.aufdemrand.denizen.objects.dObject;
import net.gnomeffinway.depenizen.Depenizen;

import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
Expand Down Expand Up @@ -60,5 +64,71 @@ else if (hero.isPlayer())
}

}

// <--[event]
// @Events
// hero changes experience
// @Triggers when a Hero changes the experience.
// @Context
// <context.amount> returns the amount of experience the Hero gained.
// @Plugin Heroes
// -->

@EventHandler
public void changeExperience(ExperienceChangeEvent event) {

dEntity hero = new dEntity(event.getHero().getEntity());
Player player = null;
dNPC npc = null;

Map<String, dObject> context = new HashMap<String, dObject>();
context.put("amount", new Element(event.getExpChange()));

if (hero.isNPC())
npc = hero.getDenizenNPC();
else if (hero.isPlayer())
player = hero.getPlayer();

String determination = EventManager.doEvents(Arrays.asList
("hero changes experience"),
npc, new dPlayer(player), context).toUpperCase();

if (determination.equals("CANCELLED")) {
event.setCancelled(true);
}

}

// <--[event]
// @Events
// hero changes level (to <level>)
// @Triggers when a Hero changes the level.
// @Context
// <context.from> returns the level that the Hero changed from.
// <context.class> returns the class that the Hero leveled up with.
// @Plugin Heroes
// -->

@EventHandler
public void changeLevel(HeroChangeLevelEvent event) {

dEntity hero = new dEntity(event.getHero().getEntity());
Player player = null;
dNPC npc = null;

Map<String, dObject> context = new HashMap<String, dObject>();
context.put("from", new Element(event.getFrom()));
context.put("class", new Element(event.getHeroClass().getName()));

if (hero.isNPC())
npc = hero.getDenizenNPC();
else if (hero.isPlayer())
player = hero.getPlayer();

EventManager.doEvents(Arrays.asList
("hero changes level",
"hero changes level to " + event.getTo()),
npc, new dPlayer(player), context).toUpperCase();

}
}

0 comments on commit 90b1e9a

Please sign in to comment.