summaryrefslogtreecommitdiffstats
path: root/src/main/java
diff options
context:
space:
mode:
authorEvilSeph <evilseph@gmail.com>2012-03-10 00:36:11 -0500
committerEvilSeph <evilseph@gmail.com>2012-03-10 01:52:45 -0500
commit08bd33a3ed979109e912064b0e2dd6959c2fb20f (patch)
treee4521efcdb5c73b89d03d12578f7117772a3a0a3 /src/main/java
parent6f40a22e164b7f3ec50aa78fa19d1bbcfc508282 (diff)
downloadcraftbukkit-08bd33a3ed979109e912064b0e2dd6959c2fb20f.tar
craftbukkit-08bd33a3ed979109e912064b0e2dd6959c2fb20f.tar.gz
craftbukkit-08bd33a3ed979109e912064b0e2dd6959c2fb20f.tar.lz
craftbukkit-08bd33a3ed979109e912064b0e2dd6959c2fb20f.tar.xz
craftbukkit-08bd33a3ed979109e912064b0e2dd6959c2fb20f.zip
Made entering an end portal from The End move the player to their bed spawn if it exists. Fixes BUKKIT-1061
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/net/minecraft/server/NetServerHandler.java16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/main/java/net/minecraft/server/NetServerHandler.java b/src/main/java/net/minecraft/server/NetServerHandler.java
index 8c24d43f..356e0008 100644
--- a/src/main/java/net/minecraft/server/NetServerHandler.java
+++ b/src/main/java/net/minecraft/server/NetServerHandler.java
@@ -1093,11 +1093,19 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
public void a(Packet9Respawn packet9respawn) {
if (this.player.viewingCredits) {
// CraftBukkit start
- CraftWorld cworld = (CraftWorld) this.server.getWorlds().get(0);
- ChunkCoordinates chunkcoordinates = cworld.getHandle().getSpawn();
- Location toLocation = new Location(cworld, chunkcoordinates.x + 0.5, chunkcoordinates.y, chunkcoordinates.z + 0.5);
-
org.bukkit.craftbukkit.PortalTravelAgent pta = new org.bukkit.craftbukkit.PortalTravelAgent();
+ Location toLocation;
+
+ if (this.player.getBukkitEntity().getBedSpawnLocation() == null) {
+ CraftWorld cworld = (CraftWorld) this.server.getWorlds().get(0);
+ ChunkCoordinates chunkcoordinates = cworld.getHandle().getSpawn();
+ toLocation = new Location(cworld, chunkcoordinates.x + 0.5, chunkcoordinates.y, chunkcoordinates.z + 0.5);
+ this.player.netServerHandler.sendPacket(new Packet70Bed(0, 0));
+ } else {
+ toLocation = this.player.getBukkitEntity().getBedSpawnLocation();
+ toLocation = new Location(toLocation.getWorld(), toLocation.getX() + 0.5, toLocation.getY(), toLocation.getZ() + 0.5);
+ }
+
PlayerPortalEvent event = new PlayerPortalEvent(this.player.getBukkitEntity(), this.player.getBukkitEntity().getLocation(), toLocation, pta, PlayerPortalEvent.TeleportCause.END_PORTAL);
event.useTravelAgent(false);