70ce6ce831
This makes it easier for downstream projects (forks) to replace the version fetching system with their own. It is as simple as implementing an interface and overriding the default implementation of org.bukkit.UnsafeValues#getVersionFetcher() It also makes it easier for us to organize things like the version history feature. Lastly I have updated the paper implementation to check against the site API rather than against jenkins.
38 lines
1.8 KiB
Diff
38 lines
1.8 KiB
Diff
From ec739e1cdd5521ae380b82b57928bb0c77f5061f 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 bab32af46..b647e4287 100644
|
|
--- a/src/main/java/net/minecraft/server/PlayerList.java
|
|
+++ b/src/main/java/net/minecraft/server/PlayerList.java
|
|
@@ -109,7 +109,22 @@ public abstract class PlayerList {
|
|
}
|
|
// CraftBukkit end
|
|
|
|
- entityplayer.spawnIn(worldserver);
|
|
+ // 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().worldProvider.getDimensionManager();
|
|
+ // Paper end
|
|
+
|
|
+ entityplayer.spawnIn(((CraftWorld) newLoc.getWorld()).getHandle());
|
|
entityplayer.playerInteractManager.a((WorldServer) entityplayer.world);
|
|
String s1 = "local";
|
|
|
|
--
|
|
2.21.0
|
|
|