From c63a19607dba02582a3e2f7ec98d9e16402ea885 Mon Sep 17 00:00:00 2001 From: Steve Anton Date: Tue, 22 Dec 2015 22:04:15 -0600 Subject: [PATCH] Add PlayerInitialSpawnEvent For modifying a player's initial spawn location as they join the server diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java index deb0b82..c33915e 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -99,6 +99,22 @@ public abstract class PlayerList { } // CraftBukkit end + // PaperSpigot start - support PlayerInitialSpawnEvent + Location originalLoc = new Location(entityplayer.world.getWorld(), entityplayer.locX, entityplayer.locY, entityplayer.locZ, entityplayer.yaw, entityplayer.pitch); + org.bukkit.event.player.PlayerInitialSpawnEvent event = new org.bukkit.event.player.PlayerInitialSpawnEvent(entityplayer.getBukkitEntity(), originalLoc); + this.server.server.getPluginManager().callEvent(event); + + Location newLoc = event.getSpawnLocation(); + entityplayer.world = ((CraftWorld) newLoc.getWorld()).getHandle(); + entityplayer.locX = newLoc.getX(); + entityplayer.locY = newLoc.getY(); + entityplayer.locZ = newLoc.getZ(); + entityplayer.yaw = newLoc.getYaw(); + entityplayer.pitch = newLoc.getPitch(); + entityplayer.dimension = ((CraftWorld) newLoc.getWorld()).getHandle().dimension; + entityplayer.spawnWorld = entityplayer.world.worldData.getName(); + // PaperSpigot end + entityplayer.spawnIn(this.server.getWorldServer(entityplayer.dimension)); entityplayer.playerInteractManager.a((WorldServer) entityplayer.world); String s1 = "local"; -- 2.6.4