Firstly is this thread relevant?
Secondly, if you have an opinion on this, make it known please. I'm looking for a practical way to save entity data. If you want to see my entity class, it's below. I'm looking to save the serum variable. What I have right now works fine but it does not save across world joins.
public abstract class Dinosaur extends Animal {
static final EntityDataAccessor<Integer> serum = SynchedEntityData.defineId(Dinosaur.class, EntityDataSerializers.INT);
protected Dinosaur(EntityType<? extends Animal> e, Level l) {
super(e, l);
}
public boolean isJuvenile() {
return this.isBaby() && this.getSerum() > 0;
}
@Override
public void tick() {
super.tick();
if (this.getSerum() >= 4) {
this.age = 0;
if (this.isBaby()) {
this.setBaby(false);
}
}
else {
if (!this.isBaby()) {
this.setBaby(true);
}
this.age = -20;
}
}
@Override
public void defineSynchedData() {
super.defineSynchedData();
this.entityData.define(serum, 0);
}
public void addSerum() {
int s = this.getSerum();
s++;
this.getEntityData().set(serum, s);
}
public int getSerum() {
return this.getEntityData().get(serum);
}
}