Stop writing corrupt tile entities to schematics

also make some stuff definitely immutable.
This commit is contained in:
dordsor21
2020-12-13 21:06:36 +00:00
parent 04ba545aa2
commit 6676d77aaa
3 changed files with 16 additions and 12 deletions

View File

@ -49,13 +49,8 @@ import static com.google.common.base.Preconditions.checkNotNull;
*/
public class BaseBlock implements BlockStateHolder<BaseBlock>, TileEntityBlock {
private BlockState blockState;
@Nullable private CompoundTag nbtData;
@Deprecated
public BaseBlock() {
this(BlockTypes.AIR.getDefaultState());
}
private final BlockState blockState;
@Nullable private final CompoundTag nbtData;
/**
* Construct a block with the given type and default data.
@ -151,6 +146,9 @@ public class BaseBlock implements BlockStateHolder<BaseBlock>, TileEntityBlock {
return "";
}
Tag idTag = nbtData.getValue().get("id");
if (idTag == null) {
idTag = nbtData.getValue().get("Id");
}
if (idTag instanceof StringTag) {
return ((StringTag) idTag).getValue();
} else {
@ -164,6 +162,11 @@ public class BaseBlock implements BlockStateHolder<BaseBlock>, TileEntityBlock {
return this.nbtData;
}
@Override
public void setNbtData(@Nullable CompoundTag nbtData) {
throw new UnsupportedOperationException("This class is immutable.");
}
/**
* Checks whether the type ID and data value are equal.
*/