Interface SerializableDataHolder.Immutable<I extends SerializableDataHolder.Immutable<I>>

All Superinterfaces:
CopyableDataHolder, DataHolder, DataHolder.Immutable<I>, DataSerializable, SerializableDataHolder, ValueContainer
All Known Subinterfaces:
BlockSnapshot, BlockState, EntitySnapshot, FluidStackSnapshot, FluidState, ItemStackSnapshot, LocatableBlock, LocatableSnapshot<T>, State<S>
Enclosing interface:
SerializableDataHolder

public static interface SerializableDataHolder.Immutable<I extends SerializableDataHolder.Immutable<I>> extends SerializableDataHolder, DataHolder.Immutable<I>
  • Method Details

    • withRawData

      I withRawData(DataView container) throws InvalidDataException
      Attempts to set all data of this DataHolder according to the DataView's held information. Using this to modify known to be Keys provided dynamically through DataProviders is unsupported. The format of the DataView's contained data is dependent on the type of DataHolder.Mutable this is. In some cases, the format is specified based on a more specific type, such as for EntityTypes, or ItemTypes.

      This setter is used to provide setting custom data that is not represented by the Data API, including forge mods and other unknown data. Attempts to validate the provided view is not always possible due to the nature of the data being parsed by the implementation, and only understood by clients. Other cases where the data can be validated and the data is incompatible will end up throwing an InvalidDataException.

      Parameters:
      container - A container containing all raw data to set on this data holder
      Returns:
      The new immutable data holder containing the raw data
      Throws:
      InvalidDataException - If the container is missing or has invalid data that this holder will refuse
    • copy

      I copy()
      Description copied from interface: CopyableDataHolder
      Creates a clone copy of this CopyableDataHolder as a new CopyableDataHolder such that all the Values are safely duplicated to the new instance. It is not guaranteed that the returning container is of the same type as this container.
      Specified by:
      copy in interface CopyableDataHolder
      Specified by:
      copy in interface SerializableDataHolder
      Returns:
      The new copy