Class DataPacketProcessor<T extends DataPacket>

java.lang.Object
cn.nukkit.network.process.DataPacketProcessor<T>
Direct Known Subclasses:
AnimateProcessor, BlockEntityDataProcessor, BlockPickRequestProcessor, BookEditProcessor, ClientToServerHandshakeProcessor, CommandBlockUpdateProcessor, CommandRequestProcessor, ContainerCloseProcessor, CraftingEventProcessor, EmoteProcessor, EntityEventProcessor, FilterTextProcessor, InteractProcessor, InventoryTransactionProcessor, ItemFrameDropItemProcessor, LecternUpdateProcessor, LevelSoundEventProcessor, LoginProcessor, MapInfoRequestProcessor, MobEquipmentProcessor, ModalFormResponseProcessor, MoveEntityAbsoluteProcessor, MovePlayerProcessor, NPCRequestProcessor, PacketViolationWarningProcessor, PlayerActionProcessor, PlayerAuthInputProcessor, PlayerHotbarProcessor, PlayerInputProcessor, PlayerSkinProcessor, PositionTrackingDBClientRequestProcessor, RequestAbilityProcessor, RequestChunkRadiusProcessor, RequestNetworkSettingsProcessor, RequestPermissionsProcessor, ResourcePackChunkRequestProcessor, ResourcePackClientResponseProcessor, RespawnProcessor, RiderJumpProcessor, ServerSettingsRequestProcessor, SetDifficultyProcessor, SetLocalPlayerAsInitializedProcessor, SetPlayerGameTypeProcessor, ShowCreditsProcessor, StructureBlockUpdateProcessor, TextProcessor, TickSyncProcessor

@Since("1.19.80-r2") @PowerNukkitXOnly public abstract class DataPacketProcessor<T extends DataPacket> extends Object
A DataPacketProcessor is used to handle a specific type of DataPacket.
DataPacketProcessor must be thread-safe.

Why not interfaces? Hotspot C2 JIT cannot handle so many classes that impl the same interface, it makes the performance lower.
  • Constructor Details

    • DataPacketProcessor

      public DataPacketProcessor()
  • Method Details

    • handle

      public abstract void handle(@NotNull PlayerHandle playerHandle, @NotNull T pk)
    • getPacketId

      public abstract int getPacketId()
    • getProtocol

      public int getProtocol()