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 @Override
public CrashReportCategory fillReportDetails(CrashReport report) { public CrashReportCategory fillReportDetails(CrashReport report) {
CrashReportCategory crashReportCategory = super.fillReportDetails(report); CrashReportCategory crashReportCategory = super.fillReportDetails(report);
@@ -1712,6 +_,8 @@ @@ -1712,6 +_,7 @@
final class EntityCallbacks implements LevelCallback<Entity> { final class EntityCallbacks implements LevelCallback<Entity> {
@Override @Override
public void onCreated(Entity entity) { 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 + 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"; String string = "onTrackingStart called during navigation iteration";
Util.logAndPauseIfInIde( Util.logAndPauseIfInIde(
"onTrackingStart called during navigation iteration", new IllegalStateException("onTrackingStart called during navigation iteration") "onTrackingStart called during navigation iteration", new IllegalStateException("onTrackingStart called during navigation iteration")
@@ -1755,10 +_,51 @@ @@ -1755,10 +_,52 @@
} }
entity.updateDynamicGameEventListener(DynamicGameEventListener::add); entity.updateDynamicGameEventListener(DynamicGameEventListener::add);
+ entity.inWorld = true; // CraftBukkit - Mark entity as in world
+ entity.valid = true; // CraftBukkit + entity.valid = true; // CraftBukkit
+ ServerLevel.this.getChunkSource().addEntity(entity); // Paper - ignore and warn about illegal addEntity calls instead of crashing server + ServerLevel.this.getChunkSource().addEntity(entity); // Paper - ignore and warn about illegal addEntity calls instead of crashing server
+ // Paper start - Entity origin API + // Paper start - Entity origin API

View File

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