mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-15 07:01:36 +08:00
18c3716c49
This enables us a fast reference to the entities current chunk instead of having to look it up by hashmap lookups. We also store counts by type to further enable other performance optimizations in later patches.
37 lines
1.7 KiB
Diff
37 lines
1.7 KiB
Diff
From a696a1afb907dcc000b57e966c3ab11c5aa53138 Mon Sep 17 00:00:00 2001
|
|
From: Steve Anton <anxuiz.nx@gmail.com>
|
|
Date: Thu, 3 Mar 2016 00:09:38 -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 1d9f3e3dd..536534d2e 100644
|
|
--- a/src/main/java/net/minecraft/server/PlayerList.java
|
|
+++ b/src/main/java/net/minecraft/server/PlayerList.java
|
|
@@ -110,6 +110,21 @@ public abstract class PlayerList {
|
|
}
|
|
// CraftBukkit end
|
|
|
|
+ // Paper start - support PlayerInitialSpawnEvent
|
|
+ Location originalLoc = new Location(entityplayer.world.getWorld(), entityplayer.locX, entityplayer.locY, entityplayer.locZ, entityplayer.yaw, entityplayer.pitch);
|
|
+ com.destroystokyo.paper.event.player.PlayerInitialSpawnEvent event = new com.destroystokyo.paper.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;
|
|
+ // Paper end
|
|
+
|
|
entityplayer.spawnIn(this.server.getWorldServer(entityplayer.dimension));
|
|
entityplayer.playerInteractManager.a((WorldServer) entityplayer.world);
|
|
String s1 = "local";
|
|
--
|
|
2.18.0
|
|
|