Replace spigot check with generation check

This commit is contained in:
Bjarne Koll
2025-05-24 22:43:48 +02:00
parent b8fe22c9cd
commit ee3b405316
2 changed files with 5 additions and 7 deletions

View File

@@ -1065,11 +1065,10 @@
@Override
public CrashReportCategory fillReportDetails(CrashReport report) {
CrashReportCategory crashReportCategory = super.fillReportDetails(report);
@@ -1712,6 +_,8 @@
@@ -1712,6 +_,7 @@
final class EntityCallbacks implements LevelCallback<Entity> {
@Override
public void onCreated(Entity entity) {
+ entity.inWorld = true; // CraftBukkit - Mark entity as in world
+ entity.setOldPosAndRot(); // Paper - update old pos / rot for new entities as it will default to Vec3.ZERO
}
@@ -1109,10 +1108,11 @@
String string = "onTrackingStart called during navigation iteration";
Util.logAndPauseIfInIde(
"onTrackingStart called during navigation iteration", new IllegalStateException("onTrackingStart called during navigation iteration")
@@ -1755,10 +_,51 @@
@@ -1755,10 +_,52 @@
}
entity.updateDynamicGameEventListener(DynamicGameEventListener::add);
+ entity.inWorld = true; // CraftBukkit - Mark entity as in world
+ entity.valid = true; // CraftBukkit
+ ServerLevel.this.getChunkSource().addEntity(entity); // Paper - ignore and warn about illegal addEntity calls instead of crashing server
+ // Paper start - Entity origin API

View File

@@ -1961,10 +1961,8 @@ public class CraftEventFactory {
return;
}
// SPIGOT-8041: Do not call event unless entity has been spawned into world
if (!entity.inWorld) {
return;
}
// Do not call during generation.
if (entity.generation) return;
Bukkit.getPluginManager().callEvent(new EntityRemoveEvent(entity.getBukkitEntity(), cause));
}