diff options
author | sk89q <the.sk89q@gmail.com> | 2011-04-07 11:26:51 -0700 |
---|---|---|
committer | sk89q <the.sk89q@gmail.com> | 2011-04-07 11:26:51 -0700 |
commit | 27d3396a35639e74ae49ccbcc0b546cb3a24ae73 (patch) | |
tree | 216ce4a655b159e6b6e7e03b8914a8ae62fd516e /src/main/java/net | |
parent | e2480e1347e6d6dc3e9b906289f3cd9641b089b7 (diff) | |
download | craftbukkit-27d3396a35639e74ae49ccbcc0b546cb3a24ae73.tar craftbukkit-27d3396a35639e74ae49ccbcc0b546cb3a24ae73.tar.gz craftbukkit-27d3396a35639e74ae49ccbcc0b546cb3a24ae73.tar.lz craftbukkit-27d3396a35639e74ae49ccbcc0b546cb3a24ae73.tar.xz craftbukkit-27d3396a35639e74ae49ccbcc0b546cb3a24ae73.zip |
Added bed events and methods.
Diffstat (limited to 'src/main/java/net')
-rw-r--r-- | src/main/java/net/minecraft/server/EntityHuman.java | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java index 36d8593a..84631ee2 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java @@ -11,6 +11,8 @@ import org.bukkit.entity.Player; import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDamageEvent.DamageCause; +import org.bukkit.event.player.PlayerBedEnterEvent; +import org.bukkit.event.player.PlayerBedLeaveEvent; import org.bukkit.event.player.PlayerDropItemEvent; // CraftBukkit end @@ -33,9 +35,13 @@ public abstract class EntityHuman extends EntityLiving { public double w; public double x; public double y; - private boolean sleeping; + // CraftBukkit start + public boolean sleeping; + // CraftBukkit end private ChunkCoordinates b; - private int sleepTicks; + // CraftBukkit start + public int sleepTicks; + // CraftBukkit end public float z; public float A; private ChunkCoordinates d; @@ -547,6 +553,20 @@ public abstract class EntityHuman extends EntityLiving { } else if (this.world.d()) { return EnumBedError.NOT_POSSIBLE_NOW; } else if (Math.abs(this.locX - (double) i) <= 3.0D && Math.abs(this.locY - (double) j) <= 2.0D && Math.abs(this.locZ - (double) k) <= 3.0D) { + // CraftBukkit start + if (this.getBukkitEntity() instanceof Player) { + Player player = (Player) this.getBukkitEntity(); + CraftServer server = ((WorldServer) world).getServer(); + org.bukkit.block.Block bed = ((WorldServer) world).getWorld().getBlockAt(i, j, k); + PlayerBedEnterEvent event = new PlayerBedEnterEvent(player, bed); + server.getPluginManager().callEvent(event); + + if (event.isCancelled()) { + return EnumBedError.OTHER_PROBLEM; + } + } + // CraftBukkit end + this.b(0.2F, 0.2F); this.height = 0.2F; if (this.world.f(i, j, k)) { @@ -637,6 +657,16 @@ public abstract class EntityHuman extends EntityLiving { this.world.q(); } + // CraftBukkit start + if (this.getBukkitEntity() instanceof Player) { + Player player = (Player) this.getBukkitEntity(); + CraftServer server = ((WorldServer) world).getServer(); + org.bukkit.block.Block bed = ((WorldServer) world).getWorld().getBlockAt(this.b.a, this.b.b, this.b.c); + PlayerBedLeaveEvent event = new PlayerBedLeaveEvent(player, bed); + server.getPluginManager().callEvent(event); + } + // CraftBukkit end + if (flag) { this.sleepTicks = 0; } else { |