diff options
author | sk89q <the.sk89q@gmail.com> | 2011-04-07 11:26:33 -0700 |
---|---|---|
committer | sk89q <the.sk89q@gmail.com> | 2011-04-07 11:26:33 -0700 |
commit | bd533b3c8a6aab7f128befda4b2802faf1456bb3 (patch) | |
tree | 620d0bb7e37c20818184716b390919f72d57b901 /src | |
parent | a521a8ae77b0a2bc100b66e10a3af19a91452d20 (diff) | |
download | bukkit-bd533b3c8a6aab7f128befda4b2802faf1456bb3.tar bukkit-bd533b3c8a6aab7f128befda4b2802faf1456bb3.tar.gz bukkit-bd533b3c8a6aab7f128befda4b2802faf1456bb3.tar.lz bukkit-bd533b3c8a6aab7f128befda4b2802faf1456bb3.tar.xz bukkit-bd533b3c8a6aab7f128befda4b2802faf1456bb3.zip |
Added bed events and methods.
Diffstat (limited to 'src')
6 files changed, 136 insertions, 0 deletions
diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java index 869d7ba4..60f7b345 100644 --- a/src/main/java/org/bukkit/entity/HumanEntity.java +++ b/src/main/java/org/bukkit/entity/HumanEntity.java @@ -45,4 +45,18 @@ public interface HumanEntity extends LivingEntity { * public void selectItemInHand( int index ); */ + + /** + * Returns whether this player is slumbering. + * + * @return slumber state + */ + public boolean isSleeping(); + + /** + * Get the sleep ticks of the player. This value may be capped. + * + * @return slumber ticks + */ + public int getSleepTicks(); } diff --git a/src/main/java/org/bukkit/event/Event.java b/src/main/java/org/bukkit/event/Event.java index c4dc0fc8..5476cc74 100644 --- a/src/main/java/org/bukkit/event/Event.java +++ b/src/main/java/org/bukkit/event/Event.java @@ -270,6 +270,21 @@ public abstract class Event implements Serializable { * @see org.bukkit.event.player.PlayerInventoryEvent */ PLAYER_INVENTORY(Category.PLAYER), + + /** + * Called when a player enter a bed + * + * @see org.bukkit.event.player.PlayerBedEnterEvent + */ + PLAYER_BED_ENTER(Category.PLAYER), + + /** + * Called when a player leaves a bed + * + * @see org.bukkit.event.player.PlayerBedEnterEvent + */ + PLAYER_BED_LEAVE(Category.PLAYER), + /** * BLOCK EVENTS */ diff --git a/src/main/java/org/bukkit/event/player/PlayerBedEnterEvent.java b/src/main/java/org/bukkit/event/player/PlayerBedEnterEvent.java new file mode 100644 index 00000000..93beec63 --- /dev/null +++ b/src/main/java/org/bukkit/event/player/PlayerBedEnterEvent.java @@ -0,0 +1,50 @@ +package org.bukkit.event.player;
+
+import org.bukkit.block.Block;
+import org.bukkit.entity.Player;
+import org.bukkit.event.Cancellable;
+
+/**
+ * This event is fired when the player is almost about to enter the bed.
+ * It can be cancelled.
+ *
+ * @author sk89q
+ */
+public class PlayerBedEnterEvent extends PlayerEvent implements Cancellable {
+
+ private boolean cancel = false;
+ private Block bed;
+
+ public PlayerBedEnterEvent(Player who, Block bed) {
+ super(Type.PLAYER_BED_ENTER, who);
+ this.bed = bed;
+ }
+
+ /**
+ * Gets the cancellation state of this event.
+ *
+ * @return true if this event is cancelled
+ */
+ public boolean isCancelled() {
+ return cancel;
+ }
+
+ /**
+ * Prevents the player from entering the bed.
+ *
+ * @param cancel true if you wish to cancel this event
+ */
+ public void setCancelled(boolean cancel) {
+ this.cancel = cancel;
+ }
+
+ /**
+ * Returns the bed block.
+ *
+ * @return
+ */
+ public Block getBed() {
+ return bed;
+ }
+
+}
diff --git a/src/main/java/org/bukkit/event/player/PlayerBedLeaveEvent.java b/src/main/java/org/bukkit/event/player/PlayerBedLeaveEvent.java new file mode 100644 index 00000000..22793345 --- /dev/null +++ b/src/main/java/org/bukkit/event/player/PlayerBedLeaveEvent.java @@ -0,0 +1,29 @@ +package org.bukkit.event.player;
+
+import org.bukkit.block.Block;
+import org.bukkit.entity.Player;
+
+/**
+ * This event is fired when the player is leaving a bed.
+ *
+ * @author sk89q
+ */
+public class PlayerBedLeaveEvent extends PlayerEvent {
+
+ private Block bed;
+
+ public PlayerBedLeaveEvent(Player who, Block bed) {
+ super(Type.PLAYER_BED_LEAVE, who);
+ this.bed = bed;
+ }
+
+ /**
+ * Returns the bed block.
+ *
+ * @return
+ */
+ public Block getBed() {
+ return bed;
+ }
+
+}
diff --git a/src/main/java/org/bukkit/event/player/PlayerListener.java b/src/main/java/org/bukkit/event/player/PlayerListener.java index 288f4eff..1aff9ed1 100644 --- a/src/main/java/org/bukkit/event/player/PlayerListener.java +++ b/src/main/java/org/bukkit/event/player/PlayerListener.java @@ -172,6 +172,22 @@ public class PlayerListener implements Listener { public void onPlayerBucketEmpty(PlayerBucketEmptyEvent event) { } + /** + * Called when a player enters a bed + * + * @param event Relevant event details + */ + public void onPlayerBedEnter(PlayerBedEnterEvent event) { + } + + /** + * Called when a player leaves a bed + * + * @param event Relevant event details + */ + public void onPlayerBedLeave(PlayerBedLeaveEvent event) { + } + // TODO: Remove after RB @Deprecated public void onPlayerQuit(PlayerEvent event) {} @Deprecated public void onPlayerCommandPreprocess(PlayerChatEvent event) {} diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java index 55ff75ac..10eaaaa2 100644 --- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java +++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java @@ -312,6 +312,18 @@ public final class JavaPluginLoader implements PluginLoader { ((PlayerListener) listener).onPlayerBucketFill((PlayerBucketFillEvent) event); } }; + case PLAYER_BED_ENTER: + return new EventExecutor() { + public void execute(Listener listener, Event event) { + ((PlayerListener) listener).onPlayerBedEnter((PlayerBedEnterEvent) event); + } + }; + case PLAYER_BED_LEAVE: + return new EventExecutor() { + public void execute(Listener listener, Event event) { + ((PlayerListener) listener).onPlayerBedLeave((PlayerBedLeaveEvent) event); + } + }; // Block Events case BLOCK_PHYSICS: |