Class DataHolder

java.lang.Object
info.u_team.u_team_core.api.sync.DataHolder
Direct Known Subclasses:
MessageHolder

public abstract class DataHolder extends Object
This class holds a data buffer with setter and getter for synchronizing. Furthermore the data holder implemented a method to check if the data has changed and should be synchronized.
  • Constructor Details

    • DataHolder

      public DataHolder()
  • Method Details

    • get

      public abstract net.minecraft.network.FriendlyByteBuf get()
      Should return an instance of FriendlyByteBuf that cannot be manipulated after that call. Generally it is a good idea to return a copy of the original data buffer here.
      Returns:
      A buffer for synchronizing
    • set

      public abstract void set(net.minecraft.network.FriendlyByteBuf byteBuf)
      Sets the received instance of the FriendlyByteBuf. From this buffer the data can be read.
      Parameters:
      byteBuf - The received buffer
    • checkAndClearUpdateFlag

      public boolean checkAndClearUpdateFlag()
      Checks if the data has changed. Resets the changed bit afterwards. For performance reasons this method should be overwritten if the change check can be implemented directly on the data types. The default methods compared the buffers.
      Returns:
      True if data has changed
    • createHolder

      public static final DataHolder createHolder(Supplier<net.minecraft.network.FriendlyByteBuf> supplier, Consumer<net.minecraft.network.FriendlyByteBuf> consumer)
    • createByteHolder

      public static final DataHolder createByteHolder(Supplier<Byte> supplier, Consumer<Byte> consumer)
    • createShortHolder

      public static final DataHolder createShortHolder(Supplier<Short> supplier, Consumer<Short> consumer)
    • createIntHolder

      public static final DataHolder createIntHolder(IntSupplier supplier, IntConsumer consumer)
    • createLongHolder

      public static final DataHolder createLongHolder(LongSupplier supplier, LongConsumer consumer)
    • createFloatHolder

      public static final DataHolder createFloatHolder(Supplier<Float> supplier, Consumer<Float> consumer)
    • createDoubleHolder

      public static final DataHolder createDoubleHolder(Supplier<Double> supplier, Consumer<Double> consumer)
    • createBooleanHolder

      public static final DataHolder createBooleanHolder(BooleanSupplier supplier, it.unimi.dsi.fastutil.booleans.BooleanConsumer consumer)