mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
From 53f3da80d0f78b44c813c595464893c59866365b Mon Sep 17 00:00:00 2001
|
||||
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
||||
Date: Sat, 19 Oct 2019 01:42:50 -0500
|
||||
Subject: [PATCH] Fix SpawnChangeEvent not firing for all use-cases
|
||||
|
||||
---
|
||||
src/main/java/net/minecraft/server/World.java | 3 +++
|
||||
src/main/java/org/bukkit/craftbukkit/CraftWorld.java | 12 ++++++++----
|
||||
2 files changed, 11 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
||||
index 8d3e45dc0c..38bab59e76 100644
|
||||
--- a/src/main/java/net/minecraft/server/World.java
|
||||
+++ b/src/main/java/net/minecraft/server/World.java
|
||||
@@ -1458,8 +1458,11 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose
|
||||
return blockposition;
|
||||
}
|
||||
|
||||
+ public void setSpawn(BlockPosition blockposition) { v(blockposition); } // Purpur - OBFHELPER
|
||||
public void a_(BlockPosition blockposition) {
|
||||
+ BlockPosition prevPos = getSpawn(); // Purpur
|
||||
this.worldData.setSpawn(blockposition);
|
||||
+ new org.bukkit.event.world.SpawnChangeEvent(world, MCUtil.toLocation(this, prevPos)).callEvent(); // Purpur
|
||||
}
|
||||
|
||||
public boolean a(EntityHuman entityhuman, BlockPosition blockposition) {
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
index 112ad300d3..b8d45aa3bf 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
@@ -379,12 +379,16 @@ public class CraftWorld implements World {
|
||||
@Override
|
||||
public boolean setSpawnLocation(int x, int y, int z) {
|
||||
try {
|
||||
- Location previousLocation = getSpawnLocation();
|
||||
- world.worldData.setSpawn(new BlockPosition(x, y, z));
|
||||
+ // Purpur start - move to World#setSpawn()
|
||||
+ //Location previousLocation = getSpawnLocation();
|
||||
+ //world.worldData.setSpawn(new BlockPosition(x, y, z));
|
||||
|
||||
// Notify anyone who's listening.
|
||||
- SpawnChangeEvent event = new SpawnChangeEvent(this, previousLocation);
|
||||
- server.getPluginManager().callEvent(event);
|
||||
+ //SpawnChangeEvent event = new SpawnChangeEvent(this, previousLocation);
|
||||
+ //server.getPluginManager().callEvent(event);
|
||||
+
|
||||
+ world.setSpawn(new BlockPosition(x, y, z));
|
||||
+ // Purpur end
|
||||
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
--
|
||||
2.23.0.rc1
|
||||
|
||||
Reference in New Issue
Block a user