Skip to content

Commit c98b31b

Browse files
authored
Fix DimPos being persisted under a hardcoded NBT key (#235)
1 parent e5f5868 commit c98b31b

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

loader-neoforge/src/main/java/org/cyclops/cyclopscore/persist/nbt/NBTClassTypesNeoForge.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public FluidStack getDefaultValue() {
4040

4141
@Override
4242
public void writePersistedField(String name, DimPos object, ValueOutput tag) {
43-
ValueOutput dimPos = tag.child("dim");
43+
ValueOutput dimPos = tag.child(name);
4444
dimPos.putString("dim", object.getLevel());
4545
dimPos.putInt("x", object.getBlockPos().getX());
4646
dimPos.putInt("y", object.getBlockPos().getY());
@@ -49,7 +49,10 @@ public void writePersistedField(String name, DimPos object, ValueOutput tag) {
4949

5050
@Override
5151
public DimPos readPersistedField(String name, ValueInput tag) {
52-
ValueInput dimPos = tag.child(name).orElseThrow();
52+
ValueInput dimPos = tag.child(name)
53+
// Fallback for data that was written under a hardcoded key by older versions
54+
.or(() -> tag.child("dim"))
55+
.orElseThrow();
5356
String dimensionName = dimPos.getString("dim").orElseThrow();
5457
ResourceKey<Level> dimensionType = ResourceKey.create(Registries.DIMENSION, Identifier.parse(dimensionName));
5558
return DimPos.of(dimensionType, new BlockPos(dimPos.getInt("x").orElseThrow(), dimPos.getInt("y").orElseThrow(), dimPos.getInt("z").orElseThrow()));

0 commit comments

Comments
 (0)