spigot/CraftBukkit-Patches/0062-Implement-PlayerSpawnLocationEvent.patch
2021-11-22 09:00:00 +11:00

33 lines
1.6 KiB
Diff

From 97761b4ca76c0368d45a1518854af28e7fab5527 Mon Sep 17 00:00:00 2001
From: ninja <xninja@openmailbox.org>
Date: Tue, 8 Apr 2014 14:05:19 +0200
Subject: [PATCH] Implement PlayerSpawnLocationEvent.
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 3631f88c7..86033e34a 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -212,6 +212,19 @@ public abstract class PlayerList {
s1 = networkmanager.getRemoteAddress().toString();
}
+ // Spigot start - spawn location event
+ Player spawnPlayer = entityplayer.getBukkitEntity();
+ org.spigotmc.event.player.PlayerSpawnLocationEvent ev = new org.spigotmc.event.player.PlayerSpawnLocationEvent(spawnPlayer, spawnPlayer.getLocation());
+ cserver.getPluginManager().callEvent(ev);
+
+ Location loc = ev.getSpawnLocation();
+ worldserver1 = ((CraftWorld) loc.getWorld()).getHandle();
+
+ entityplayer.spawnIn(worldserver1);
+ entityplayer.gameMode.setLevel((WorldServer) entityplayer.level);
+ entityplayer.absMoveTo(loc.getX(), loc.getY(), loc.getZ(), loc.getYaw(), loc.getPitch());
+ // Spigot end
+
// CraftBukkit - Moved message to after join
// PlayerList.LOGGER.info("{}[{}] logged in with entity id {} at ({}, {}, {})", entityplayer.getName().getString(), s1, entityplayer.getId(), entityplayer.getX(), entityplayer.getY(), entityplayer.getZ());
WorldData worlddata = worldserver1.getLevelData();
--
2.25.1