summaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
authorNathan Adams <dinnerbone@dinnerbone.com>2012-01-19 16:07:03 +0000
committerNathan Adams <dinnerbone@dinnerbone.com>2012-01-19 16:07:03 +0000
commit92bbf8957cc55c913f87056e698566ed6c495217 (patch)
tree87d9544cc29574dbf057332fdd39baaa21fa8f28 /src/main
parentc29a93a8c158dd9d98295961d76bd2119194364a (diff)
downloadbukkit-92bbf8957cc55c913f87056e698566ed6c495217.tar
bukkit-92bbf8957cc55c913f87056e698566ed6c495217.tar.gz
bukkit-92bbf8957cc55c913f87056e698566ed6c495217.tar.lz
bukkit-92bbf8957cc55c913f87056e698566ed6c495217.tar.xz
bukkit-92bbf8957cc55c913f87056e698566ed6c495217.zip
Added new PlayerExpChangeEvent and PlayerLevelChangeEvent events. Thanks to feildmaster for the PR.
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/bukkit/event/Event.java12
-rw-r--r--src/main/java/org/bukkit/event/player/PlayerExpChangeEvent.java43
-rw-r--r--src/main/java/org/bukkit/event/player/PlayerLevelChangeEvent.java45
-rw-r--r--src/main/java/org/bukkit/event/player/PlayerListener.java14
-rw-r--r--src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java24
5 files changed, 135 insertions, 3 deletions
diff --git a/src/main/java/org/bukkit/event/Event.java b/src/main/java/org/bukkit/event/Event.java
index 70a80073..0658e003 100644
--- a/src/main/java/org/bukkit/event/Event.java
+++ b/src/main/java/org/bukkit/event/Event.java
@@ -363,6 +363,18 @@ public abstract class Event implements Serializable {
* @see org.bukkit.event.player.PlayerChangedWorldEvent
*/
PLAYER_CHANGED_WORLD(Category.PLAYER, PlayerChangedWorldEvent.class),
+ /**
+ * Called when a players level changes
+ *
+ * @see org.bukkit.event.player.PlayerLevelChangeEvent
+ */
+ PLAYER_LEVEL_CHANGE(Category.PLAYER, PlayerLevelChangeEvent.class),
+ /**
+ * Called when a players experience changes naturally
+ *
+ * @see org.bukkit.event.player.PlayerExpChangeEvent
+ */
+ PLAYER_EXP_CHANGE(Category.PLAYER, PlayerExpChangeEvent.class),
/**
* BLOCK EVENTS
diff --git a/src/main/java/org/bukkit/event/player/PlayerExpChangeEvent.java b/src/main/java/org/bukkit/event/player/PlayerExpChangeEvent.java
new file mode 100644
index 00000000..bd0610e8
--- /dev/null
+++ b/src/main/java/org/bukkit/event/player/PlayerExpChangeEvent.java
@@ -0,0 +1,43 @@
+package org.bukkit.event.player;
+
+import org.bukkit.entity.Player;
+import org.bukkit.event.HandlerList;
+
+/**
+ * Called when a players experience changes naturally
+ */
+public class PlayerExpChangeEvent extends PlayerEvent {
+ private static final HandlerList handlers = new HandlerList();
+ private int exp;
+
+ public PlayerExpChangeEvent(Player player, int expAmount) {
+ super(Type.PLAYER_EXP_CHANGE, player);
+ exp = expAmount;
+ }
+
+ /**
+ * Get the amount of experience the player will receive
+ *
+ * @return The amount of experience
+ */
+ public int getAmount() {
+ return exp;
+ }
+
+ /**
+ * Set the amount of experience the player will receive
+ *
+ * @param amount The amount of experience to set
+ */
+ public void setAmount(int amount) {
+ exp = amount;
+ }
+
+ public HandlerList getHandlers() {
+ return handlers;
+ }
+
+ public static HandlerList getHandlerList() {
+ return handlers;
+ }
+}
diff --git a/src/main/java/org/bukkit/event/player/PlayerLevelChangeEvent.java b/src/main/java/org/bukkit/event/player/PlayerLevelChangeEvent.java
new file mode 100644
index 00000000..dd2708c8
--- /dev/null
+++ b/src/main/java/org/bukkit/event/player/PlayerLevelChangeEvent.java
@@ -0,0 +1,45 @@
+package org.bukkit.event.player;
+
+import org.bukkit.entity.Player;
+import org.bukkit.event.HandlerList;
+
+/**
+ * Called when a players level changes
+ */
+public class PlayerLevelChangeEvent extends PlayerEvent {
+ private static final HandlerList handlers = new HandlerList();
+ private int oldLevel;
+ private int newLevel;
+
+ public PlayerLevelChangeEvent(Player player, int oldLevel, int newLevel) {
+ super(Type.PLAYER_LEVEL_CHANGE, player);
+ this.oldLevel = oldLevel;
+ this.newLevel = newLevel;
+ }
+
+ /**
+ * Gets the old level of the player
+ *
+ * @return The old level of the player
+ */
+ public int getOldLevel() {
+ return oldLevel;
+ }
+
+ /**
+ * Gets the new level of the player
+ *
+ * @return The new (current) level of the player
+ */
+ public int getNewLevel() {
+ return newLevel;
+ }
+
+ public HandlerList getHandlers() {
+ return handlers;
+ }
+
+ public static HandlerList getHandlerList() {
+ return handlers;
+ }
+}
diff --git a/src/main/java/org/bukkit/event/player/PlayerListener.java b/src/main/java/org/bukkit/event/player/PlayerListener.java
index 508c8d2f..cd461108 100644
--- a/src/main/java/org/bukkit/event/player/PlayerListener.java
+++ b/src/main/java/org/bukkit/event/player/PlayerListener.java
@@ -213,4 +213,18 @@ public class PlayerListener implements Listener {
* @param event Relevant event details
*/
public void onPlayerChangedWorld(PlayerChangedWorldEvent event) {}
+
+ /**
+ * Called when a players level changes
+ *
+ * @param event Relevant event details
+ */
+ public void onPlayerLevelChange(PlayerLevelChangeEvent event) {}
+
+ /**
+ * Called when a players experience changes naturally
+ *
+ * @param event Relevant event details
+ */
+ public void onPlayerExpChange(PlayerExpChangeEvent event) {}
}
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
index cfa41c6c..874397e3 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -18,9 +18,6 @@ import org.bukkit.Server;
import org.bukkit.configuration.serialization.ConfigurationSerializable;
import org.bukkit.configuration.serialization.ConfigurationSerialization;
-import org.bukkit.event.CustomEventListener;
-import org.bukkit.event.Event;
-import org.bukkit.event.Listener;
import org.bukkit.event.*;
import org.bukkit.event.block.*;
import org.bukkit.event.painting.*;
@@ -381,6 +378,13 @@ public class JavaPluginLoader implements PluginLoader {
}
};
+ case PLAYER_LEVEL_CHANGE:
+ return new EventExecutor() {
+ public void execute(Listener listener, Event event) {
+ ((PlayerListener) listener).onPlayerLevelChange((PlayerLevelChangeEvent) event);
+ }
+ };
+
case INVENTORY_OPEN:
return new EventExecutor() {
public void execute(Listener listener, Event event) {
@@ -472,6 +476,13 @@ public class JavaPluginLoader implements PluginLoader {
}
};
+ case PLAYER_EXP_CHANGE:
+ return new EventExecutor() {
+ public void execute(Listener listener, Event event) {
+ ((PlayerListener) listener).onPlayerExpChange((PlayerExpChangeEvent) event);
+ }
+ };
+
// Block Events
case BLOCK_PHYSICS:
return new EventExecutor() {
@@ -819,6 +830,13 @@ public class JavaPluginLoader implements PluginLoader {
}
};
+ case ENTITY_SHOOT_BOW:
+ return new EventExecutor() {
+ public void execute(Listener listener, Event event) {
+ ((EntityListener) listener).onEntityShootBow((EntityShootBowEvent) event);
+ }
+ };
+
case PROJECTILE_HIT:
return new EventExecutor() {
public void execute(Listener listener, Event event) {