summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorsk89q <the.sk89q@gmail.com>2011-04-07 11:26:33 -0700
committersk89q <the.sk89q@gmail.com>2011-04-07 11:26:33 -0700
commitbd533b3c8a6aab7f128befda4b2802faf1456bb3 (patch)
tree620d0bb7e37c20818184716b390919f72d57b901 /src
parenta521a8ae77b0a2bc100b66e10a3af19a91452d20 (diff)
downloadbukkit-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')
-rw-r--r--src/main/java/org/bukkit/entity/HumanEntity.java14
-rw-r--r--src/main/java/org/bukkit/event/Event.java15
-rw-r--r--src/main/java/org/bukkit/event/player/PlayerBedEnterEvent.java50
-rw-r--r--src/main/java/org/bukkit/event/player/PlayerBedLeaveEvent.java29
-rw-r--r--src/main/java/org/bukkit/event/player/PlayerListener.java16
-rw-r--r--src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java12
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: