Skip to content

Commit

Permalink
Update player levels up event.
Browse files Browse the repository at this point in the history
  • Loading branch information
Fortifier42 committed Mar 6, 2016
1 parent 7f607df commit 59fa30c
Showing 1 changed file with 25 additions and 13 deletions.
Expand Up @@ -3,6 +3,7 @@
import net.aufdemrand.denizen.BukkitScriptEntryData;
import net.aufdemrand.denizen.events.BukkitScriptEvent;
import net.aufdemrand.denizen.objects.dEntity;
import net.aufdemrand.denizen.objects.dPlayer;
import net.aufdemrand.denizen.utilities.DenizenAPI;
import net.aufdemrand.denizencore.objects.Element;
import net.aufdemrand.denizencore.objects.aH;
Expand All @@ -21,16 +22,17 @@ public class PlayerLevelsScriptEvent extends BukkitScriptEvent implements Listen

// <--[event]
// @Events
// player levels up (from <level>) (to <level>)
// player levels up (from <level>) (to <level>) (in <area>)
//
// @Regex ^on player levels up( from [^\s]+)?( to [^\s]+)?$
// @Regex ^on player levels up( from [^\s]+)?( to [^\s]+)?( in ((notable (cuboid|ellipsoid))|([^\s]+)))?$$
//
// @Cancellable false
//
// @Triggers when a player levels an entity.
// @Triggers when a player levels up.
//
// @Context
// <context.level> returns an Element of the player's new level.
// <context.new_level> returns an Element of the player's new level.
// <context.old_level> returns an Element of the player's old level.
//
// -->

Expand All @@ -39,7 +41,9 @@ public PlayerLevelsScriptEvent() {
}

public static PlayerLevelsScriptEvent instance;
public int level;
public int new_level;
public int old_level;
public dPlayer player;
public PlayerLevelChangeEvent event;

@Override
Expand All @@ -53,23 +57,27 @@ public boolean matches(ScriptContainer scriptContainer, String s) {
List<String> data = CoreUtilities.split(lower, ' ');
for (int index = 0; index < data.size(); index++) {
if (data.get(index).equals("from")) {
if (aH.getIntegerFrom(data.get(index + 1)) != event.getOldLevel()) {
if (aH.getIntegerFrom(data.get(index + 1)) != old_level) {
return false;
}
}
if (data.get(index).equals("to")) {
if (aH.getIntegerFrom(data.get(index + 1)) != event.getNewLevel()) {
if (aH.getIntegerFrom(data.get(index + 1)) != new_level) {
return false;
}
}
}

if (!runInCheck(scriptContainer, s, lower, player.getLocation())) {
return false;
}

return true;
}

@Override
public String getName() {
return "PlayerLevels";
return "PlayerLevelsUp";
}

@Override
Expand All @@ -89,14 +97,16 @@ public boolean applyDetermination(ScriptContainer container, String determinatio

@Override
public ScriptEntryData getScriptEntryData() {
dEntity player = new dEntity(event.getPlayer());
return new BukkitScriptEntryData(player.isPlayer() ? player.getDenizenPlayer() : null, null);
return new BukkitScriptEntryData(player, null);
}

@Override
public dObject getContext(String name) {
if (name.equals("level")) {
return new Element(level);
if (name.equals("level") || name.equals("new_level")) {
return new Element(new_level);
}
else if (name.equals("old_level")) {
return new Element(old_level);
}
return super.getContext(name);
}
Expand All @@ -106,7 +116,9 @@ public void onPlayerLevels(PlayerLevelChangeEvent event) {
if (dEntity.isNPC(event.getPlayer())) {
return;
}
level = event.getNewLevel();
player = dPlayer.mirrorBukkitPlayer(event.getPlayer());
old_level = event.getOldLevel();
new_level = event.getNewLevel();
this.event = event;
fire();
}
Expand Down

0 comments on commit 59fa30c

Please sign in to comment.