even even more progress
This commit is contained in:
parent
8599f95b4f
commit
42458fbca4
15 changed files with 88 additions and 99 deletions
24
patches/removed/1.17/0107-Fix-Double-World-Add-issues.patch
Normal file
24
patches/removed/1.17/0107-Fix-Double-World-Add-issues.patch
Normal file
|
@ -0,0 +1,24 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Aikar <aikar@aikar.co>
|
||||
Date: Tue, 21 Jun 2016 22:54:34 -0400
|
||||
Subject: [PATCH] Fix Double World Add issues
|
||||
|
||||
Vanilla will double add Spider Jockeys to the world, so ignore already added.
|
||||
|
||||
Also add debug if something else tries to, and abort before world gets bad state
|
||||
|
||||
In 1.17 the entire entity state manager was rewritten. no longer applies, needs
|
||||
further information on new state manager
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
index 0a613f94d1c796267636e1a343aeee65a49ffed5..335928d60dbfc07644ffeab366900c5e77e99d56 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -1032,6 +1032,7 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
|
||||
// CraftBukkit start
|
||||
private boolean addEntity0(Entity entity, CreatureSpawnEvent.SpawnReason spawnReason) {
|
||||
org.spigotmc.AsyncCatcher.catchOp("entity add"); // Spigot
|
||||
+ if (entity.valid) { MinecraftServer.LOGGER.error("Attempted Double World add on " + entity, new Throwable()); return true; } // Paper
|
||||
if (entity.removed) {
|
||||
// WorldServer.LOGGER.warn("Tried to add entity {} but it was marked as removed already", EntityTypes.getName(entity.getEntityType())); // CraftBukkit
|
||||
return false;
|
24
patches/removed/1.17/0114-Chunk-registration-fixes.patch
Normal file
24
patches/removed/1.17/0114-Chunk-registration-fixes.patch
Normal file
|
@ -0,0 +1,24 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Aikar <aikar@aikar.co>
|
||||
Date: Wed, 21 Sep 2016 22:54:28 -0400
|
||||
Subject: [PATCH] Chunk registration fixes
|
||||
|
||||
World checks and the Chunk Add logic are inconsistent on how Y > 256, < 0, is treated
|
||||
|
||||
Keep them consistent
|
||||
|
||||
No longer relevant in 1.17
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
index 335928d60dbfc07644ffeab366900c5e77e99d56..20650bfd10abfa010e71cfeede06c461d50d19a3 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -841,7 +841,7 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl
|
||||
if (entity.checkAndResetUpdateChunkPos()) {
|
||||
this.getProfiler().push("chunkCheck");
|
||||
int i = Mth.floor(entity.getX() / 16.0D);
|
||||
- int j = Mth.floor(entity.getY() / 16.0D);
|
||||
+ int j = Math.min(15, Math.max(0, Mth.floor(entity.getY() / 16.0D))); // Paper - stay consistent with chunk add/remove behavior
|
||||
int k = Mth.floor(entity.getZ() / 16.0D);
|
||||
|
||||
if (!entity.inChunk || entity.xChunk != i || entity.yChunk != j || entity.zChunk != k) {
|
Loading…
Add table
Add a link
Reference in a new issue