Class LecternHandler
java.lang.Object
com.hammy275.immersivemc.common.immersive.handler.LecternHandler
- All Implemented Interfaces:
ImmersiveHandler<BookData>
,WorldStorageHandler<BookData>
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
Since the retrieval and saving of world storages are server-side only, this Immersive cannot be client authoritative.boolean
enabledInConfig
(net.minecraft.world.entity.player.Player player) net.minecraft.resources.ResourceLocation
getID()
Class<? extends WorldStorage>
boolean
isDirtyForClientSync
(net.minecraft.server.level.ServerPlayer player, net.minecraft.core.BlockPos pos) Function to determine whether the block has changed its contents to sync to the client since its last sync.boolean
isValidBlock
(net.minecraft.core.BlockPos pos, net.minecraft.world.level.Level level) makeInventoryContents
(net.minecraft.server.level.ServerPlayer player, net.minecraft.core.BlockPos pos) Creates inventory contents on the server to send to clients.void
swap
(int slot, net.minecraft.world.InteractionHand hand, net.minecraft.core.BlockPos pos, net.minecraft.server.level.ServerPlayer player, ItemSwapAmount amount) Swaps an item from a player's hand into this immersive (and/or vice-versa).Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.hammy275.immersivemc.api.common.immersive.ImmersiveHandler
onStopTracking
-
Constructor Details
-
LecternHandler
public LecternHandler()
-
-
Method Details
-
makeInventoryContents
public BookData makeInventoryContents(net.minecraft.server.level.ServerPlayer player, net.minecraft.core.BlockPos pos) Description copied from interface:ImmersiveHandler
Creates inventory contents on the server to send to clients.- Specified by:
makeInventoryContents
in interfaceImmersiveHandler<BookData>
- Parameters:
player
- Player being sent to.pos
- Position of the block being sent about.- Returns:
- A NetworkStorage to be sent over the network.
-
getEmptyNetworkStorage
- Specified by:
getEmptyNetworkStorage
in interfaceImmersiveHandler<BookData>
- Returns:
- A new instance of the same type of NetworkStorage as made with makeInventoryContents(), but in an empty state for purposes such as being decoded into by the client.
-
swap
public void swap(int slot, net.minecraft.world.InteractionHand hand, net.minecraft.core.BlockPos pos, net.minecraft.server.level.ServerPlayer player, ItemSwapAmount amount) Description copied from interface:ImmersiveHandler
Swaps an item from a player's hand into this immersive (and/or vice-versa).- Specified by:
swap
in interfaceImmersiveHandler<BookData>
- Parameters:
slot
- Slot being swapped with in this immersive.hand
- Player's hand being swapped with.pos
- Position of block being swapped with.player
- Player who is swapping.amount
- An object representing the amount of items to swap. UseItemSwapAmount.getNumItemsToSwap(int)
, passing in the item stack size of the item in the player's hand to get the amount of items to swap.
-
isDirtyForClientSync
public boolean isDirtyForClientSync(net.minecraft.server.level.ServerPlayer player, net.minecraft.core.BlockPos pos) Description copied from interface:ImmersiveHandler
Function to determine whether the block 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.- Specified by:
isDirtyForClientSync
in interfaceImmersiveHandler<BookData>
- Parameters:
player
- Player to potentially send new data to.pos
- Position of block to check.- Returns:
- Whether the given block has changed since it was last synced to the client
-
isValidBlock
public boolean isValidBlock(net.minecraft.core.BlockPos pos, net.minecraft.world.level.Level level) - Specified by:
isValidBlock
in interfaceImmersiveHandler<BookData>
- Parameters:
pos
- Position to check.level
- The level being checked in.- Returns:
- Whether the supplied block matches what this handler handles.
-
enabledInConfig
public boolean enabledInConfig(net.minecraft.world.entity.player.Player player) - Specified by:
enabledInConfig
in interfaceImmersiveHandler<BookData>
- Parameters:
player
- The player we're checking the config of.- Returns:
- Whether the immersive this handler handles is enabled. If you do not have a configuration system, this should always return true.
-
clientAuthoritative
public boolean clientAuthoritative()Description copied from interface:WorldStorageHandler
Since the retrieval and saving of world storages are server-side only, this Immersive cannot be client authoritative.- Specified by:
clientAuthoritative
in interfaceImmersiveHandler<BookData>
- Specified by:
clientAuthoritative
in interfaceWorldStorageHandler<BookData>
- Returns:
- Whether this immersive should have tracking initiated by the client. The same value should always be returned by this method.
-
getEmptyWorldStorage
- Specified by:
getEmptyWorldStorage
in interfaceWorldStorageHandler<BookData>
- Returns:
- An empty WorldStorage to load from NBT in.
-
getWorldStorageClass
- Specified by:
getWorldStorageClass
in interfaceWorldStorageHandler<BookData>
- Returns:
- The class this handler's world storage uses.
-
getID
public net.minecraft.resources.ResourceLocation getID()- Specified by:
getID
in interfaceImmersiveHandler<BookData>
- Returns:
- A unique ID to identify this handler. The same value should always be returned by this method.
-