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,11 +50,17 @@ abstract class MixinEntity implements EntityDuck, Trackable {
@Override @Override
public DataTrackerManager getDataTrackers() { public DataTrackerManager getDataTrackers() {
synchronized (this) {
if (dataTrackerManager == null) { if (dataTrackerManager == null) {
dataTrackerManager = new DataTrackerManager((Entity)(Object)this); dataTrackerManager = new DataTrackerManager((Entity)(Object)this);
// ensure lazy registration happens
if (this instanceof Equine.Container<?> eq) {
eq.get();
}
} }
return dataTrackerManager; return dataTrackerManager;
} }
}
@Override @Override
@Accessor("submergedFluidTag") @Accessor("submergedFluidTag")

View file

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