Interface PlayerAttachmentImmersiveHandler<S extends NetworkStorage>

Type Parameters:
S - The type of NetworkStorage used to sync data from server to client if ImmersiveHandler.clientAuthoritative() returns false.
All Superinterfaces:
ImmersiveHandler
All Known Implementing Classes:
BagHandler, HitboxesHandler

public non-sealed interface PlayerAttachmentImmersiveHandler<S extends NetworkStorage> extends ImmersiveHandler
The ImmersiveHandler for player-attachment Immersives.
See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
     
    boolean
    isDirtyForClientSync(net.minecraft.server.level.ServerPlayer tracker, net.minecraft.server.level.ServerPlayer owner)
    Function to determine whether the Immersive's data has changed its contents to sync to the client since its last sync.
    makeInventoryContents(net.minecraft.server.level.ServerPlayer tracker, net.minecraft.server.level.ServerPlayer owner)
    Creates inventory contents on the server to send to clients.
    default void
    onStopTracking(net.minecraft.server.level.ServerPlayer tracker, net.minecraft.server.level.ServerPlayer owner)
    Function called whenever this immersive is no longer being tracked.
    void
    swap(int slot, net.minecraft.world.InteractionHand hand, net.minecraft.server.level.ServerPlayer owner, net.minecraft.server.level.ServerPlayer tracker, ItemSwapAmount amount)
    Swaps an item from a player's hand into this immersive (and/or vice-versa).

    Methods inherited from interface ImmersiveHandler

    clientAuthoritative, enabledInConfig, getID
  • Method Details

    • makeInventoryContents

      S makeInventoryContents(net.minecraft.server.level.ServerPlayer tracker, net.minecraft.server.level.ServerPlayer owner)
      Creates inventory contents on the server to send to clients.
      Parameters:
      tracker - Player who's receiving the inventory contents.
      owner - Player whose inventory contents are being made.
      Returns:
      A NetworkStorage to be sent over the network.
    • getEmptyNetworkStorage

      S getEmptyNetworkStorage()
      Returns:
      A new instance of the same type of NetworkStorage as made with makeInventoryContents(ServerPlayer, ServerPlayer), but in an empty state for purposes such as being decoded into by the client.
    • swap

      void swap(int slot, net.minecraft.world.InteractionHand hand, net.minecraft.server.level.ServerPlayer owner, net.minecraft.server.level.ServerPlayer tracker, ItemSwapAmount amount)
      Swaps an item from a player's hand into this immersive (and/or vice-versa).
      Parameters:
      slot - Slot being swapped with in this immersive.
      hand - Player's hand being swapped with.
      owner - Player whose inventory is being swapped with.
      tracker - Player who's performing the swapping.
      amount - An object representing the amount of items to swap. Use ItemSwapAmount.getNumItemsToSwap(), passing in the item stack size of the item in the player's hand to get the amount of items to swap.
    • isDirtyForClientSync

      boolean isDirtyForClientSync(net.minecraft.server.level.ServerPlayer tracker, net.minecraft.server.level.ServerPlayer owner)
      Function to determine whether the Immersive's data has changed its contents to sync to the client since its last sync. Dirtiness is addressed every tick, so for every tick, you should clear ALL flags used for dirtiness.
      Parameters:
      tracker - Player to potentially send new data to.
      owner - Player whose data may be dirty.
      Returns:
      Whether this Immersive for the provided player has changed since it was last synced.
    • onStopTracking

      default void onStopTracking(net.minecraft.server.level.ServerPlayer tracker, net.minecraft.server.level.ServerPlayer owner)
      Function called whenever this immersive is no longer being tracked. Only ever called server-side.
      Parameters:
      tracker - Player who is no longer tracking this Immersive.
      owner - Player who owns/controls this Immersive.