55d5c1650f
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 17c35d6e SPIGOT-6637: Revert "#636: Add FurnaceStartSmeltEvent" 4b27230b SPIGOT-6623: Missing API reasons for entity freezing e1528c85 #636: Add FurnaceStartSmeltEvent CraftBukkit Changes: a6292cc3 SPIGOT-6637: Revert "#874: Add FurnaceStartSmeltEvent" f4066854 SPIGOT-6579: DragonFireBall movement with setDirection jumps around a lot 9add952b SPIGOT-6623: Missing API reasons for entity freezing 2ea359f1 #874: Add FurnaceStartSmeltEvent be8d625e SPIGOT-5560, SPIGOT-6574, SPIGOT-6632: Remove no longer needed tile entity fix Spigot Changes: eac3cd96 Rebuild patches
39 lines
2.4 KiB
Diff
39 lines
2.4 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
|
Date: Sat, 22 Aug 2020 23:36:21 +0200
|
|
Subject: [PATCH] Fix SpawnChangeEvent not firing for all use-cases
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
|
index 15d27aa11594b668ca7715ed1c465c6003d6e9bf..3fc9847d26395a19abc5a16150ff8816a1b95dc8 100644
|
|
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
|
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
|
@@ -1621,6 +1621,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
|
//ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(new BlockPosition(this.worldData.a(), 0, this.worldData.c()));
|
|
|
|
this.levelData.setSpawn(pos, angle);
|
|
+ new org.bukkit.event.world.SpawnChangeEvent(getWorld(), MCUtil.toLocation(this, prevSpawn)).callEvent(); // Paper
|
|
if (this.keepSpawnInMemory) {
|
|
// if this keepSpawnInMemory is false a plugin has already removed our tickets, do not re-add
|
|
this.removeTicketsForSpawn(this.paperConfig.keepLoadedRange, prevSpawn);
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
index 6c5b6a5f1b9ee3fb5a6bae4d57c70cfcaba75624..8c8627f70f29834e19093b6298127008e75b7d74 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
@@ -386,11 +386,13 @@ public class CraftWorld implements World {
|
|
public boolean setSpawnLocation(int x, int y, int z, float angle) {
|
|
try {
|
|
Location previousLocation = this.getSpawnLocation();
|
|
- world.levelData.setSpawn(new BlockPos(x, y, z), angle);
|
|
+ world.setDefaultSpawnPos(new BlockPos(x, y, z), angle); // Paper - use WorldServer#setSpawn
|
|
|
|
+ // Paper start - move to nms.World
|
|
// Notify anyone who's listening.
|
|
- SpawnChangeEvent event = new SpawnChangeEvent(this, previousLocation);
|
|
- this.server.getPluginManager().callEvent(event);
|
|
+ // SpawnChangeEvent event = new SpawnChangeEvent(this, previousLocation);
|
|
+ // server.getPluginManager().callEvent(event);
|
|
+ // Paper end
|
|
|
|
return true;
|
|
} catch (Exception e) {
|