aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0223-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch
diff options
context:
space:
mode:
authorSpottedleaf <[email protected]>2024-11-28 17:39:40 -0800
committerSpottedleaf <[email protected]>2024-11-28 18:27:59 -0800
commitda9d110d5bf8ffb090d63cd6a443b22ef1ab9d64 (patch)
tree9dbb88d122e6c21827c230041f0b7c93d5a03bf0 /patches/server/0223-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch
parent0cc7bd485760dd0abd387f64d193ffef7aa019ee (diff)
downloadPaper-da9d110d5bf8ffb090d63cd6a443b22ef1ab9d64.tar.gz
Paper-da9d110d5bf8ffb090d63cd6a443b22ef1ab9d64.zip
Remove chunk save reattempt patch
This patch does not appear to be doing anything useful, and may hide errors. Currently, the save logic does not run through this path either so it did not do anything. Additionally, properly implement support for handling RegionFileSizeException in Moonrise.
Diffstat (limited to 'patches/server/0223-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch')
-rw-r--r--patches/server/0223-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/patches/server/0223-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch b/patches/server/0223-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch
new file mode 100644
index 0000000000..15dfd12d29
--- /dev/null
+++ b/patches/server/0223-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch
@@ -0,0 +1,42 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Aikar <[email protected]>
+Date: Sat, 21 Jul 2018 08:25:40 -0400
+Subject: [PATCH] Add Debug Entities option to debug dupe uuid issues
+
+
+diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
+index e03032b96e8f44ef83f52dcf3dc5a8856281e475..01c4f405692116813bbd3d851738f52a50b548a2 100644
+--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
++++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
+@@ -1171,6 +1171,12 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
+ // CraftBukkit start
+ private boolean addEntity(Entity entity, CreatureSpawnEvent.SpawnReason spawnReason) {
+ org.spigotmc.AsyncCatcher.catchOp("entity add"); // Spigot
++ // Paper start - extra debug info
++ if (entity.valid) {
++ MinecraftServer.LOGGER.error("Attempted Double World add on {}", entity, new Throwable());
++ return true;
++ }
++ // Paper end - extra debug info
+ if (entity.isRemoved()) {
+ // WorldServer.LOGGER.warn("Tried to add entity {} but it was marked as removed already", EntityTypes.getKey(entity.getType())); // CraftBukkit
+ return false;
+diff --git a/src/main/java/net/minecraft/world/level/entity/EntityLookup.java b/src/main/java/net/minecraft/world/level/entity/EntityLookup.java
+index 38df704dca30ef08f4d0831dc1cc48c6d6f71a4d..ed6aea7a38ef6e80c300ff9b012dcdbc390ad2c7 100644
+--- a/src/main/java/net/minecraft/world/level/entity/EntityLookup.java
++++ b/src/main/java/net/minecraft/world/level/entity/EntityLookup.java
+@@ -33,6 +33,14 @@ public class EntityLookup<T extends EntityAccess> {
+ UUID uUID = entity.getUUID();
+ if (this.byUuid.containsKey(uUID)) {
+ LOGGER.warn("Duplicate entity UUID {}: {}", uUID, entity);
++ // Paper start - extra debug info
++ if (entity instanceof net.minecraft.world.entity.Entity) {
++ final T old = this.byUuid.get(entity.getUUID());
++ if (old instanceof net.minecraft.world.entity.Entity oldCast && oldCast.getId() != entity.getId() && oldCast.valid) {
++ LOGGER.error("Overwrote an existing entity {} with {}", oldCast, entity);
++ }
++ }
++ // Paper end - extra debug info
+ } else {
+ this.byUuid.put(uUID, entity);
+ this.byId.put(entity.getId(), entity);