Ensure registration happens in order

This commit is contained in:
Sollace 2024-05-25 15:19:53 +01:00
parent 81db96d8a2
commit 0b3f49e7fe
No known key found for this signature in database
GPG key ID: E52FACE7B5C773DB
2 changed files with 14 additions and 6 deletions

View file

@ -50,10 +50,16 @@ abstract class MixinEntity implements EntityDuck, Trackable {
@Override @Override
public DataTrackerManager getDataTrackers() { public DataTrackerManager getDataTrackers() {
if (dataTrackerManager == null) { synchronized (this) {
dataTrackerManager = new DataTrackerManager((Entity)(Object)this); if (dataTrackerManager == null) {
dataTrackerManager = new DataTrackerManager((Entity)(Object)this);
// ensure lazy registration happens
if (this instanceof Equine.Container<?> eq) {
eq.get();
}
}
return dataTrackerManager;
} }
return dataTrackerManager;
} }
@Override @Override

View file

@ -52,10 +52,12 @@ abstract class MixinLivingEntity extends Entity implements LivingEntityDuck, Equ
@Override @Override
public Living<?> get() { public Living<?> get() {
if (caster == null) { synchronized (this) {
caster = create(); if (caster == null) {
caster = create();
}
return (Living<?>)caster;
} }
return (Living<?>)caster;
} }
@Override @Override