mirror of
https://github.com/Sollace/Unicopia.git
synced 2025-02-01 19:46:42 +01:00
Ensure registration happens in order
This commit is contained in:
parent
81db96d8a2
commit
0b3f49e7fe
2 changed files with 14 additions and 6 deletions
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue