3
0
Mirror von https://github.com/PaperMC/Paper.git synchronisiert 2024-11-15 20:40:07 +01:00
Paper/CraftBukkit-Patches/0116-Implement-PlayerSpawnLocationEvent.patch

42 Zeilen
1.8 KiB
Diff

From d291a5cfd2bc9cde7bfa23f9824f114db775a7f0 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/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index 686a632..a88be23 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -36,6 +36,7 @@ import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
import org.bukkit.util.Vector;
+import org.spigotmc.event.player.PlayerSpawnLocationEvent;
// CraftBukkit end
public abstract class PlayerList {
@@ -105,6 +106,19 @@ public abstract class PlayerList {
s1 = networkmanager.getSocketAddress().toString();
}
+ // Spigot start - spawn location event
+ Player bukkitPlayer = entityplayer.getBukkitEntity();
+ PlayerSpawnLocationEvent ev = new PlayerSpawnLocationEvent(bukkitPlayer, bukkitPlayer.getLocation());
+ Bukkit.getPluginManager().callEvent(ev);
+
+ Location loc = ev.getSpawnLocation();
+ WorldServer world = ((CraftWorld) loc.getWorld()).getHandle();
+
+ entityplayer.spawnIn(world);
+ entityplayer.setPosition(loc.getX(), loc.getY(), loc.getZ());
+ entityplayer.setYawPitch(loc.getYaw(), loc.getPitch());
+ // Spigot end
+
// CraftBukkit - Moved message to after join
// PlayerList.f.info(entityplayer.getName() + "[" + s1 + "] logged in with entity id " + entityplayer.getId() + " at (" + entityplayer.locX + ", " + entityplayer.locY + ", " + entityplayer.locZ + ")");
WorldServer worldserver = this.server.getWorldServer(entityplayer.dimension);
--
2.1.4