Files
Tenet/spigot/CraftBukkit-Patches/0048-Implement-PlayerSpawnLocationEvent.patch
2024-05-17 14:02:17 +08:00

34 lines
1.7 KiB
Diff

From 153b64980bf4491c2ab71b05180aa1197d75c8a4 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 5c298068df..c89e7572a0 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -223,6 +223,19 @@ public abstract class PlayerList {
entityplayer.setServerLevel(worldserver1);
String s1 = networkmanager.getLoggableAddress(this.server.logIPs());
+ // 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 ({}, {}, {})", new Object[]{entityplayer.getName().getString(), s1, entityplayer.getId(), entityplayer.getX(), entityplayer.getY(), entityplayer.getZ()});
WorldData worlddata = worldserver1.getLevelData();
--
2.43.2