From ff14d8bf007341e8f4029ad8be44c4abf1823e43 Mon Sep 17 00:00:00 2001 From: RTAkland Date: Tue, 8 Sep 2026 01:16:01 +0800 Subject: [PATCH] Split Socket implementation, improve performance --- .gitignore | 1 + README.md | 6 - build.gradle.kts | 1 + libmc-common/build.gradle.kts | 14 +- .../kotlin/cn/rtast/libmc/context.kt | 14 - .../cn/rtast/libmc/crypto/NetworkCipher.kt | 4 +- .../cn/rtast/libmc/crypto/ProtocolContext.kt | 14 +- .../byte_order.kt => network/ByteOrder.kt} | 2 +- .../cn/rtast/libmc/network/BytesBuffer.kt | 47 +++ .../cn/rtast/libmc/network/RawSocket.kt | 30 ++ .../cn/rtast/libmc/network/ReadChannel.kt | 14 + .../cn/rtast/libmc/network/SocketContext.kt | 14 + .../cn/rtast/libmc/network/SocketEngine.kt | 12 + .../cn/rtast/libmc/network/WriteChannel.kt | 13 + .../cn/rtast/libmc/packet/PacketCodec.kt | 10 +- .../cn/rtast/libmc/packet/PacketRegistry.kt | 8 +- .../cn/rtast/libmc/primitives/BitSet.kt | 6 +- .../cn/rtast/libmc/primitives/Either.kt | 6 +- .../kotlin/cn/rtast/libmc/primitives/IdOrX.kt | 6 +- .../kotlin/cn/rtast/libmc/primitives/IdSet.kt | 6 +- .../rtast/libmc/primitives/MinecraftString.kt | 10 +- .../cn/rtast/libmc/primitives/Optional.kt | 6 +- .../cn/rtast/libmc/primitives/Prefixed.kt | 16 +- .../kotlin/cn/rtast/libmc/primitives/Uuid.kt | 6 +- .../cn/rtast/libmc/primitives/VarInt.kt | 29 +- .../cn/rtast/libmc/primitives/VarLong.kt | 6 +- .../kotlin/cn/rtast/libmc/stream/buffer.kt | 42 --- .../kotlin/cn/rtast/libmc/stream/channels.kt | 28 -- .../kotlin/cn/rtast/libmc/stream/socket.kt | 22 -- .../kotlin/cn/rtast/libmc/context.jvm.kt | 12 - .../cn/rtast/libmc/stream/buffer.jvm.kt | 132 ------- .../cn/rtast/libmc/stream/channels.jvm.kt | 58 ---- .../cn/rtast/libmc/stream/order_convert.kt | 40 --- .../cn/rtast/libmc/stream/socket.jvm.kt | 40 --- .../kotlin/cn/rtast/libmc/context.native.kt | 23 -- .../cn/rtast/libmc/stream/buffer.native.kt | 84 ----- .../cn/rtast/libmc/stream/channels.native.kt | 61 ---- .../cn/rtast/libmc/stream/socket.native.kt | 46 --- libmc-mcping/build.gradle.kts | 23 -- .../cn/rtast/libmc/mcping/bedrock/packet.kt | 110 ------ .../libmc/mcping/bedrock/packet_writer.kt | 19 -- .../libmc/mcping/bedrock/ping_bedrock.kt | 29 -- .../mcping/bedrock/ping_response_parser.kt | 116 ------- .../cn/rtast/libmc/mcping/java/buffer.kt | 31 -- .../cn/rtast/libmc/mcping/java/packet.kt | 52 --- .../cn/rtast/libmc/mcping/java/ping_java.kt | 54 --- .../kotlin/cn/rtast/libmc/mcping/mcping.kt | 27 -- .../cn/rtast/libmc/mcping/packet_writer.kt | 27 -- .../cn/rtast/libmc/mcping/ping_response.kt | 24 -- .../cn/rtast/libmc/mcping/server_type.kt | 12 - .../src/commonTest/kotlin/test/TestPing.kt | 29 -- .../generated/bedrock-pinng-raw-response.txt | 1 - .../src/generated/java-ping-response.json | 321 ------------------ .../src/jvmTest/java/test/TestPingInJava.java | 33 -- .../mingwTest/kotlin/test/TestMingwPing.kt | 37 -- .../cn/rtast/libmc/nbt/BytesBufferNBTInput.kt | 8 +- .../rtast/libmc/nbt/BytesBufferNBTOutput.kt | 10 +- .../kotlin/cn/rtast/libmc/nbt/NBTInput.kt | 36 +- .../kotlin/cn/rtast/libmc/nbt/NBTOutput.kt | 38 +-- .../kotlin/cn/rtast/libmc/nbt/NBTReader.kt | 14 +- .../kotlin/cn/rtast/libmc/nbt/NBTWriter.kt | 8 +- .../src/jvmTest/kotlin/test/TestNBTReader.kt | 2 +- .../README.md | 0 .../build.gradle.kts | 1 + .../libmc/protocol/crypto/AesCFB8Cipher.kt | 4 +- .../crypto/DefaultProtocolCryptoContext.kt | 1 + .../protocol/crypto/KtorNetworkEngine.kt | 50 +++ .../libmc/protocol/crypto/RSAEncryotor.kt | 7 +- .../rtast/libmc/protocol/crypto/Sha1Hasher.kt | 4 +- .../src/jvmTest/kotlin/test/TestJvmClient.kt | 2 +- libmc-protocol/build.gradle.kts | 2 +- .../libmc/protocol/client/MinecraftClient.kt | 24 +- .../libmc/protocol/network/CipherChannel.kt | 12 +- .../libmc/protocol/network/NetworkChannel.kt | 32 +- .../libmc/protocol/network/NetworkSession.kt | 48 +-- .../packet/configuration/KnownPacks.kt | 6 +- .../ClientboundAddResourcePackPacket.kt | 6 +- .../ClientboundClearDialogPacket.kt | 6 +- .../ClientboundCodeOfConductPacket.kt | 6 +- ...lientboundConfigurationShowDialogPacket.kt | 6 +- .../ClientboundCookieRequestPacket.kt | 6 +- .../ClientboundCustomPayloadPacket.kt | 8 +- .../ClientboundCustomReportDetailsPacket.kt | 10 +- ...lientboundDisconnectConfigurationPacket.kt | 6 +- .../ClientboundFinishConfigurationPacket.kt | 6 +- ...ClientboundKeepAliveConfigurationPacket.kt | 6 +- .../ClientboundPingConfigurationPacket.kt | 6 +- .../ClientboundRegistryDataPacket.kt | 6 +- .../ClientboundRemoveResourcePackPacket.kt | 6 +- .../clientbound/ClientboundResetChatPacket.kt | 6 +- .../ClientboundSelectKnownPacksPacket.kt | 6 +- .../ClientboundServerLinksPacket.kt | 6 +- .../ClientboundStoreCookiePacket.kt | 6 +- .../clientbound/ClientboundTransferPacket.kt | 6 +- .../ClientboundUpdateEnabledFeaturesPacket.kt | 6 +- .../ClientboundUpdateTagsPacket.kt | 14 +- .../ServerboundAcceptCodeOfConductPacket.kt | 6 +- ...ServerboundAckFinishConfigurationPacket.kt | 6 +- .../ServerboundCookieResponsePacket.kt | 6 +- ...ServerboundKeepAliveConfigurationPacket.kt | 6 +- .../ServerboundPongConfigurationPacket.kt | 6 +- .../ServerboundSelectKnownPacksPacket.kt | 6 +- .../handshake/ServerboundHandshakePacket.kt | 6 +- .../ClientboundCustomQueryPacket.kt | 8 +- .../ClientboundDisconnectLoginPacket.kt | 6 +- .../clientbound/ClientboundHelloPacket.kt | 6 +- .../ClientboundLoginSuccessPacket.kt | 6 +- .../ClientboundSetCompressionPacket.kt | 6 +- .../ServerboundCustomQueryAnswerPacket.kt | 6 +- .../login/serverbound/ServerboundKeyPacket.kt | 6 +- .../ServerboundLoginAcknowledgedPacket.kt | 6 +- .../ServerboundLoginStartPacket.kt | 6 +- ...ClientboundAcknowledgeBlockChangePacket.kt | 6 +- .../ClientboundAwardStatisticsPacket.kt | 6 +- .../ClientboundBlockDestructionPacket.kt | 6 +- .../ClientboundBlockEntityDataPacket.kt | 6 +- .../ClientboundBlockEventPacket.kt | 6 +- .../ClientboundBlockUpdatePacket.kt | 6 +- .../clientbound/ClientboundBossEventPacket.kt | 6 +- .../ClientboundChangeDifficultyPacket.kt | 6 +- .../ClientboundChunkBatchFinishedPacket.kt | 6 +- .../ClientboundChunkBatchStartPacket.kt | 6 +- .../ClientboundChunksBiomesPacket.kt | 6 +- .../ClientboundClearTitlesPacket.kt | 6 +- .../ClientboundCommandSuggestionsPacket.kt | 10 +- .../clientbound/ClientboundCommandsPacket.kt | 6 +- .../ClientboundContainerClosePacket.kt | 6 +- .../ClientboundContainerSetDataPacket.kt | 6 +- .../clientbound/ClientboundCooldownPacket.kt | 6 +- .../ClientboundCustomChatCompletionsPacket.kt | 6 +- .../ClientboundDamageEventPacket.kt | 6 +- .../ClientboundDeleteChatPacket.kt | 6 +- .../clientbound/ClientboundDelimiterPacket.kt | 6 +- .../ClientboundDisconnectPlayPacket.kt | 6 +- .../ClientboundDisguisedChatMessagePacket.kt | 6 +- .../ClientboundEntityAnimationPacket.kt | 6 +- .../ClientboundEntityEffectPacket.kt | 6 +- .../ClientboundEntityEventPacket.kt | 6 +- .../ClientboundEntitySoundEffectPacket.kt | 6 +- .../clientbound/ClientboundGameEventPacket.kt | 6 +- .../ClientboundGameRuleValuesPacket.kt | 6 +- .../ClientboundHurtAnimationPacket.kt | 6 +- .../ClientboundInitializeWorldBorderPacket.kt | 6 +- .../ClientboundKeepAlivePlayPacket.kt | 6 +- .../ClientboundLevelEventPacket.kt | 6 +- .../ClientboundLinkEntitiesPacket.kt | 6 +- .../clientbound/ClientboundLoginPlayPacket.kt | 6 +- .../ClientboundLowDiskSpaceWarningPacket.kt | 6 +- .../ClientboundMapItemDataPacket.kt | 6 +- ...ClientboundMoveMinecartAlongTrackPacket.kt | 6 +- .../ClientboundMoveVehiclePacket.kt | 6 +- .../clientbound/ClientboundOpenBookPacket.kt | 6 +- .../ClientboundOpenHorseScreenPacket.kt | 6 +- .../ClientboundOpenScreenPacket.kt | 6 +- .../ClientboundOpenSignEditorPacket.kt | 6 +- .../ClientboundPickupItemPacket.kt | 6 +- .../play/clientbound/ClientboundPingPacket.kt | 6 +- .../ClientboundPlayerAbilitiesPacket.kt | 6 +- .../ClientboundPlayerChatMessagePacket.kt | 10 +- .../ClientboundPlayerCombatDeathPacket.kt | 6 +- .../ClientboundPlayerEndCombatPacket.kt | 6 +- .../ClientboundPlayerEnterCombatPacket.kt | 6 +- .../ClientboundPlayerInfoRemovePacket.kt | 6 +- .../ClientboundPlayerInfoUpdatePacket.kt | 6 +- .../ClientboundPlayerLookAtPacket.kt | 6 +- .../ClientboundPlayerRotationPacket.kt | 6 +- .../ClientboundProjectilePowerPacket.kt | 6 +- .../ClientboundRemoveEntitiesPacket.kt | 6 +- .../ClientboundRemoveEntityEffectPacket.kt | 6 +- .../ClientboundResetScorePacket.kt | 6 +- .../clientbound/ClientboundRespawnPacket.kt | 6 +- .../ClientboundSelectAdvancementsTabPacket.kt | 6 +- .../ClientboundServerDataPacket.kt | 6 +- .../ClientboundSetActionBarTextPacket.kt | 6 +- .../ClientboundSetBorderCenterPacket.kt | 6 +- .../ClientboundSetBorderLeapSizePacket.kt | 6 +- .../ClientboundSetBorderSizePacket.kt | 6 +- .../ClientboundSetBorderWarningDelayPacket.kt | 6 +- ...ientboundSetBorderWarningDistancePacket.kt | 6 +- .../clientbound/ClientboundSetCameraPacket.kt | 6 +- .../ClientboundSetCarriedItemPacket.kt | 6 +- .../ClientboundSetCenterChunkPacket.kt | 6 +- ...lientboundSetDefaultSpawnPositionPacket.kt | 6 +- .../ClientboundSetDisplayObjectivePacket.kt | 6 +- .../ClientboundSetEntityVelocityPacket.kt | 6 +- .../ClientboundSetExperiencePacket.kt | 6 +- .../ClientboundSetHeadRotationPacket.kt | 6 +- .../clientbound/ClientboundSetHealthPacket.kt | 6 +- .../ClientboundSetPassengersPacket.kt | 6 +- .../ClientboundSetRenderDistancePacket.kt | 6 +- .../ClientboundSetSimulationDistancePacket.kt | 6 +- .../ClientboundSetSubtitleTextPacket.kt | 6 +- ...entboundSetTabListHeaderAndFooterPacket.kt | 6 +- .../ClientboundSetTickingStatePacket.kt | 6 +- .../clientbound/ClientboundSetTimePacket.kt | 6 +- ...ClientboundSetTitleAnimationTimesPacket.kt | 6 +- .../ClientboundSetTitleTextPacket.kt | 6 +- .../ClientboundShowDialogPacket.kt | 6 +- .../ClientboundSoundEffectPacket.kt | 6 +- .../ClientboundSpawnEntityPacket.kt | 6 +- .../ClientboundStartConfigurationPacket.kt | 6 +- .../clientbound/ClientboundStepTickPacket.kt | 6 +- .../clientbound/ClientboundStopSoundPacket.kt | 6 +- ...entboundSynchronizePlayerPositionPacket.kt | 6 +- ...ntboundSynchronizeVehiclePositionPacket.kt | 6 +- .../ClientboundSystemChatMessagePacket.kt | 6 +- .../ClientboundTagQueryResponsePacket.kt | 6 +- .../ClientboundTeleportEntityPacket.kt | 6 +- .../ClientboundTestHighlightPositionPacket.kt | 6 +- ...lientboundTestInstanceBlockStatusPacket.kt | 6 +- .../ClientboundUnloadChunkPacket.kt | 6 +- .../ClientboundUpdateAttributesPacket.kt | 6 +- ...ndUpdateEntityPositionAndRotationPacket.kt | 6 +- .../ClientboundUpdateEntityPositionPacket.kt | 6 +- .../ClientboundUpdateEntityRotationPacket.kt | 6 +- .../ClientboundUpdateObjectivePacket.kt | 6 +- .../ClientboundUpdateScorePacket.kt | 6 +- .../ClientboundUpdateSectionBlockPacket.kt | 6 +- .../clientbound/ClientboundWaypointPacket.kt | 6 +- .../ServerboundAcceptTeleportationPacket.kt | 6 +- ...ServerboundAcknowledgeChatMessagePacket.kt | 6 +- .../ServerboundAttackActionPacket.kt | 6 +- .../ServerboundBundleItemSelectedPacket.kt | 6 +- .../ServerboundChangeDifficultyPacket.kt | 6 +- .../ServerboundChangeGameModePacket.kt | 6 +- .../ServerboundChatCommandPacket.kt | 6 +- .../ServerboundChatMessagePacket.kt | 6 +- .../ServerboundChunkBatchReceivedPacket.kt | 6 +- .../ServerboundClientActionPacket.kt | 6 +- .../ServerboundClientCommandPacket.kt | 6 +- .../ServerboundClientInformationPacket.kt | 8 +- .../ServerboundClientTickEndPacket.kt | 6 +- ...rverboundCommandSuggestionRequestPacket.kt | 6 +- ...verboundConfigurationAcknowledgedPacket.kt | 6 +- .../ServerboundContainerClickButtonPacket.kt | 6 +- .../ServerboundContainerClosePacket.kt | 6 +- .../ServerboundCustomClickActionPacket.kt | 6 +- .../ServerboundCustomPayloadPacket.kt | 6 +- .../serverbound/ServerboundEditBookPacket.kt | 6 +- .../serverbound/ServerboundInteractPacket.kt | 6 +- .../ServerboundJigsawGeneratePacket.kt | 6 +- .../ServerboundKeepAlivePlayPacket.kt | 6 +- .../ServerboundLockDifficultyPacket.kt | 6 +- .../ServerboundMoveVehiclePacket.kt | 6 +- .../ServerboundPaddleBoatPacket.kt | 6 +- .../ServerboundPickItemFromBlockPacket.kt | 6 +- .../ServerboundPickItemFromEntityPacket.kt | 6 +- .../ServerboundPlaceRecipePacket.kt | 6 +- .../ServerboundPlayerAbilitiesPacket.kt | 6 +- .../ServerboundPlayerActionPacket.kt | 6 +- .../ServerboundPlayerCommandPacket.kt | 8 +- .../ServerboundPlayerInputPacket.kt | 6 +- .../ServerboundPlayerLoadedPacket.kt | 6 +- .../serverbound/ServerboundPongPlayPacket.kt | 6 +- .../ServerboundQueryBlockEntityTagPacket.kt | 6 +- .../ServerboundQueryEntityTagPacket.kt | 6 +- ...rverboundRecipeBookChangeSettingsPacket.kt | 6 +- .../ServerboundRecipeBookSeenRecipePacket.kt | 6 +- .../ServerboundRenameItemPacket.kt | 6 +- .../ServerboundResourcePackResponsePacket.kt | 6 +- .../ServerboundSeenAdvancementsPacket.kt | 6 +- .../ServerboundSelectTradePacket.kt | 6 +- .../serverbound/ServerboundSetBeaconPacket.kt | 6 +- .../ServerboundSetCarriedItemPacket.kt | 6 +- .../ServerboundSetCommandBlockPacket.kt | 6 +- .../ServerboundSetCommandMinecartPacket.kt | 6 +- .../ServerboundSetGameRulePacket.kt | 6 +- .../ServerboundSetJigsawBlockPacket.kt | 6 +- .../ServerboundSetPlayerMovementFlagPacket.kt | 6 +- ...boundSetPlayerPositionAndRotationPacket.kt | 6 +- .../ServerboundSetPlayerPositionPacket.kt | 6 +- .../ServerboundSetPlayerRotationPacket.kt | 6 +- .../ServerboundSetStructureBlockPacket.kt | 6 +- .../ServerboundSetTestBlockPacket.kt | 6 +- .../ServerboundSignUpdatePacket.kt | 6 +- .../ServerboundSignedChatCommandPacket.kt | 6 +- .../ServerboundSpectatorActionPacket.kt | 6 +- .../serverbound/ServerboundSwingPacket.kt | 6 +- .../ServerboundTeleportToEntityPacket.kt | 6 +- ...erverboundTestInstanceBlockActionPacket.kt | 8 +- .../ServerboundUpdateChatSessionPacket.kt | 6 +- .../serverbound/ServerboundUseItemOnPacket.kt | 6 +- .../serverbound/ServerboundUseItemPacket.kt | 6 +- .../ClientboundPongResponsePacket.kt | 6 +- .../ClientboundStatusResponsePacket.kt | 6 +- .../ServerboundPingRequestPacket.kt | 6 +- .../ServerboundStatusRequestPacket.kt | 6 +- .../protocol/protocol/game/Identifier.kt | 10 +- .../protocol/protocol/game/StatisticsEntry.kt | 6 +- .../protocol/protocol/game/block/BlockPos.kt | 10 +- .../protocol/game/chat/ChatTypeDecoration.kt | 4 +- .../protocol/game/chat/InlineChatType.kt | 4 +- .../protocol/game/chat/TextComponent.kt | 6 +- .../protocol/game/chunk/ChunkBiomeData.kt | 6 +- .../protocol/game/command/CommandNode.kt | 10 +- .../protocol/game/effect/EntityEffectFlags.kt | 4 +- .../protocol/protocol/game/entity/Minecart.kt | 4 +- .../protocol/game/gamerule/GameRuleEntry.kt | 6 +- .../protocol/protocol/game/math/Angle.kt | 6 +- .../protocol/protocol/game/math/LpVec3.kt | 12 +- .../protocol/protocol/game/math/Vec3d.kt | 6 +- .../protocol/game/registry/RegistryEntry.kt | 6 +- .../game/registry/report/ServerLink.kt | 6 +- .../protocol/game/session/GameProfile.kt | 10 +- .../protocol/game/sound/SoundEvent.kt | 6 +- .../protocol/signature/ArgumentSignature.kt | 6 +- .../rtast/libmc/protocol/protocol/util/nbt.kt | 8 +- .../jvmTest/kotlin/test/ClientChatTracker.kt | 2 - .../src/jvmTest/kotlin/test/JvmAesCipher.kt | 4 +- .../kotlin/test/TestClientTestInJvm.kt | 4 +- libmc-rconlib/build.gradle.kts | 27 -- .../rtast/libmc/mcping/rconlib/buffer_ext.kt | 12 - .../cn/rtast/libmc/mcping/rconlib/packet.kt | 83 ----- .../rtast/libmc/mcping/rconlib/packet_type.kt | 14 - .../cn/rtast/libmc/mcping/rconlib/rconlib.kt | 54 --- .../src/commonTest/kotlin/test/TestRCON.kt | 23 -- .../java/test/TestRconClientOnJava.java | 29 -- settings.gradle.kts | 4 +- 318 files changed, 1109 insertions(+), 2722 deletions(-) delete mode 100644 libmc-common/src/commonMain/kotlin/cn/rtast/libmc/context.kt rename libmc-common/src/commonMain/kotlin/cn/rtast/libmc/{stream/byte_order.kt => network/ByteOrder.kt} (81%) create mode 100644 libmc-common/src/commonMain/kotlin/cn/rtast/libmc/network/BytesBuffer.kt create mode 100644 libmc-common/src/commonMain/kotlin/cn/rtast/libmc/network/RawSocket.kt create mode 100644 libmc-common/src/commonMain/kotlin/cn/rtast/libmc/network/ReadChannel.kt create mode 100644 libmc-common/src/commonMain/kotlin/cn/rtast/libmc/network/SocketContext.kt create mode 100644 libmc-common/src/commonMain/kotlin/cn/rtast/libmc/network/SocketEngine.kt create mode 100644 libmc-common/src/commonMain/kotlin/cn/rtast/libmc/network/WriteChannel.kt delete mode 100644 libmc-common/src/commonMain/kotlin/cn/rtast/libmc/stream/buffer.kt delete mode 100644 libmc-common/src/commonMain/kotlin/cn/rtast/libmc/stream/channels.kt delete mode 100644 libmc-common/src/commonMain/kotlin/cn/rtast/libmc/stream/socket.kt delete mode 100644 libmc-common/src/jvmMain/kotlin/cn/rtast/libmc/context.jvm.kt delete mode 100644 libmc-common/src/jvmMain/kotlin/cn/rtast/libmc/stream/buffer.jvm.kt delete mode 100644 libmc-common/src/jvmMain/kotlin/cn/rtast/libmc/stream/channels.jvm.kt delete mode 100644 libmc-common/src/jvmMain/kotlin/cn/rtast/libmc/stream/order_convert.kt delete mode 100644 libmc-common/src/jvmMain/kotlin/cn/rtast/libmc/stream/socket.jvm.kt delete mode 100644 libmc-common/src/nativeMain/kotlin/cn/rtast/libmc/context.native.kt delete mode 100644 libmc-common/src/nativeMain/kotlin/cn/rtast/libmc/stream/buffer.native.kt delete mode 100644 libmc-common/src/nativeMain/kotlin/cn/rtast/libmc/stream/channels.native.kt delete mode 100644 libmc-common/src/nativeMain/kotlin/cn/rtast/libmc/stream/socket.native.kt delete mode 100644 libmc-mcping/build.gradle.kts delete mode 100644 libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/bedrock/packet.kt delete mode 100644 libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/bedrock/packet_writer.kt delete mode 100644 libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/bedrock/ping_bedrock.kt delete mode 100644 libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/bedrock/ping_response_parser.kt delete mode 100644 libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/java/buffer.kt delete mode 100644 libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/java/packet.kt delete mode 100644 libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/java/ping_java.kt delete mode 100644 libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/mcping.kt delete mode 100644 libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/packet_writer.kt delete mode 100644 libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/ping_response.kt delete mode 100644 libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/server_type.kt delete mode 100644 libmc-mcping/src/commonTest/kotlin/test/TestPing.kt delete mode 100644 libmc-mcping/src/generated/bedrock-pinng-raw-response.txt delete mode 100644 libmc-mcping/src/generated/java-ping-response.json delete mode 100644 libmc-mcping/src/jvmTest/java/test/TestPingInJava.java delete mode 100644 libmc-mcping/src/mingwTest/kotlin/test/TestMingwPing.kt rename {libmc-protocol-encrypt => libmc-protocol-context}/README.md (100%) rename {libmc-protocol-encrypt => libmc-protocol-context}/build.gradle.kts (95%) rename {libmc-protocol-encrypt => libmc-protocol-context}/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/AesCFB8Cipher.kt (90%) rename {libmc-protocol-encrypt => libmc-protocol-context}/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/DefaultProtocolCryptoContext.kt (96%) create mode 100644 libmc-protocol-context/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/KtorNetworkEngine.kt rename {libmc-protocol-encrypt => libmc-protocol-context}/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/RSAEncryotor.kt (66%) rename {libmc-protocol-encrypt => libmc-protocol-context}/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/Sha1Hasher.kt (88%) rename {libmc-protocol-encrypt => libmc-protocol-context}/src/jvmTest/kotlin/test/TestJvmClient.kt (95%) delete mode 100644 libmc-rconlib/build.gradle.kts delete mode 100644 libmc-rconlib/src/commonMain/kotlin/cn/rtast/libmc/mcping/rconlib/buffer_ext.kt delete mode 100644 libmc-rconlib/src/commonMain/kotlin/cn/rtast/libmc/mcping/rconlib/packet.kt delete mode 100644 libmc-rconlib/src/commonMain/kotlin/cn/rtast/libmc/mcping/rconlib/packet_type.kt delete mode 100644 libmc-rconlib/src/commonMain/kotlin/cn/rtast/libmc/mcping/rconlib/rconlib.kt delete mode 100644 libmc-rconlib/src/commonTest/kotlin/test/TestRCON.kt delete mode 100644 libmc-rconlib/src/jvmTest/java/test/TestRconClientOnJava.java diff --git a/.gitignore b/.gitignore index 2d7e047..1d2fae1 100644 --- a/.gitignore +++ b/.gitignore @@ -49,3 +49,4 @@ bin/ **/build/* /libmc-protocol/src/jvmTest/resources/accessToken.txt /libmc-protocol-encrypt/src/commonTest/resources/accessToken.txt +/libmc-protocol-context/src/commonTest/resources/accessToken.txt diff --git a/README.md b/README.md index 1c5910a..c5bf118 100644 --- a/README.md +++ b/README.md @@ -346,12 +346,6 @@ A lightweight minecraft client-side protocol library and related library, includ --- -# libmc-mcping - -A lightweight module to query Minecraft Java and Bedrock server status, MOTD, and latency - -[Use mcping](https://repo.rtast.cn/packages/-/cn.rtast.libmc:mcping) - # libmc-rconlib Send Command via rcon protocol diff --git a/build.gradle.kts b/build.gradle.kts index 047f24e..d1e8cab 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -20,6 +20,7 @@ subprojects { pluginManager.apply("org.jetbrains.kotlin.multiplatform") pluginManager.apply("maven-publish") + if (project.path.startsWith(":example")) return@subprojects publishing { repositories { maven("https://repo.rtast.cn/packages") { diff --git a/libmc-common/build.gradle.kts b/libmc-common/build.gradle.kts index 0aec806..9ec50b5 100644 --- a/libmc-common/build.gradle.kts +++ b/libmc-common/build.gradle.kts @@ -12,18 +12,24 @@ kotlin { sourceSets { commonMain.dependencies { + implementation(libs.kotlinx.io) api(libs.kotlinx.coroutines) } + jvmMain.dependencies {} - nativeMain.dependencies { - implementation(libs.ktor.network) - implementation(libs.kotlinx.io) - } + +// nativeMain.dependencies { +// implementation(libs.ktor.network) +// } commonTest.dependencies { implementation(kotlin("test")) implementation(libs.kotlinx.coroutines.test) } + + jvmTest.dependencies { + + } } compilerOptions.freeCompilerArgs.addAll("-Xexpect-actual-classes") diff --git a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/context.kt b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/context.kt deleted file mode 100644 index e947f3a..0000000 --- a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/context.kt +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/3 - */ - - -package cn.rtast.libmc - -/** - * An object class used to pass some parameters - * that exists only on native targets - */ -public expect class LibMCContext() \ No newline at end of file diff --git a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/crypto/NetworkCipher.kt b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/crypto/NetworkCipher.kt index 89af52b..70d13d0 100644 --- a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/crypto/NetworkCipher.kt +++ b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/crypto/NetworkCipher.kt @@ -8,6 +8,6 @@ package cn.rtast.libmc.crypto public interface NetworkCipher { - public suspend fun encrypt(buffer: ByteArray, offset: Int, length: Int) - public suspend fun decrypt(buffer: ByteArray, offset: Int, length: Int) + public fun encrypt(buffer: ByteArray, offset: Int, length: Int) + public fun decrypt(buffer: ByteArray, offset: Int, length: Int) } \ No newline at end of file diff --git a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/crypto/ProtocolContext.kt b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/crypto/ProtocolContext.kt index 00fb032..6e9d499 100644 --- a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/crypto/ProtocolContext.kt +++ b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/crypto/ProtocolContext.kt @@ -7,18 +7,23 @@ package cn.rtast.libmc.crypto +import cn.rtast.libmc.network.SocketContext +import cn.rtast.libmc.network.SocketEngine + public data class ProtocolContext( val rsaEncryptor: RSA1024Encryptor, val sha1Hasher: Sha1Hasher, val cipherFactory: (sharedKey: ByteArray) -> NetworkCipher, val authProvider: AuthenticationProvider?, -) + override val engine: SocketEngine, +) : SocketContext() public class ProtocolContextBuilder(private val onlineMode: Boolean) { public lateinit var rsaEncryptor: RSA1024Encryptor public lateinit var sha1Hasher: Sha1Hasher public lateinit var cipherFactory: (sharedKey: ByteArray) -> NetworkCipher public lateinit var authProvider: AuthenticationProvider + public lateinit var socketEngine: SocketEngine public fun build(): ProtocolContext = ProtocolContext( @@ -27,14 +32,15 @@ public class ProtocolContextBuilder(private val onlineMode: Boolean) { cipherFactory = if (::cipherFactory.isInitialized) cipherFactory else error("cipherFactory is required"), authProvider = if (onlineMode) { if (::authProvider.isInitialized) authProvider else error("authProvider is required in online mode") - } else if (::authProvider.isInitialized) authProvider else null + } else if (::authProvider.isInitialized) authProvider else null, + engine = if (::socketEngine.isInitialized) socketEngine else error("SocketEngine is not configured") ) } public fun interface RSA1024Encryptor { - public suspend fun encrypt(key: ByteArray, data: ByteArray): ByteArray + public fun encrypt(key: ByteArray, data: ByteArray): ByteArray } public fun interface Sha1Hasher { - public suspend fun hash(serverId: String, secretKey: ByteArray, publicKey: ByteArray): String + public fun hash(serverId: String, secretKey: ByteArray, publicKey: ByteArray): String } \ No newline at end of file diff --git a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/stream/byte_order.kt b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/network/ByteOrder.kt similarity index 81% rename from libmc-common/src/commonMain/kotlin/cn/rtast/libmc/stream/byte_order.kt rename to libmc-common/src/commonMain/kotlin/cn/rtast/libmc/network/ByteOrder.kt index 3dd6971..fab2275 100644 --- a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/stream/byte_order.kt +++ b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/network/ByteOrder.kt @@ -5,7 +5,7 @@ */ -package cn.rtast.libmc.stream +package cn.rtast.libmc.network public enum class ByteOrder { BIG_ENDIAN, LITTLE_ENDIAN diff --git a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/network/BytesBuffer.kt b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/network/BytesBuffer.kt new file mode 100644 index 0000000..de06bb0 --- /dev/null +++ b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/network/BytesBuffer.kt @@ -0,0 +1,47 @@ +/* + * Copyright © 2026 RTAkland + * Author: RTAkland + * Date: 2026/9/3 + */ + + +package cn.rtast.libmc.network + +import kotlinx.io.* + + +public class BytesBuffer { + private val _buffer = Buffer() + + public constructor() + public constructor(bytes: ByteArray) { + this._buffer.write(bytes) + } + + public fun writeByte(value: Byte): Unit = _buffer.writeByte(value) + public fun writeShort(value: Short): Unit = _buffer.writeShort(value) + public fun writeInt(value: Int): Unit = _buffer.writeInt(value) + public fun writeLong(value: Long): Unit = _buffer.writeLong(value) + public fun writeDouble(value: Double): Unit = _buffer.writeDouble(value) + public fun writeFloat(value: Float): Unit = _buffer.writeFloat(value) + public fun writeBytes(bytes: ByteArray): Unit = _buffer.write(bytes) + public fun writeBoolean(value: Boolean): Unit = _buffer.writeByte(if (value) 0x01 else 0x00) + + public fun readByte(): Byte = _buffer.readByte() + public fun readUByte(): UByte = _buffer.readUByte() + public fun readShort(): Short = _buffer.readShort() + public fun readInt(): Int = _buffer.readInt() + public fun readLong(): Long = _buffer.readLong() + public fun readDouble(): Double = _buffer.readDouble() + public fun readFloat(): Float = _buffer.readFloat() + public fun readBytes(length: Int): ByteArray = _buffer.readByteArray(length) + public fun readBoolean(): Boolean = _buffer.readByte() != 0x00.toByte() + public fun toByteArray(): ByteArray = _buffer.readByteArray() + public fun peek(): ByteArray = _buffer.peek().readByteArray() + public fun close(): Unit = _buffer.close() + + public val size: Int get() = _buffer.size.toInt() +} + +@Suppress("NOTHING_TO_INLINE") +public inline fun ByteArray.wrap(): BytesBuffer = BytesBuffer(this) diff --git a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/network/RawSocket.kt b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/network/RawSocket.kt new file mode 100644 index 0000000..4dbff0b --- /dev/null +++ b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/network/RawSocket.kt @@ -0,0 +1,30 @@ +/* + * Copyright © 2026 RTAkland + * Author: RTAkland + * Date: 2026/9/3 + */ + + +package cn.rtast.libmc.network + +public interface RawSocket : AutoCloseable { + /** + * Open socket connection + */ + public suspend fun connect() + + /** + * An abstract function, used to open tcp socket read channel + */ + public fun openReadChannel(): ReadChannel + + /** + * An abstract function, used to open tcp socket write/send channel + */ + public fun openWriteChannel(): WriteChannel + + /** + * Close socket + */ + override fun close() +} \ No newline at end of file diff --git a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/network/ReadChannel.kt b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/network/ReadChannel.kt new file mode 100644 index 0000000..cdcead3 --- /dev/null +++ b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/network/ReadChannel.kt @@ -0,0 +1,14 @@ +/* + * Copyright © 2026 RTAkland + * Author: RTAkland + * Date: 2026/9/7 + */ + + +package cn.rtast.libmc.network + +public interface ReadChannel { + public suspend fun readByte(): Byte + public suspend fun readBytes(length: Int): ByteArray + public suspend fun readFully(out: ByteArray, start: Int = 0, end: Int = out.size) +} \ No newline at end of file diff --git a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/network/SocketContext.kt b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/network/SocketContext.kt new file mode 100644 index 0000000..c55218a --- /dev/null +++ b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/network/SocketContext.kt @@ -0,0 +1,14 @@ +/* + * Copyright © 2026 RTAkland + * Author: RTAkland + * Date: 2026/9/7 + */ + + +package cn.rtast.libmc.network + +public abstract class SocketContext { + public abstract val engine: SocketEngine + + public fun createSocket(host: String, port: Int): RawSocket = engine.create(host, port) +} \ No newline at end of file diff --git a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/network/SocketEngine.kt b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/network/SocketEngine.kt new file mode 100644 index 0000000..a520074 --- /dev/null +++ b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/network/SocketEngine.kt @@ -0,0 +1,12 @@ +/* + * Copyright © 2026 RTAkland + * Author: RTAkland + * Date: 2026/9/7 + */ + + +package cn.rtast.libmc.network + +public fun interface SocketEngine { + public fun create(host: String, port: Int): RawSocket +} \ No newline at end of file diff --git a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/network/WriteChannel.kt b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/network/WriteChannel.kt new file mode 100644 index 0000000..b80ca26 --- /dev/null +++ b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/network/WriteChannel.kt @@ -0,0 +1,13 @@ +/* + * Copyright © 2026 RTAkland + * Author: RTAkland + * Date: 2026/9/7 + */ + + +package cn.rtast.libmc.network + +public interface WriteChannel { + public suspend fun writeFully(value: ByteArray, startIndex: Int = 0, endIndex: Int = value.size) + public suspend fun flush() +} \ No newline at end of file diff --git a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/packet/PacketCodec.kt b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/packet/PacketCodec.kt index 9f6b2cf..cd9d68f 100644 --- a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/packet/PacketCodec.kt +++ b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/packet/PacketCodec.kt @@ -7,20 +7,20 @@ package cn.rtast.libmc.packet -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public interface Encoder { - public suspend fun encode(buffer: BytesBuffer, value: T) + public fun encode(buffer: BytesBuffer, value: T) } public interface Decoder { - public suspend fun decode(buffer: BytesBuffer): T + public fun decode(buffer: BytesBuffer): T } public interface PacketCodec : Encoder, Decoder -public suspend fun BytesBuffer.writeBuffer(source: BytesBuffer, length: Long = source.remaining) { +public fun BytesBuffer.writeBuffer(source: BytesBuffer, length: Int = source.size) { if (length <= 0) return - val bytes = source.readBytes(length.toInt()) + val bytes = source.readBytes(length) this.writeBytes(bytes) } \ No newline at end of file diff --git a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/packet/PacketRegistry.kt b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/packet/PacketRegistry.kt index 457ec3c..edd67b5 100644 --- a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/packet/PacketRegistry.kt +++ b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/packet/PacketRegistry.kt @@ -8,7 +8,7 @@ package cn.rtast.libmc.packet import cn.rtast.libmc.primitives.writeVarInt -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import kotlin.reflect.KClass public class PacketRegistry { @@ -26,10 +26,10 @@ public class PacketRegistry { register(id, T::class, codec) } - public suspend fun decodePacket(packetId: Int, buffer: BytesBuffer): MinecraftPacket = - idToCodec[packetId]?.decode(buffer) ?: ClientboundUnknownPacket(packetId, buffer.readRemainingBytes()) + public fun decodePacket(packetId: Int, buffer: BytesBuffer): MinecraftPacket = + idToCodec[packetId]?.decode(buffer) ?: ClientboundUnknownPacket(packetId, buffer.toByteArray()) - public suspend fun encodePacket(buffer: BytesBuffer, packet: T) { + public fun encodePacket(buffer: BytesBuffer, packet: T) { @Suppress("UNCHECKED_CAST") val info = requireNotNull(classToInfo[packet::class]) { "Unregistered Packet ${packet::class.simpleName}" diff --git a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/BitSet.kt b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/BitSet.kt index 584b89c..7398c12 100644 --- a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/BitSet.kt +++ b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/BitSet.kt @@ -7,16 +7,16 @@ package cn.rtast.libmc.primitives -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public typealias BitSet = LongArray -public suspend fun BytesBuffer.readBitSet(): BitSet { +public fun BytesBuffer.readBitSet(): BitSet { val count = this.readVarInt() return LongArray(count) { this.readLong() } } -public suspend fun BytesBuffer.writeBitSet(data: BitSet) { +public fun BytesBuffer.writeBitSet(data: BitSet) { this.writeVarInt(data.size) for (i in data.indices) this.writeLong(data[i]) } diff --git a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/Either.kt b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/Either.kt index da51236..d421927 100644 --- a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/Either.kt +++ b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/Either.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.primitives -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public sealed class Either { public data class Left(val value: L) : Either() @@ -17,7 +17,7 @@ public sealed class Either { public val isRight: Boolean get() = this is Right } -public suspend inline fun BytesBuffer.readEither( +public inline fun BytesBuffer.readEither( readLeft: BytesBuffer.() -> L, readRight: BytesBuffer.() -> R, ): Either { @@ -25,7 +25,7 @@ public suspend inline fun BytesBuffer.readEither( return if (isLeft) Either.Left(readLeft(this)) else Either.Right(readRight(this)) } -public suspend inline fun BytesBuffer.writeEither( +public inline fun BytesBuffer.writeEither( either: Either, writeLeft: BytesBuffer.(L) -> Unit, writeRight: BytesBuffer.(R) -> Unit, diff --git a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/IdOrX.kt b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/IdOrX.kt index 8f89138..22ef001 100644 --- a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/IdOrX.kt +++ b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/IdOrX.kt @@ -7,14 +7,14 @@ package cn.rtast.libmc.primitives -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public sealed interface IdOrX { public data class Inline(val value: T) : IdOrX public data class Reference(val registryId: Int) : IdOrX } -public suspend inline fun BytesBuffer.writeIdOrX(value: IdOrX, writeX: BytesBuffer.(T) -> Unit) { +public inline fun BytesBuffer.writeIdOrX(value: IdOrX, writeX: BytesBuffer.(T) -> Unit) { when (value) { is IdOrX.Inline -> { this.writeVarInt(0) @@ -25,7 +25,7 @@ public suspend inline fun BytesBuffer.writeIdOrX(value: IdOrX, writeX: By } } -public suspend inline fun BytesBuffer.readIdOrX(readX: BytesBuffer.() -> T): IdOrX { +public inline fun BytesBuffer.readIdOrX(readX: BytesBuffer.() -> T): IdOrX { val id = this.readVarInt() return if (id == 0) IdOrX.Inline(this.readX()) else IdOrX.Reference(id - 1) } \ No newline at end of file diff --git a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/IdSet.kt b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/IdSet.kt index bf1c984..b20d36f 100644 --- a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/IdSet.kt +++ b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/IdSet.kt @@ -7,14 +7,14 @@ package cn.rtast.libmc.primitives -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public sealed interface IdSet { public data class Tag(val tagName: String) : IdSet public data class Entries(val ids: List) : IdSet } -public suspend fun BytesBuffer.readIdSet(): IdSet { +public fun BytesBuffer.readIdSet(): IdSet { val type = this.readVarInt() return if (type == 0) { IdSet.Tag(tagName = this.readMcString()) @@ -26,7 +26,7 @@ public suspend fun BytesBuffer.readIdSet(): IdSet { } } -public suspend fun BytesBuffer.writeIdSet(idSet: IdSet) { +public fun BytesBuffer.writeIdSet(idSet: IdSet) { when (idSet) { is IdSet.Tag -> { this.writeVarInt(0) diff --git a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/MinecraftString.kt b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/MinecraftString.kt index 0dab53b..6367368 100644 --- a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/MinecraftString.kt +++ b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/MinecraftString.kt @@ -8,21 +8,21 @@ package cn.rtast.libmc.primitives import cn.rtast.libmc.packet.PacketCodec -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public object McStringCodec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: String) { + override fun encode(buffer: BytesBuffer, value: String) { val bytes = value.encodeToByteArray() VarIntCodec.encode(buffer, bytes.size) buffer.writeBytes(bytes) } - override suspend fun decode(buffer: BytesBuffer): String { + override fun decode(buffer: BytesBuffer): String { val length = VarIntCodec.decode(buffer) val bytes = buffer.readBytes(length) return bytes.decodeToString() } } -public suspend fun BytesBuffer.writeMcString(value: String): Unit = McStringCodec.encode(this, value) -public suspend fun BytesBuffer.readMcString(): String = McStringCodec.decode(this) +public fun BytesBuffer.writeMcString(value: String): Unit = McStringCodec.encode(this, value) +public fun BytesBuffer.readMcString(): String = McStringCodec.decode(this) diff --git a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/Optional.kt b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/Optional.kt index 4dd9f98..a3e309c 100644 --- a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/Optional.kt +++ b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/Optional.kt @@ -7,9 +7,9 @@ package cn.rtast.libmc.primitives -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer -public suspend inline fun BytesBuffer.readOptional(block: BytesBuffer.() -> T): T? { +public inline fun BytesBuffer.readOptional(block: BytesBuffer.() -> T): T? { val hasData = this.readBoolean() return if (hasData) block.invoke(this) else null } @@ -17,7 +17,7 @@ public suspend inline fun BytesBuffer.readOptional(block: BytesBuffer.() -> /** * buffer.writeOptional(value.someValue) { writeBlockPos(it) } */ -public suspend inline fun BytesBuffer.writeOptional(value: T?, block: BytesBuffer.(T) -> Unit) { +public inline fun BytesBuffer.writeOptional(value: T?, block: BytesBuffer.(T) -> Unit) { if (value != null) { this.writeBoolean(true) block.invoke(this, value) diff --git a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/Prefixed.kt b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/Prefixed.kt index fd18040..dad7b38 100644 --- a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/Prefixed.kt +++ b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/Prefixed.kt @@ -7,21 +7,21 @@ package cn.rtast.libmc.primitives -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer -public suspend fun BytesBuffer.readPrefixedByteArray(): ByteArray { +public fun BytesBuffer.readPrefixedByteArray(): ByteArray { val length = this.readVarInt() val data = this.readBytes(length) return data } -public suspend fun BytesBuffer.writePrefixedByteArray(data: ByteArray) { +public fun BytesBuffer.writePrefixedByteArray(data: ByteArray) { this.writeVarInt(data.size) this.writeBytes(data) } -public suspend fun BytesBuffer.writeOptionalPrefixedByteArray(data: ByteArray?) { +public fun BytesBuffer.writeOptionalPrefixedByteArray(data: ByteArray?) { if (data != null) { this.writeBoolean(true) this.writeVarInt(data.size) @@ -29,21 +29,21 @@ public suspend fun BytesBuffer.writeOptionalPrefixedByteArray(data: ByteArray?) } else this.writeBoolean(false) } -public suspend fun BytesBuffer.readPrefixedStringArray(): List { +public fun BytesBuffer.readPrefixedStringArray(): List { val length = readVarInt() val list = ArrayList(length) repeat(length) { list.add(readMcString()) } return list } -public suspend fun BytesBuffer.writePrefixedStringArray(value: List) { +public fun BytesBuffer.writePrefixedStringArray(value: List) { writeVarInt(value.size) for (item in value) writeMcString(item) } -public suspend inline fun BytesBuffer.readPrefixed(reader: BytesBuffer.() -> T): List { +public inline fun BytesBuffer.readPrefixed(reader: BytesBuffer.() -> T): List { val count = this.readVarInt() require(count in 0..4096) { "Prefixed array count $count is invalid (expected 0..4096). " + @@ -54,7 +54,7 @@ public suspend inline fun BytesBuffer.readPrefixed(reader: BytesBuffer.() -> return list } -public suspend inline fun BytesBuffer.writePrefixed(list: List, writer: BytesBuffer.(T) -> Unit) { +public inline fun BytesBuffer.writePrefixed(list: List, writer: BytesBuffer.(T) -> Unit) { this.writeVarInt(list.size) for (item in list) this.writer(item) } \ No newline at end of file diff --git a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/Uuid.kt b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/Uuid.kt index d5cd716..fde824c 100644 --- a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/Uuid.kt +++ b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/Uuid.kt @@ -7,15 +7,15 @@ package cn.rtast.libmc.primitives -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import kotlin.uuid.Uuid -public suspend fun BytesBuffer.writeUuid(uuid: Uuid): Unit = uuid.toLongs { mostSignificantBits, leastSignificantBits -> +public fun BytesBuffer.writeUuid(uuid: Uuid): Unit = uuid.toLongs { mostSignificantBits, leastSignificantBits -> this.writeLong(mostSignificantBits) this.writeLong(leastSignificantBits) } -public suspend fun BytesBuffer.readUuid(): Uuid { +public fun BytesBuffer.readUuid(): Uuid { val most = this.readLong() val least = this.readLong() return Uuid.fromLongs(most, least) diff --git a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/VarInt.kt b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/VarInt.kt index 861a6ef..7b601e0 100644 --- a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/VarInt.kt +++ b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/VarInt.kt @@ -8,10 +8,11 @@ package cn.rtast.libmc.primitives import cn.rtast.libmc.packet.PacketCodec -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer +import cn.rtast.libmc.network.ReadChannel public object VarIntCodec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: Int) { + override fun encode(buffer: BytesBuffer, value: Int) { var v = value while (true) { if ((v and 0x7F.inv()) == 0) { @@ -23,7 +24,7 @@ public object VarIntCodec : PacketCodec { } } - override suspend fun decode(buffer: BytesBuffer): Int { + override fun decode(buffer: BytesBuffer): Int { var numRead = 0 var result = 0 var read: Byte @@ -38,8 +39,22 @@ public object VarIntCodec : PacketCodec { } } -public suspend fun BytesBuffer.writeVarInt(value: Int): Unit = VarIntCodec.encode(this, value) -public suspend fun BytesBuffer.readVarInt(): Int = VarIntCodec.decode(this) +public fun BytesBuffer.writeVarInt(value: Int): Unit = VarIntCodec.encode(this, value) +public fun BytesBuffer.readVarInt(): Int = VarIntCodec.decode(this) -public suspend fun BytesBuffer.writeVarLong(value: Long): Unit = VarLongCodec.encode(this, value) -public suspend fun BytesBuffer.readVarLong(): Long = VarLongCodec.decode(this) +public fun BytesBuffer.writeVarLong(value: Long): Unit = VarLongCodec.encode(this, value) +public fun BytesBuffer.readVarLong(): Long = VarLongCodec.decode(this) + +public suspend fun ReadChannel.readVarInt(): Int { + var numRead = 0 + var result = 0 + var read: Byte + do { + read = readByte() + val value = (read.toInt() and 0x7F) + result = result or (value shl (7 * numRead)) + numRead++ + if (numRead > 5) throw IllegalArgumentException("VarInt is too big") + } while ((read.toInt() and 0x80) != 0) + return result +} \ No newline at end of file diff --git a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/VarLong.kt b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/VarLong.kt index 3d254cb..0a22a08 100644 --- a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/VarLong.kt +++ b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/primitives/VarLong.kt @@ -8,10 +8,10 @@ package cn.rtast.libmc.primitives import cn.rtast.libmc.packet.PacketCodec -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public object VarLongCodec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: Long) { + override fun encode(buffer: BytesBuffer, value: Long) { var v = value while (true) { if ((v and 0x7FL.inv()) == 0L) { @@ -23,7 +23,7 @@ public object VarLongCodec : PacketCodec { } } - override suspend fun decode(buffer: BytesBuffer): Long { + override fun decode(buffer: BytesBuffer): Long { var numRead = 0 var result = 0L var read: Byte diff --git a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/stream/buffer.kt b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/stream/buffer.kt deleted file mode 100644 index b7ee236..0000000 --- a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/stream/buffer.kt +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/3 - */ - - -package cn.rtast.libmc.stream - -public expect class BytesBuffer { - public constructor() - public constructor(bytes: ByteArray) - - public suspend fun writeByte(value: Byte) - public suspend fun writeShort(value: Short, endian: ByteOrder = ByteOrder.BIG_ENDIAN) - public suspend fun writeInt(value: Int, endian: ByteOrder = ByteOrder.BIG_ENDIAN) - public suspend fun writeLong(value: Long, endian: ByteOrder = ByteOrder.BIG_ENDIAN) - public suspend fun writeDouble(value: Double, endian: ByteOrder = ByteOrder.BIG_ENDIAN) - public suspend fun writeFloat(value: Float, endian: ByteOrder = ByteOrder.BIG_ENDIAN) - public suspend fun writeBytes(bytes: ByteArray) - public suspend fun writeBoolean(value: Boolean) - - public suspend fun readByte(): Byte - public suspend fun readUByte(): UByte - public suspend fun readShort(endian: ByteOrder = ByteOrder.BIG_ENDIAN): Short - public suspend fun readInt(endian: ByteOrder = ByteOrder.BIG_ENDIAN): Int - public suspend fun readLong(endian: ByteOrder = ByteOrder.BIG_ENDIAN): Long - public suspend fun readDouble(endian: ByteOrder = ByteOrder.BIG_ENDIAN): Double - public suspend fun readFloat(endian: ByteOrder = ByteOrder.BIG_ENDIAN): Float - public suspend fun readBytes(length: Int): ByteArray - public suspend fun readBoolean(): Boolean - public suspend fun readRemainingBytes(): ByteArray - - public suspend fun toByteArray(): ByteArray - public suspend fun hasRemaining(): Boolean - public suspend fun close() - public val size: Int - public val remaining: Long -} - -@Suppress("NOTHING_TO_INLINE") -public inline fun ByteArray.wrap(): BytesBuffer = BytesBuffer(this) diff --git a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/stream/channels.kt b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/stream/channels.kt deleted file mode 100644 index ff5039c..0000000 --- a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/stream/channels.kt +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/3 - */ - - -package cn.rtast.libmc.stream - -/** - * Platform specified raw byte read channel - */ -public expect open class ReadChannel() { - public open suspend fun readByte(): Byte - public open suspend fun readShort(endian: ByteOrder = ByteOrder.BIG_ENDIAN): Short - public open suspend fun readInt(endian: ByteOrder = ByteOrder.BIG_ENDIAN): Int - public open suspend fun readLong(endian: ByteOrder = ByteOrder.BIG_ENDIAN): Long - public open suspend fun readBytes(length: Int): ByteArray - public open suspend fun readFully(out: ByteArray, start: Int = 0, end: Int = out.size) -} - -/** - * Platform specified raw byte write channel - */ -public expect open class WriteChannel() { - public open suspend fun writeFully(value: ByteArray, startIndex: Int = 0, endIndex: Int = value.size) - public open suspend fun flush() -} \ No newline at end of file diff --git a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/stream/socket.kt b/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/stream/socket.kt deleted file mode 100644 index 8a6375e..0000000 --- a/libmc-common/src/commonMain/kotlin/cn/rtast/libmc/stream/socket.kt +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/3 - */ - - -package cn.rtast.libmc.stream - -import cn.rtast.libmc.LibMCContext - - -public expect class Socket public constructor(host: String, port: Int, context: LibMCContext) { - public fun openReadChannel(): ReadChannel - public fun openWriteChannel(): WriteChannel - public fun close() -} - -public expect class UdpSocket public constructor(host: String, port: Int, context: LibMCContext) { - public suspend fun sendAndReceive(data: ByteArray): ByteArray - public fun close() -} \ No newline at end of file diff --git a/libmc-common/src/jvmMain/kotlin/cn/rtast/libmc/context.jvm.kt b/libmc-common/src/jvmMain/kotlin/cn/rtast/libmc/context.jvm.kt deleted file mode 100644 index 2534692..0000000 --- a/libmc-common/src/jvmMain/kotlin/cn/rtast/libmc/context.jvm.kt +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/3 - */ - -package cn.rtast.libmc - -/** - * No Context for jvm targets - */ -public actual class LibMCContext \ No newline at end of file diff --git a/libmc-common/src/jvmMain/kotlin/cn/rtast/libmc/stream/buffer.jvm.kt b/libmc-common/src/jvmMain/kotlin/cn/rtast/libmc/stream/buffer.jvm.kt deleted file mode 100644 index 0927cfd..0000000 --- a/libmc-common/src/jvmMain/kotlin/cn/rtast/libmc/stream/buffer.jvm.kt +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/3 - */ - -package cn.rtast.libmc.stream - -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.withContext -import java.io.ByteArrayOutputStream - -public actual class BytesBuffer { - private val outStream = ByteArrayOutputStream() - private var readBuffer: ByteArray? = null - private var readOffset = 0 - - public actual constructor() - public actual constructor(bytes: ByteArray) { - this.readBuffer = bytes - outStream.write(bytes) - } - - public actual suspend fun writeByte(value: Byte) { - readBuffer = null - outStream.write(value.toInt()) - } - - public actual suspend fun writeShort(value: Short, endian: ByteOrder) { - readBuffer = null - val v = value.toInt() - if (endian == ByteOrder.BIG_ENDIAN) { - outStream.write(v shr 8) - outStream.write(v) - } else { - outStream.write(v) - outStream.write(v shr 8) - } - } - - public actual suspend fun writeInt(value: Int, endian: ByteOrder) { - readBuffer = null - if (endian == ByteOrder.BIG_ENDIAN) { - outStream.write(value shr 24) - outStream.write(value shr 16) - outStream.write(value shr 8) - outStream.write(value) - } else { - outStream.write(value) - outStream.write(value shr 8) - outStream.write(value shr 16) - outStream.write(value shr 24) - } - } - - public actual suspend fun writeLong(value: Long, endian: ByteOrder) { - readBuffer = null - if (endian == ByteOrder.BIG_ENDIAN) { - for (i in 56 downTo 0 step 8) outStream.write((value shr i).toInt()) - } else { - for (i in 0..56 step 8) outStream.write((value shr i).toInt()) - } - } - - public actual suspend fun writeDouble(value: Double, endian: ByteOrder) { - writeLong(value.toRawBits(), endian) - } - - public actual suspend fun writeFloat(value: Float, endian: ByteOrder) { - writeInt(value.toRawBits(), endian) - } - - public actual suspend fun writeBytes(bytes: ByteArray) { - readBuffer = null - withContext(Dispatchers.IO) { outStream.write(bytes) } - } - - public actual suspend fun writeBoolean(value: Boolean): Unit = writeByte(if (value) 0x01 else 0x00) - - private suspend fun ensureReadArray(): ByteArray { - var buf = readBuffer - if (buf == null) { - buf = outStream.toByteArray() - readBuffer = buf - } - return buf - } - - public actual suspend fun readByte(): Byte { - val array = ensureReadArray() - if (readOffset >= array.size) throw IndexOutOfBoundsException("Buffer underflow") - return array[readOffset++] - } - - public actual suspend fun readUByte(): UByte = this.readByte().toUByte() - public actual suspend fun readShort(endian: ByteOrder): Short = readBytes(2).toShort(endian) - public actual suspend fun readInt(endian: ByteOrder): Int = readBytes(4).toInt(endian) - public actual suspend fun readLong(endian: ByteOrder): Long = readBytes(8).toLong(endian) - - public actual suspend fun readDouble(endian: ByteOrder): Double { - return Double.fromBits(readLong(endian)) - } - - public actual suspend fun readFloat(endian: ByteOrder): Float { - return Float.fromBits(readInt(endian)) - } - - public actual suspend fun readBytes(length: Int): ByteArray { - val array = ensureReadArray() - if (readOffset + length > array.size) throw IndexOutOfBoundsException("Buffer underflow") - val result = array.copyOfRange(readOffset, readOffset + length) - readOffset += length - return result - } - - public actual suspend fun readBoolean(): Boolean = this.readByte() != 0x00.toByte() - - public actual suspend fun readRemainingBytes(): ByteArray { - val array = ensureReadArray() - if (readOffset >= array.size) return byteArrayOf() - val result = array.copyOfRange(readOffset, array.size) - readOffset = array.size - return result - } - - public actual suspend fun toByteArray(): ByteArray = outStream.toByteArray() - public actual suspend fun hasRemaining(): Boolean = readOffset < ensureReadArray().size - - public actual suspend fun close(): Unit = withContext(Dispatchers.IO) { outStream.close() } - public actual val size: Int get() = outStream.size() - public actual val remaining: Long get() = (outStream.size() - readOffset).coerceAtLeast(0).toLong() -} \ No newline at end of file diff --git a/libmc-common/src/jvmMain/kotlin/cn/rtast/libmc/stream/channels.jvm.kt b/libmc-common/src/jvmMain/kotlin/cn/rtast/libmc/stream/channels.jvm.kt deleted file mode 100644 index 406e4a4..0000000 --- a/libmc-common/src/jvmMain/kotlin/cn/rtast/libmc/stream/channels.jvm.kt +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/3 - */ - -package cn.rtast.libmc.stream - -import java.io.EOFException -import java.io.InputStream -import java.io.OutputStream - -public actual open class ReadChannel public actual constructor() { - private lateinit var _inputStream: InputStream - - public constructor(inputStream: InputStream) : this() { - this._inputStream = inputStream - } - - public actual open suspend fun readFully(out: ByteArray, start: Int, end: Int) { - var bytesRead = 0 - val length = end - start - while (bytesRead < length) { - val read = _inputStream.read(out, start + bytesRead, length - bytesRead) - if (read == -1) throw EOFException("End of stream reached") - bytesRead += read - } - } - - public actual open suspend fun readByte(): Byte { - val buf = ByteArray(1) - readFully(buf, 0, 1) - return buf[0] - } - - public actual open suspend fun readBytes(length: Int): ByteArray { - val bytes = ByteArray(length) - readFully(bytes, 0, length) - return bytes - } - - public actual open suspend fun readShort(endian: ByteOrder): Short = readBytes(2).toShort(endian) - public actual open suspend fun readInt(endian: ByteOrder): Int = readBytes(4).toInt(endian) - public actual open suspend fun readLong(endian: ByteOrder): Long = readBytes(8).toLong(endian) -} - -public actual open class WriteChannel public actual constructor() { - private lateinit var _outputStream: OutputStream - - public constructor(outputStream: OutputStream) : this() { - _outputStream = outputStream - } - - public actual open suspend fun writeFully(value: ByteArray, startIndex: Int, endIndex: Int): Unit = - _outputStream.write(value, startIndex, endIndex - startIndex) - - public actual open suspend fun flush(): Unit = _outputStream.flush() -} \ No newline at end of file diff --git a/libmc-common/src/jvmMain/kotlin/cn/rtast/libmc/stream/order_convert.kt b/libmc-common/src/jvmMain/kotlin/cn/rtast/libmc/stream/order_convert.kt deleted file mode 100644 index 97c46ba..0000000 --- a/libmc-common/src/jvmMain/kotlin/cn/rtast/libmc/stream/order_convert.kt +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/4 - */ - - -package cn.rtast.libmc.stream - -internal fun ByteArray.toShort(endian: ByteOrder = ByteOrder.BIG_ENDIAN): Short { - val b1 = this[0].toInt() and 0xFF - val b2 = this[1].toInt() and 0xFF - return if (endian == ByteOrder.BIG_ENDIAN) { - ((b1 shl 8) or b2).toShort() - } else { - ((b2 shl 8) or b1).toShort() - } -} - -internal fun ByteArray.toInt(endian: ByteOrder = ByteOrder.BIG_ENDIAN): Int { - val b1 = this[0].toInt() and 0xFF - val b2 = this[1].toInt() and 0xFF - val b3 = this[2].toInt() and 0xFF - val b4 = this[3].toInt() and 0xFF - return if (endian == ByteOrder.BIG_ENDIAN) { - (b1 shl 24) or (b2 shl 16) or (b3 shl 8) or b4 - } else { - (b4 shl 24) or (b3 shl 16) or (b2 shl 8) or b1 - } -} - -internal fun ByteArray.toLong(endian: ByteOrder = ByteOrder.BIG_ENDIAN): Long { - var result = 0L - if (endian == ByteOrder.BIG_ENDIAN) { - for (b in this) result = (result shl 8) or (b.toLong() and 0xFF) - } else { - for (i in 7 downTo 0) result = (result shl 8) or (this[i].toLong() and 0xFF) - } - return result -} \ No newline at end of file diff --git a/libmc-common/src/jvmMain/kotlin/cn/rtast/libmc/stream/socket.jvm.kt b/libmc-common/src/jvmMain/kotlin/cn/rtast/libmc/stream/socket.jvm.kt deleted file mode 100644 index fcfb423..0000000 --- a/libmc-common/src/jvmMain/kotlin/cn/rtast/libmc/stream/socket.jvm.kt +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/3 - */ - -package cn.rtast.libmc.stream - -import cn.rtast.libmc.LibMCContext -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.withContext -import java.net.DatagramPacket -import java.net.DatagramSocket -import java.net.InetSocketAddress -import java.net.Socket as JvmSocket - -public actual class Socket public actual constructor(host: String, port: Int, context: LibMCContext) { - private val socket = JvmSocket(host, port) - - public actual fun openReadChannel(): ReadChannel = ReadChannel(socket.getInputStream()) - public actual fun openWriteChannel(): WriteChannel = WriteChannel(socket.getOutputStream()) - public actual fun close(): Unit = socket.close() -} - -public actual class UdpSocket public actual constructor(host: String, port: Int, context: LibMCContext) { - private val socket = DatagramSocket().apply { - soTimeout = 3000 - connect(InetSocketAddress(host, port)) - } - - public actual suspend fun sendAndReceive(data: ByteArray): ByteArray = withContext(Dispatchers.IO) { - socket.send(DatagramPacket(data, data.size)) - val buf = ByteArray(2048) - val receivePacket = DatagramPacket(buf, buf.size) - socket.receive(receivePacket) - return@withContext buf.copyOf(receivePacket.length) - } - - public actual fun close(): Unit = socket.close() -} \ No newline at end of file diff --git a/libmc-common/src/nativeMain/kotlin/cn/rtast/libmc/context.native.kt b/libmc-common/src/nativeMain/kotlin/cn/rtast/libmc/context.native.kt deleted file mode 100644 index fc0d32c..0000000 --- a/libmc-common/src/nativeMain/kotlin/cn/rtast/libmc/context.native.kt +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/3 - */ - -@file:Suppress("PropertyName") - -package cn.rtast.libmc - -import io.ktor.network.selector.* -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.IO - -public actual class LibMCContext actual constructor() { - internal var _selectorManager: SelectorManager = SelectorManager(Dispatchers.IO) - internal var _autoCloseSelectorManager: Boolean = false - - public constructor(selectorManager: SelectorManager, autoClose: Boolean = false) : this() { - _selectorManager = selectorManager - _autoCloseSelectorManager = autoClose - } -} \ No newline at end of file diff --git a/libmc-common/src/nativeMain/kotlin/cn/rtast/libmc/stream/buffer.native.kt b/libmc-common/src/nativeMain/kotlin/cn/rtast/libmc/stream/buffer.native.kt deleted file mode 100644 index 5c3c73b..0000000 --- a/libmc-common/src/nativeMain/kotlin/cn/rtast/libmc/stream/buffer.native.kt +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/3 - */ - -package cn.rtast.libmc.stream - -import io.ktor.utils.io.core.* -import kotlinx.io.* -import kotlinx.io.Buffer - -public actual class BytesBuffer { - private val _delegateBuf: Buffer - - public actual constructor() { - _delegateBuf = Buffer() - } - - public actual constructor(bytes: ByteArray) { - _delegateBuf = Buffer().apply { write(bytes) } - } - - public actual suspend fun writeByte(value: Byte): Unit = _delegateBuf.writeByte(value) - public actual suspend fun writeShort(value: Short, endian: ByteOrder) { - if (endian == ByteOrder.BIG_ENDIAN) _delegateBuf.writeShort(value) - else _delegateBuf.writeShortLe(value) - } - - public actual suspend fun writeInt(value: Int, endian: ByteOrder) { - if (endian == ByteOrder.BIG_ENDIAN) _delegateBuf.writeInt(value) - else _delegateBuf.writeIntLe(value) - } - - public actual suspend fun writeLong(value: Long, endian: ByteOrder) { - if (endian == ByteOrder.BIG_ENDIAN) _delegateBuf.writeLong(value) - else _delegateBuf.writeLongLe(value) - } - - public actual suspend fun writeDouble(value: Double, endian: ByteOrder): Unit = - if (endian == ByteOrder.BIG_ENDIAN) _delegateBuf.writeDouble(value) else _delegateBuf.writeDoubleLe(value) - - public actual suspend fun writeFloat(value: Float, endian: ByteOrder): Unit = - if (endian == ByteOrder.BIG_ENDIAN) _delegateBuf.writeFloat(value) else _delegateBuf.writeFloatLe(value) - - public actual suspend fun writeBytes(bytes: ByteArray): Unit = _delegateBuf.write(bytes) - public actual suspend fun writeBoolean(value: Boolean): Unit = _delegateBuf.writeByte(if (value) 0x01 else 0x00) - - public actual suspend fun readByte(): Byte = _delegateBuf.readByte() - public actual suspend fun readUByte(): UByte = this.readByte().toUByte() - public actual suspend fun readShort(endian: ByteOrder): Short = - if (endian == ByteOrder.BIG_ENDIAN) _delegateBuf.readShort() else _delegateBuf.readShortLe() - - public actual suspend fun readInt(endian: ByteOrder): Int = - if (endian == ByteOrder.BIG_ENDIAN) _delegateBuf.readInt() else _delegateBuf.readIntLe() - - public actual suspend fun readLong(endian: ByteOrder): Long = - if (endian == ByteOrder.BIG_ENDIAN) _delegateBuf.readLong() else _delegateBuf.readLongLe() - - public actual suspend fun readDouble(endian: ByteOrder): Double = - if (endian == ByteOrder.BIG_ENDIAN) _delegateBuf.readDouble() else _delegateBuf.readDoubleLe() - - public actual suspend fun readFloat(endian: ByteOrder): Float = - if (endian == ByteOrder.BIG_ENDIAN) _delegateBuf.readFloat() else _delegateBuf.readFloatLe() - - public actual suspend fun readBytes(length: Int): ByteArray = _delegateBuf.readByteArray(length) - public actual suspend fun readBoolean(): Boolean = _delegateBuf.readByte() != 0x00.toByte() - public actual suspend fun readRemainingBytes(): ByteArray = this.toByteArray() - - public actual suspend fun toByteArray(): ByteArray { - val copy = _delegateBuf.peek() - return try { - copy.readByteArray() - } finally { - copy.close() - } - } - - public actual suspend fun hasRemaining(): Boolean = !_delegateBuf.exhausted() - public actual suspend fun close(): Unit = _delegateBuf.close() - - public actual val size: Int get() = _delegateBuf.size.toInt() - public actual val remaining: Long get() = _delegateBuf.remaining -} \ No newline at end of file diff --git a/libmc-common/src/nativeMain/kotlin/cn/rtast/libmc/stream/channels.native.kt b/libmc-common/src/nativeMain/kotlin/cn/rtast/libmc/stream/channels.native.kt deleted file mode 100644 index 9806b1c..0000000 --- a/libmc-common/src/nativeMain/kotlin/cn/rtast/libmc/stream/channels.native.kt +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/3 - */ - -package cn.rtast.libmc.stream - -import io.ktor.utils.io.* -import io.ktor.utils.io.bits.* - -public actual open class ReadChannel public actual constructor() { - - private lateinit var _readChannel: ByteReadChannel - - public constructor(readChannel: ByteReadChannel) : this() { - this._readChannel = readChannel - } - - public actual open suspend fun readByte(): Byte = _readChannel.readByte() - public actual open suspend fun readBytes(length: Int): ByteArray = _readChannel.readByteArray(length) - public actual open suspend fun readFully(out: ByteArray, start: Int, end: Int): Unit = - _readChannel.readFully(out, start, end) - - public actual open suspend fun readShort(endian: ByteOrder): Short { - val bytes = readBytes(2) - val v = ((bytes[0].toInt() and 0xFF shl 8) or (bytes[1].toInt() and 0xFF)).toShort() - return if (endian == ByteOrder.BIG_ENDIAN) v else v.reverseByteOrder() - } - - public actual open suspend fun readInt(endian: ByteOrder): Int { - val bytes = readBytes(4) - val v = (bytes[0].toInt() and 0xFF shl 24) or - (bytes[1].toInt() and 0xFF shl 16) or - (bytes[2].toInt() and 0xFF shl 8) or - (bytes[3].toInt() and 0xFF) - return if (endian == ByteOrder.BIG_ENDIAN) v else v.reverseByteOrder() - } - - public actual open suspend fun readLong(endian: ByteOrder): Long { - val bytes = readBytes(8) - var v = 0L - for (i in 0 until 8) { - v = (v shl 8) or (bytes[i].toLong() and 0xFF) - } - return if (endian == ByteOrder.BIG_ENDIAN) v else v.reverseByteOrder() - } -} - -public actual open class WriteChannel public actual constructor() { - private lateinit var _writeChannel: ByteWriteChannel - - public constructor(writeChannel: ByteWriteChannel) : this() { - _writeChannel = writeChannel - } - - public actual open suspend fun writeFully(value: ByteArray, startIndex: Int, endIndex: Int): Unit = - _writeChannel.writeFully(value, startIndex, endIndex) - - public actual open suspend fun flush(): Unit = _writeChannel.flush() -} \ No newline at end of file diff --git a/libmc-common/src/nativeMain/kotlin/cn/rtast/libmc/stream/socket.native.kt b/libmc-common/src/nativeMain/kotlin/cn/rtast/libmc/stream/socket.native.kt deleted file mode 100644 index cd4b9d4..0000000 --- a/libmc-common/src/nativeMain/kotlin/cn/rtast/libmc/stream/socket.native.kt +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/3 - */ - -package cn.rtast.libmc.stream - -import cn.rtast.libmc.LibMCContext -import io.ktor.network.sockets.* -import io.ktor.utils.io.core.* -import kotlinx.coroutines.runBlocking -import kotlinx.io.readByteArray - -public actual class Socket public actual constructor(host: String, port: Int, context: LibMCContext) { - private val ctx = context - private val socket = runBlocking { aSocket(ctx._selectorManager).tcp().connect(host, port) } - - public actual fun openReadChannel(): ReadChannel = ReadChannel(socket.openReadChannel()) - public actual fun openWriteChannel(): WriteChannel = - WriteChannel(socket.openWriteChannel(autoFlush = true)) - - public actual fun close() { - socket.close() - if (ctx._autoCloseSelectorManager) ctx._selectorManager.close() - } -} - -public actual class UdpSocket public actual constructor(host: String, port: Int, context: LibMCContext) { - private val ctx = context - - // use bind to create an unconnected socket - private val socket = runBlocking { aSocket(ctx._selectorManager).udp().bind() } - private val remoteAddress = InetSocketAddress(host, port) - - public actual suspend fun sendAndReceive(data: ByteArray): ByteArray { - val packet = buildPacket { writeFully(data) } - socket.send(Datagram(packet, remoteAddress)) - return socket.receive().packet.readByteArray() - } - - public actual fun close() { - socket.close() - if (ctx._autoCloseSelectorManager) ctx._selectorManager.close() - } -} \ No newline at end of file diff --git a/libmc-mcping/build.gradle.kts b/libmc-mcping/build.gradle.kts deleted file mode 100644 index dc2a247..0000000 --- a/libmc-mcping/build.gradle.kts +++ /dev/null @@ -1,23 +0,0 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget - -kotlin { - explicitApi() - withSourcesJar() - - linuxX64() - linuxArm64() - macosArm64() - mingwX64() - jvm { compilerOptions.jvmTarget = JvmTarget.JVM_1_8 } - - sourceSets { - commonMain.dependencies { - api(project(":common")) - } - - commonTest.dependencies { - implementation(kotlin("test")) - implementation(libs.kotlinx.coroutines.test) - } - } -} \ No newline at end of file diff --git a/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/bedrock/packet.kt b/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/bedrock/packet.kt deleted file mode 100644 index 3f124af..0000000 --- a/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/bedrock/packet.kt +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/3 - */ - - -package cn.rtast.libmc.mcping.bedrock - -import cn.rtast.libmc.stream.BytesBuffer -import cn.rtast.libmc.packet.PacketCodec -import kotlin.random.Random - -private val RAKNET_MAGIC = byteArrayOf( - 0x00, 0xFF.toByte(), - 0xFF.toByte(), 0x00, - 0xFE.toByte(), 0xFE.toByte(), - 0xFE.toByte(), 0xFE.toByte(), - 0xFD.toByte(), 0xFD.toByte(), - 0xFD.toByte(), 0xFD.toByte(), - 0x12, 0x34, 0x56, 0x78 -) - -internal interface MinecraftBedrockPacket { - val packetId: Byte -} - -internal data class BedrockRequestPacket( - val time: Long, - val magic: ByteArray = RAKNET_MAGIC, - val guid: Long = Random.nextLong(), -) : MinecraftBedrockPacket { - override val packetId: Byte = 0x01 - - companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: BedrockRequestPacket) { - buffer.writeByte(value.packetId) - buffer.writeLong(value.time) - buffer.writeBytes(value.magic) - buffer.writeLong(value.guid) - } - - override suspend fun decode(buffer: BytesBuffer): BedrockRequestPacket = throw UnsupportedOperationException() - } - - override fun equals(other: Any?): Boolean { - if (this === other) return true - if (other == null || this::class != other::class) return false - other as BedrockRequestPacket - if (time != other.time) return false - if (guid != other.guid) return false - if (packetId != other.packetId) return false - if (!magic.contentEquals(other.magic)) return false - return true - } - - override fun hashCode(): Int { - var result = time.hashCode() - result = 31 * result + guid.hashCode() - result = 31 * result + packetId - result = 31 * result + magic.contentHashCode() - return result - } -} - -internal data class BedrockResponsePacket( - override val packetId: Byte, - val time: Long, - val serverGuid: Long, - val magic: ByteArray, - val payload: String, -) : MinecraftBedrockPacket { - - companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: BedrockResponsePacket) = throw UnsupportedOperationException() - override suspend fun decode(buffer: BytesBuffer): BedrockResponsePacket { - val packetId = buffer.readByte() - if (packetId != 0x1C.toByte()) throw IllegalStateException("Expected pong id 0x1C, got $packetId") - val time = buffer.readLong() - val serverGuid = buffer.readLong() - val magic = buffer.readBytes(16) - if (!magic.contentEquals(RAKNET_MAGIC)) throw IllegalStateException("Invalid magic in response") - val payloadLength = buffer.readShort().toInt() and 0xFFFF - val payloadBytes = buffer.readBytes(payloadLength) - val payload = payloadBytes.decodeToString() - return BedrockResponsePacket(packetId, time, serverGuid, magic, payload) - } - } - - override fun equals(other: Any?): Boolean { - if (this === other) return true - if (other == null || this::class != other::class) return false - other as BedrockResponsePacket - if (packetId != other.packetId) return false - if (time != other.time) return false - if (serverGuid != other.serverGuid) return false - if (!magic.contentEquals(other.magic)) return false - if (payload != other.payload) return false - return true - } - - override fun hashCode(): Int { - var result = packetId.toInt() - result = 31 * result + time.hashCode() - result = 31 * result + serverGuid.hashCode() - result = 31 * result + magic.contentHashCode() - result = 31 * result + payload.hashCode() - return result - } -} \ No newline at end of file diff --git a/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/bedrock/packet_writer.kt b/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/bedrock/packet_writer.kt deleted file mode 100644 index 645c7fe..0000000 --- a/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/bedrock/packet_writer.kt +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/3 - */ - - -package cn.rtast.libmc.mcping.bedrock - -import cn.rtast.libmc.stream.BytesBuffer -import cn.rtast.libmc.packet.PacketCodec -import cn.rtast.libmc.stream.UdpSocket - - -internal suspend fun UdpSocket.sendPacket(packet: T, codec: PacketCodec): ByteArray { - val buf = BytesBuffer() - codec.encode(buf, packet) - return sendAndReceive(buf.toByteArray()) -} \ No newline at end of file diff --git a/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/bedrock/ping_bedrock.kt b/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/bedrock/ping_bedrock.kt deleted file mode 100644 index d0dc847..0000000 --- a/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/bedrock/ping_bedrock.kt +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/3 - */ - - -package cn.rtast.libmc.mcping.bedrock - -import cn.rtast.libmc.LibMCContext -import cn.rtast.libmc.stream.UdpSocket -import cn.rtast.libmc.stream.wrap -import cn.rtast.libmc.mcping.PingResponse -import kotlin.time.Clock - -internal suspend fun pingBedrockServer(host: String, port: Int, context: LibMCContext): PingResponse { - val socket = UdpSocket(host, port, context) - return try { - val sendTime = Clock.System.now().toEpochMilliseconds() - val requestPacket = BedrockRequestPacket(sendTime) - val responseBytes = socket.sendPacket(requestPacket, BedrockRequestPacket) - val receiveTime = Clock.System.now().toEpochMilliseconds() - val responsePacket = BedrockResponsePacket.decode(responseBytes.wrap()) - val latency = (receiveTime - sendTime).toInt() - PingResponse(responsePacket.payload, latency) - } finally { - socket.close() - } -} \ No newline at end of file diff --git a/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/bedrock/ping_response_parser.kt b/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/bedrock/ping_response_parser.kt deleted file mode 100644 index 2f67a1c..0000000 --- a/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/bedrock/ping_response_parser.kt +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/3 - */ - - -package cn.rtast.libmc.mcping.bedrock - -import cn.rtast.libmc.mcping.PingResponse - -public enum class BedrockGameMode(public val gameMode: String) { - Survival("Survival"), - Creative("Creative"), - Adventure("Adventure"), - Spectator("Spectator"), // reserved? - Hardcore("Hardcore"), - Unknown(""); // reserved - - public companion object { - public fun parse(value: String?): BedrockGameMode { - return entries.firstOrNull { - it.name.equals(value, ignoreCase = true) - } ?: Unknown - } - } -} - -public data class BedrockPingResponse( - /** - * always be `MCPE` - * index 0 - */ - val protocolHeader: String, - /** - * MOTD line 1 - * index 1 - */ - val motdLine1: String, - /** - * protocol version - * index 2 - */ - val protocolVersion: Int, - /** - * game version - * index 3 - */ - val gameVersion: String, - /** - * online players - * index 4 - */ - val onlinePlayers: Int, - /** - * maximum players - * index 5 - */ - val maximumPlayers: Int, - /** - * server GUID - * parsed as String -> origin bytes count is 8 - * index 6 - */ - val serverGUID: String, - /** - * MOTD line 2 - * index 7 - */ - val motdLine2: String, - /** - * game mode - * index 8 - */ - val gameMode: BedrockGameMode, - /** - * Nintendo Limited - * Nintendo Switch online restriction flag (1 indicates restriction enabled/processed) - * index 9 - */ - val nintendoLimited: Boolean, - /** - * ipv4 port - * if disabled or unconfigured, it will be 0 - * index 10 - */ - val ipv4Port: Int, - /** - * ipv6 port - * if disabled or unconfigured, it will be 0 - * index 11 - */ - val ipv6Port: Int, - /** - * latency ms - * reserved not exists in response packet - */ - val latency: Int, -) - -internal fun PingResponse.parseBedrockPingResponse(): BedrockPingResponse { - try { - val fields = content.split(";") - return BedrockPingResponse( - fields[0], fields[1], fields[2].toInt(), - fields[3], fields[4].toInt(), - fields[5].toInt(), fields[6], - fields[7], BedrockGameMode.parse(fields[8]), - fields.getOrNull(9) == "1", fields[10].toInt(), - fields[11].toInt(), this.latency // pass through PingResponse.latency - ) - } catch (e: Exception) { - e.printStackTrace() - throw IllegalStateException("The server respond incorrect response: Missing fields or type mismatch") - } -} \ No newline at end of file diff --git a/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/java/buffer.kt b/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/java/buffer.kt deleted file mode 100644 index 48d847a..0000000 --- a/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/java/buffer.kt +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/7 - */ - - -package cn.rtast.libmc.mcping.java - -import cn.rtast.libmc.stream.BytesBuffer -import cn.rtast.libmc.stream.ReadChannel -import cn.rtast.libmc.stream.wrap - -private suspend fun ReadChannel.readVarInt(): Int { - var numRead = 0 - var result = 0 - var read: Byte - do { - read = this.readByte() - val value = (read.toInt() and 0x7F) - result = result or (value shl (7 * numRead)) - numRead++ - if (numRead > 5) throw IllegalArgumentException("VarInt is too big") - } while ((read.toInt() and 0x80) != 0) - return result -} - -public suspend fun ReadChannel.readPacketFrame(): BytesBuffer { - val length = this.readVarInt() - return this.readBytes(length).wrap() -} \ No newline at end of file diff --git a/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/java/packet.kt b/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/java/packet.kt deleted file mode 100644 index 796724c..0000000 --- a/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/java/packet.kt +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/3 - */ - - -package cn.rtast.libmc.mcping.java - -import cn.rtast.libmc.stream.BytesBuffer -import cn.rtast.libmc.primitives.McStringCodec -import cn.rtast.libmc.packet.PacketCodec -import cn.rtast.libmc.primitives.VarIntCodec -import cn.rtast.libmc.packet.MinecraftPacket - -// ref https://minecraft.wiki/w/Java_Edition_protocol/Packets#Handshake -internal data class HandshakePacket( - val protocolVersion: Int, - val serverAddress: String, - val serverPort: UShort, - // 1 -> Status, 2 -> Login - val nextState: Int, -) : MinecraftPacket { - companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: HandshakePacket) { - VarIntCodec.encode(buffer, value.protocolVersion) - McStringCodec.encode(buffer, value.serverAddress) - buffer.writeShort(value.serverPort.toShort()) - VarIntCodec.encode(buffer, value.nextState) - } - - override suspend fun decode(buffer: BytesBuffer): HandshakePacket = throw UnsupportedOperationException() - } -} - -// ref https://minecraft.wiki/w/Java_Edition_protocol/Packets#Status -internal data object StatusRequestPacket : MinecraftPacket, PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: StatusRequestPacket) {} - override suspend fun decode(buffer: BytesBuffer): StatusRequestPacket = throw UnsupportedOperationException() -} - -internal data class PingPacket(val currentTime: Long) : MinecraftPacket { - companion object : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: PingPacket) { - buffer.writeLong(value.currentTime) - } - - override suspend fun decode(buffer: BytesBuffer): PingPacket { - return PingPacket(buffer.readLong()) - } - } -} \ No newline at end of file diff --git a/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/java/ping_java.kt b/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/java/ping_java.kt deleted file mode 100644 index 2f7eda5..0000000 --- a/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/java/ping_java.kt +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/3 - */ - - -package cn.rtast.libmc.mcping.java - -import cn.rtast.libmc.LibMCContext -import cn.rtast.libmc.mcping.PingResponse -import cn.rtast.libmc.mcping.sendPacket -import cn.rtast.libmc.primitives.McStringCodec -import cn.rtast.libmc.primitives.VarIntCodec -import cn.rtast.libmc.stream.Socket -import kotlin.time.Clock - -internal suspend fun pingJavaServer(host: String, port: Int, context: LibMCContext): PingResponse { - val socket = Socket(host, port, context) - val receiveChannel = socket.openReadChannel() - val sendChannel = socket.openWriteChannel() - - return try { - val handshakePacket = HandshakePacket( - protocolVersion = -1, - serverAddress = host, - serverPort = port.toUShort(), - nextState = 1 - ) - sendChannel.sendPacket(handshakePacket, 0x00, HandshakePacket) - sendChannel.sendPacket(StatusRequestPacket, 0x00, StatusRequestPacket) - - val statusFrameBuffer = receiveChannel.readPacketFrame() - val statusPacketId = VarIntCodec.decode(statusFrameBuffer) - if (statusPacketId != 0x00) { - throw IllegalStateException("Expected StatusResponse packet ID 0x00, got $statusPacketId") - } - val jsonResponse = McStringCodec.decode(statusFrameBuffer) - - val sendTime = Clock.System.now().toEpochMilliseconds() - val pingPacket = PingPacket(sendTime) - sendChannel.sendPacket(pingPacket, 0x01, PingPacket) - - val pongFrameBuffer = receiveChannel.readPacketFrame() - val pongPacketId = VarIntCodec.decode(pongFrameBuffer) - if (pongPacketId != 0x01) { - throw IllegalStateException("Expected Pong packet ID 0x01, got $pongPacketId") - } - val latency = (Clock.System.now().toEpochMilliseconds() - sendTime).toInt() - PingResponse(jsonResponse, latency) - } finally { - socket.close() - } -} \ No newline at end of file diff --git a/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/mcping.kt b/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/mcping.kt deleted file mode 100644 index d4fe59d..0000000 --- a/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/mcping.kt +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/3 - */ - -@file:JvmName("McPing") - - -package cn.rtast.libmc.mcping - -import cn.rtast.libmc.LibMCContext -import cn.rtast.libmc.mcping.bedrock.pingBedrockServer -import cn.rtast.libmc.mcping.java.pingJavaServer -import kotlin.jvm.JvmName -import kotlin.jvm.JvmOverloads - -@JvmOverloads -public suspend fun mcping( - host: String, - port: Int, - type: ServerType = ServerType.Java, - context: LibMCContext = LibMCContext(), -): PingResponse = when (type) { - ServerType.Java -> pingJavaServer(host, port, context) - ServerType.Bedrock -> pingBedrockServer(host, port, context) -} \ No newline at end of file diff --git a/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/packet_writer.kt b/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/packet_writer.kt deleted file mode 100644 index b067524..0000000 --- a/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/packet_writer.kt +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/5 - */ - - -package cn.rtast.libmc.mcping - -import cn.rtast.libmc.stream.BytesBuffer -import cn.rtast.libmc.primitives.VarIntCodec -import cn.rtast.libmc.stream.WriteChannel -import cn.rtast.libmc.packet.MinecraftPacket -import cn.rtast.libmc.packet.PacketCodec -import cn.rtast.libmc.packet.writeBuffer - -public suspend fun WriteChannel.sendPacket(packet: T, packetId: Int, codec: PacketCodec) { - val bodyBuffer = BytesBuffer() - VarIntCodec.encode(bodyBuffer, packetId) - codec.encode(bodyBuffer, packet) - val frameBuffer = BytesBuffer() - VarIntCodec.encode(bodyBuffer, bodyBuffer.size) - frameBuffer.writeBuffer(bodyBuffer) - val bytes = frameBuffer.toByteArray() - this.writeFully(bytes, 0, bytes.size) - this.flush() -} \ No newline at end of file diff --git a/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/ping_response.kt b/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/ping_response.kt deleted file mode 100644 index 30aea83..0000000 --- a/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/ping_response.kt +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/3 - */ - - -package cn.rtast.libmc.mcping - -import cn.rtast.libmc.mcping.bedrock.BedrockPingResponse -import cn.rtast.libmc.mcping.bedrock.parseBedrockPingResponse - -public data class PingResponse( - /** - * raw response content - */ - public val content: String, - /** - * latency ms - */ - public val latency: Int, -) { - public fun toBedrockResponse(): BedrockPingResponse = parseBedrockPingResponse() -} \ No newline at end of file diff --git a/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/server_type.kt b/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/server_type.kt deleted file mode 100644 index 50f66ab..0000000 --- a/libmc-mcping/src/commonMain/kotlin/cn/rtast/libmc/mcping/server_type.kt +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/3 - */ - - -package cn.rtast.libmc.mcping - -public enum class ServerType { - Java, Bedrock -} \ No newline at end of file diff --git a/libmc-mcping/src/commonTest/kotlin/test/TestPing.kt b/libmc-mcping/src/commonTest/kotlin/test/TestPing.kt deleted file mode 100644 index d3ee447..0000000 --- a/libmc-mcping/src/commonTest/kotlin/test/TestPing.kt +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/3 - */ - - -package test - -import cn.rtast.libmc.mcping.ServerType -import cn.rtast.libmc.mcping.mcping -import kotlinx.coroutines.test.runTest -import kotlin.test.Test - -class TestPing { - - @Test - fun `test ping java server`() = runTest { - val response = mcping("org.mc-complex.com", 25565) - println(response) - } - - @Test - fun `test ping bedrock server`() = runTest { - val response = mcping("play.wildnetwork.net", 19132, ServerType.Bedrock) - println(response) - println(response.toBedrockResponse()) - } -} \ No newline at end of file diff --git a/libmc-mcping/src/generated/bedrock-pinng-raw-response.txt b/libmc-mcping/src/generated/bedrock-pinng-raw-response.txt deleted file mode 100644 index eb0e1e4..0000000 --- a/libmc-mcping/src/generated/bedrock-pinng-raw-response.txt +++ /dev/null @@ -1 +0,0 @@ -MCPE;" &e&lWILD&f&lNETWORK &6&lS24 &8-&e discord.gg/WildPrison\n&a Release: &f531d 18h 19m 18s ago";2169;26.45;393;1500;11173189777763089377;Another Geyser server.;Survival;1;19132;0; \ No newline at end of file diff --git a/libmc-mcping/src/generated/java-ping-response.json b/libmc-mcping/src/generated/java-ping-response.json deleted file mode 100644 index b82f495..0000000 --- a/libmc-mcping/src/generated/java-ping-response.json +++ /dev/null @@ -1,321 +0,0 @@ -{ - "version": { - "protocol": 776, - "name": "Velocity 1.7.2-26.2" - }, - "players": { - "online": 5901, - "max": 5951, - "sample": [] - }, - "description": { - "extra": [ - { - "extra": [ - { - "color": "white", - "text": "sᴍᴘ" - }, - " ", - { - "extra": [ - { - "extra": [ - { - "color": "#CFDFE3", - "text": "◁" - }, - { - "color": "#AFD1D9", - "text": "═" - }, - { - "color": "#8EC3CF", - "text": "═" - } - ], - "text": "" - } - ], - "text": "" - }, - { - "color": "dark_gray", - "text": "[‐" - }, - " ", - { - "extra": [ - { - "bold": true, - "extra": [ - { - "color": "#8EC3CF", - "text": "C" - }, - { - "color": "#97C7D2", - "text": "O" - }, - { - "color": "#A1CBD5", - "text": "M" - }, - { - "color": "#AACFD8", - "text": "P" - }, - { - "color": "#B3D3DA", - "text": "L" - }, - { - "color": "#BCD7DD", - "text": "E" - }, - { - "color": "#C6DBE0", - "text": "X" - }, - { - "color": "#CFDFE3", - "text": " " - }, - { - "color": "#C6DBE0", - "text": " " - }, - { - "color": "#BCD7DD", - "text": "G" - }, - { - "color": "#B3D3DA", - "text": "A" - }, - { - "color": "#AACFD8", - "text": "M" - }, - { - "color": "#A1CBD5", - "text": "I" - }, - { - "color": "#97C7D2", - "text": "N" - }, - { - "color": "#8EC3CF", - "text": "G" - } - ], - "text": "" - } - ], - "text": "" - }, - " ", - { - "color": "dark_gray", - "text": "‐]" - }, - { - "extra": [ - { - "extra": [ - { - "color": "#8EC3CF", - "text": "═" - }, - { - "color": "#AFD1D9", - "text": "═" - }, - { - "color": "#CFDFE3", - "text": "▷" - } - ], - "text": "" - } - ], - "text": "" - }, - " ", - { - "color": "white", - "text": "ғᴀᴄᴛɪᴏɴs" - } - ], - "text": "" - }, - "\n", - { - "extra": [ - { - "color": "white", - "text": "sᴋʏʙʟᴏᴄᴋ" - }, - " ", - { - "color": "#8EC3CF", - "extra": [ - { - "bold": true, - "obfuscated": true, - "extra": [ - { - "color": "#F1AEFF", - "extra": [ - { - "color": "#8EC3CF", - "text": "i" - } - ], - "text": "i" - } - ], - "text": "i" - }, - " ", - { - "extra": [ - { - "extra": [ - { - "color": "#F1AEFF", - "text": "#" - }, - { - "color": "#F2B5FF", - "text": "1" - }, - { - "color": "#F3BCFF", - "text": " " - }, - { - "color": "#F5C3FF", - "text": "1" - }, - { - "color": "#F6CAFF", - "text": "." - }, - { - "color": "#F7D1FF", - "text": "2" - }, - { - "color": "#F8D8FF", - "text": "1" - }, - { - "color": "#F9DFFF", - "text": " " - }, - { - "color": "#FAE6FF", - "text": "ᴠ" - }, - { - "color": "#FCEDFF", - "text": "ᴀ" - }, - { - "color": "#FDF4FF", - "text": "ɴ" - }, - { - "color": "#FEFBFF", - "text": "ɪ" - }, - { - "color": "#FDF4FF", - "text": "ʟ" - }, - { - "color": "#FCEDFF", - "text": "ʟ" - }, - { - "color": "#FAE6FF", - "text": "ᴀ" - }, - { - "color": "#F9DFFF", - "text": " " - }, - { - "color": "#F8D8FF", - "text": "ɴ" - }, - { - "color": "#F7D1FF", - "text": "ᴇ" - }, - { - "color": "#F6CAFF", - "text": "ᴛ" - }, - { - "color": "#F5C3FF", - "text": "ᴡ" - }, - { - "color": "#F3BCFF", - "text": "ᴏ" - }, - { - "color": "#F2B5FF", - "text": "ʀ" - }, - { - "color": "#F1AEFF", - "text": "ᴋ" - } - ], - "text": "" - } - ], - "text": "" - }, - { - "extra": [ - { - "bold": true, - "obfuscated": true, - "extra": [ - { - "color": "#F1AEFF", - "extra": [ - { - "color": "#8EC3CF", - "text": "i" - } - ], - "text": "i" - } - ], - "text": "i" - }, - " ", - { - "color": "white", - "text": "ʟɪғᴇsᴛᴇᴀʟ" - } - ], - "text": " " - } - ], - "text": "" - } - ], - "text": "" - } - ], - "text": "" - }, - "favicon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAASrElEQVR4Xu1aB1SUx/YfpAqIolSlFxWQVVg6S1mQsvTeQUBYRBClqIiAiKAogqhYYsmzBGLvJSZqVBKNGjUau8FuTNQIlphn2/tmvmVh9/vQlwDm/PP+/s75nT3n25k7996ZuTNzZxD6iI/4iI/4Z6AXpq6CsgLHwGlgNCvcKMcu3aycO3lEjRlPdzySQY74fzl6pf8FSHnFuW1Kmhr5R/03M+Hz1gWw7FE5zL49HiqaszDHwvSrYyB7fyTwKuyfO49j7TcP0KuUV5L2wnUV6MI+FD6Y59UN+nvXNE+Gta01UH18CkzfnQc1B6fBqnPzYdPTJbD00TSo/aWAYtG5FMjYH0QxZRsPOBOH/dskUPuw8iB5Pl1uj0Cxryxbz1lzm2WC/sPevZEO/f+eACdzxL9mXB1L9Tgxsqrtd+GDIljTOhc2/74UVj6uhJqf84G/NQQC5zp1sMYJnCebgXmczlm63O5C2jbR7BP/SidB5BIPiGpwAzXLPjPphXoC+jba50Oq3KjhTpxQcCKuvcdFTiEsOZsOiRu820dA2r4ASNnFA//FtjAkVHsdXW530MvYyqAh77M0yNubBMFzXcGBqw8cc83T+D8peuFuQgNLXOjipCfIORgFwVPtYfSqYMoZ1fdyIX17MEw6lQg19/Mh+8vIduP5XwVCQJ0duJUMA5sMI9B3VyuiC+4O1OuPzYQ51/Mgtn4kRHDNoCqdC3wfM9BSVfSjF+4m1HrLSQeVJTmDm7M+FISzISGeDUFFThBRy4WEcXiYF9jAtEvpEL/KB4KW2QO3ggWOKabAjTECKzdtgY2p2k+9NWXs6IK7BeNhA3/08xwC0xI5UJflCxPC7WCMrzkMHti3x6eBvbkef2l+MKwsjIAVk8Ph0ymRsLwwCurzwqBuQijw0zgQnsyGED8LsIzVg0DuYEjkmkJBhC2lk62JeiNdZk9APzeWe3/jzFRKoRQfFtiaqpMpoEwv2F2EurNmkHZ2zcuGbdVjYH1FMoMNZYmwMDcEqrMDoTrDE2Yku0BFiivwvYeCkaZyIV1mj2Ckg2XRmukpMMpnxFNrU62V+JMmvUxPIDeJt+rH7XVwvLECNlWlMYwXccmkKFiQ4wez8XQkLIl3hBTPwSAtjbzpMnsKSpiemH2lpaVD7Dmu8yITkzeERMU2GBgZleLv1rTyfxZ9ZeXl09kunpv9ouKbfUMjXjtyOAI1DXWBvrW9wNaVI/D3sBGkBjpAaaoPZXh9QQTUZvHajSfMCcGxwk4f0AfqGAIpbR2d0QVllfeOXb4B9/6Adt5+/gY27D0AgeFR3+Ny6Zjy9MqdQFbfyKRwyszqlqM/3YM7LwQSMi/eb4GKBUtBi5cEaHQtoJRqQGETAXkmg9IIV0FWMLvd+NIkF/DctR9is8Y+Rj2/MlFQ9g0M2frdpevtCt549hYutbyCC49fwuXWV/DT0zdwF3+vW7EaFPsOuI3kFKbgen3pgtqgGRoT9+2Zm/cljO6MVx48hZhxkwFFFwPKXNxOOU44pPoOpxzglxIJqpeeQEHrS8iZNr2K3lh3oRSVkNzU/PgFXGl9DU13n8HOa49h46WHDO5uboFTD/6AzfubQMk9SoBYHi1Ivnelr52l+K5RKz17/JXbz14LR8/vAvjxt5eU3H3XW2HfDSG/uN4Ch+88pRx8F4+OqXMXglTkFAknyLpGCTICrGBUlDv0XrQZClvfwISHzyAlNz9HrL1uQQr3/KbLD59TytANfhe3X/0NFq7bAb3CCgAlzQQ5M8ffPEcYBGN5CtGJKSfIlGl+9oYyesvlR4z6dBKHn3v0byiYOQ9QYqWEE5RsvQQZvGEQyx0Co+cvfez/XADJP9197Rse7qmgoKCH25SlG/WnYWhikrn/7DXYhg2iK/XfuOXKI0guwsqmYaXHLAIlc9ufPd2dt5K5fezn54C9yqjz33gEd4JvBo4D/AVCjqoCFDsNtEyHvHQx1/pcXUXexLaqrtH4wQvIO3Oxlefvv8vX13cz6qITtKcvWPbkz/TQu7jl/M+gG5Yp7C3/LFizdTccuPWEUe6vMGv2EkCOoYDcEwAFTQCUPBuQXaAA66svUlwmKWuy+t7Tb8dNKoS0tDSBsrKys5hdfw52rp6LN1/6laHAX2HDmdsw2D8eEG8MuCRlw/6b3TO+4Yc7oBaYLjEFyOhC6npk9WmP/g4ODlFBEZEXCwoKwJdjdQt/Uuyw7M9Ba0LNsj/oCvxV+mZNBZReR/XUzMbdjP/pXH/+F1h1/CdYf6FzxycUVQmXQ3EHBGSTtd9HXHlDQ0OX8PDwV2w2+1iaN+tuYYzLES1lZXXxMu+F/hCLqZ+fu8dQQMR/fXcNfPgFoO8VBbbRfCheuYlRJm/hmvalyyA4jfG/OD85dA7co5Kht6kVIMMRoDyEDT6JGbDy6OX2Mp8evQKKNt7UPgCF5FNzH8WUADK2PknXn0BbW5tkiFTZhv3t+Dz2fT7P+hC9zDsRM77oEl1JEdeeugn6Hm1zkJsopI0/eMWnC9bhHiRl5u36FhQDxgh7CI+ApKmzGXJEnLP5IKhY2ANyjemQN3wkIIU+GwcZmW6r3fkNVc4/cxJuM76jTFu7WN0Auv50OA1V9+aY65nTv78LZuVrdzAUFZE3tlDSeBKAVNTn4npGEZn5J9d8fwMGcrBiwbnYAXh+eo2G+i9PMuQQrvj2EqiynCSNGj5SgGRk8tp0kdYxHry5asOXIGPtLWzXNgDQUEdAuhb3UT/tpaind35qg/Ry1v14n6Es4fKmCyBrwwPkgben3mnCHulPKSHC0MFufq+QW5zQGDxUNT0iGHJE5MZiGa6xHcY7R+KeV14oJo9ApbeKajPSMr6K5BTJf5FIGPHFDe85J4yMGrWRrqiIiSU4APmNBZQ6Vxh9OREvcBU1Uk9RTY6n56hxspeS3D5kYvtcNEpcYtIZcggXHzgN0ubO1AihljPfDEA6Q2+jzo/YupjBqJ/mFKRrtgiZ2m5EltxDiM27jBxCHuJR+Bw7roReqUtInFR2la6siCZxZFiLRWAWdyuuIqVvr1kWudjzbfAiJzBkqT6RRsgPqen9gJzCIbGwgiGHMDYfB7EwPK/H1Atl4R0jkpEfJ6aKNurVKwdp6B/Bw/4tii+XbJtML3+8Atji6RaKd5wDBi0Xq9tlyGfPXvSariwhWZ56BeZIrr991HJDM3mNNU0lkLwiGJx9jCEzYDg4DdX4ApEcvazCvIn1qxmyCM0i+JIG2Qc/wXWGYhajXtJHkarWG2RqA8jMWchh7jjo+QmoaeIQAngUCINl2/SRUtVcTbOlSzAqW72NoSzhjIZdwl4SKYz35MOchh5edGQWlH4/BkYGW4CJgRpMjXeCUR6DQUZGxh7Lc6ja+BVD1ga8zitw4yQdoG2y2siCVVv5+R6o3noISPSv3dFErSjkd87mA5QO5Wt3gqYNVzJwEqpqb6cb0xU4kAbpChPmzlsJKKNtuBKG5kPp2nwo2zMBPEPNoHz0SJg3LgBSfFngPUKnFQkTKH71X33PkLW86aJw7otkkT09QkmmLPY8etnOaMQNYjpggO4hSVO6hpFLvz7LaJBwzCyx3iIMGAdl6/LfRiTYQEGsC6ybMQqWTQyDyTGO0E9JfnabvIjlR84zZNXtPgpIfDoF5xEH2BsMtZhLL9sZLXhRTAdo6H8rbkhX4b/im4uMBgnHkkOIuAMCx4OGXv+9WWFOgsbpiVSerjjJDQy1+jVgOX3a5EWSpZMuqw6PMgkHkGCGkLn6IN1yetnOaBOaxHSApkGTmB1dhhfZltIbJJxYv0a4rxcpHVlElPbwsBm84OsVRVA0yuuVRj+l8TR5gYv3n2bIWoZHBfIRO9SQTRMeATJycnnv2oOI0ykqlekALeMecYDT/D3HGA0SkiCEYko7lE6eQ5QOwlT0cWI14KBnSxeG4TJny0GGrPUXfgF5j/gOWcIYkIw5Snz//y66xvGZDhg0+Cit7S7BpPyznYwGCVefbAYpv7azvYh9NfLpAmgwKVzSyJBFaBrRdlYQUWfoRlw+eOyKnVDTdA3WX3zAqCMiNyGT6QAdsx6JAYo5c5e+pTcoolZYlqTS5pz1dAFIGP1FW1P51OJZr+hyCMNySzs2QYRusa9w+WTbsGTw4E+CoHHFkF1VD+RsQa/LTezEAbo94wCUXFhxnd6giO5jJTOziBP1EEmmm6TZdg43kQn7V2RisxupaMzxih71O10OYc32w1SWqF1WxkK8FzD9GsswQMK9PsnnJc/CByF63U4doGd+QkyProOXmL6F3qCI1Q3bAcWVdSidWAFIrjc5nFDQMzTOPn39HmSWVglTVbiMnq07Q46IrDCxvQAlrxIvZwYHsChWm0ir4hUbJeqQBGlI+ngBwwG6FuSqrvsYaGiaT4KUeKMkKXruN2F62jqONg3sg8gBRgPTcsln638nafFrT16BLz+f6lUpfHR919JaveVrkPamOYEkO7kJAqRveRw7d1l21aL28l/dbIVbvwsgLiu/MwecodvSVVhWrtsr1ugTuPH8bftFxcFT56GPv9gSRnaHJuwTYydOvfXljVaqzubLj2DnhXtgEIKPu7FlMHbmQobxIiaXVgszPOJOEBEvuylTZ1Hlvrn3HHeAUIfOHWDeY69CpOJyS64QI77/9QXjpoZwV9MJGBycTKWn+njEAn9aNWztJM1Njrx9A/jAinh/Siy5ZA7IuOOzAX9+h/EJM2AgNwwW4a00GVXi7UdkjGfGAB2zU3RDugwji+HFFx91bryIZDrsONMM78sdbsKsbdwOvQyHvzMrJOKCL45DcOZEGB6eCrZRaZCGnbru7F04//glo23vhHSmAzSN99Dt6A40F69ufEFvWMSbeEqIhvu7SG6HLra8gvHT8AkyYjL4pOYwyryPpP7VJ8LrMzpH8CIkjSf3BLI9/DLMyY1bd/Mp0/vkQpQoR1dYnAdvPaGC1fFrd0CJ7UUpKWvBwaOAeTLsjHuaW+D6s464I85bz16D4jDnDuNJMnWADtkDyNBt6C4GVNTWPxBv/MQvL957pUWuw848FM7XQ7daYFhAXEcC1T0erP0i37vDIyRBl1yY0g0XceuBJkBW3kKZbF9AKupk6PejK98jUNfSCv/i2ClB89M3sObMbVh64iasOnMPNnRixN7rLdQVefPT17Dy5A3wyikjWR7JocrmAS+nFGYeuAiLj9+Ahh8ll9vDd561R/p30T8+lUqkyhhbgulI3VZdO/Uk9AEfbiJrO4eqgoavIHfryXYWbD8FpV+cg0psyNwjV+EgXp+J4kfvPoGSvWchtHQBSIt6SZwOoSCj1GdfZMUn7bIm7TgNxbjO3muPGMbSOWfVenIRAnIaGjBudSJkLo+FqDXuoDlcZT9d756E1EAz1ryk+eslnEA4dfcP8O2dVmrINv5wB/K2nQTfvEqQHtGRqxOntgtLEFTL+c1+9AhBxIwl7XI2nb/HMJbOOWu3gLqGhoAfyoG63BAoiHcFM3MNsAjSA30PtWq60j2OPv3VU7hpBS3Z65oopWsPX4Yrra/g/KM/oOrgBUhdug2G+EYLb2s6MV7Owgb8JrpC9DwfcM5kgXP2CIF72gTYePY2w1hxkrcEE8ur3vSSlT0yvygVyAsyknyZxfeCIHsDGG7QfydWT5Wu74eCWj8tnRLniFGnyubM+3d53eK3nqOyX+tZOQp6DRoMyNpXOO85UdjotuCHo/QAazvBoqOz4NMrNVB8jA+htW7UC8/I5e7gGukimLt0BZy/JzkFLv3SQp7bCBw4rvtwu2zN/n2WLSlOhfnj/KjXYSGOJhDrYgyysohNV/LvgjQSPoYiyw+5uCB3b66YYZiZSEZ2o4m72SunFLagYHcKeKSxwTuSBd5B5sALsQBegAWE+A+HjCAbcLYYdF1eTvYIy8q6wc3Le5eVnX2DnJzCJCRMk4tAjthWqsoKhQ5DtL4zUFe6pDtAaQb+1luszP8pDPLk2whCvcwh2NsCJkY7Ql1OIJU8zY1xp4Zx4/QkmMP3gJI4B/LAkdwv/m9hQmLgnsbyJMpo8UeOGSHO1O+yiaHUK6+iaDuw1FfdQa//T4KKmi0nXTE6q8DP3mQs13LQzqHaKp/ynIef3tzJa8+0IEf4HDtm7piRwkeOgSywN1Unx+p/JkysHAItKpdDeDQPnL1cyGNlFfLdjmVatWnWaIYDMsM4sCg3iDK+GA//QFs9MFBXvoE+5IbmA6Ofv73xFa0JVc+dQ+MdRB9VlHqPWzE5Aj6bFt9uPJkOmaGOMGu0O8RwzQVaqorkSou87+3xvfzfDzk5M9oXE3N9tbUOZoOO+tiZ3gpwNn/kY2f80naINrlAIamvdmf9fwJZzkjm+CM+4iM+4m/HfwBvuKeltj0ASAAAAABJRU5ErkJggg\u003d\u003d" -} diff --git a/libmc-mcping/src/jvmTest/java/test/TestPingInJava.java b/libmc-mcping/src/jvmTest/java/test/TestPingInJava.java deleted file mode 100644 index 30e2220..0000000 --- a/libmc-mcping/src/jvmTest/java/test/TestPingInJava.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/3 - */ - - -package test; - -import cn.rtast.libmc.mcping.McPing; -import cn.rtast.libmc.mcping.PingResponse; -import cn.rtast.libmc.mcping.ServerType; -import org.junit.Test; - - -public class TestPingInJava { - - @Test - public void testPingJava() { - String testJavaHost = "org.mc-complex.com"; - PingResponse resp = McPing.mcping(testJavaHost, 25565); - System.out.println(resp); - } - - @Test - public void testPingBedrock() { - String testBedrockHost = "play.wildnetwork.net"; - PingResponse resp = McPing.mcping(testBedrockHost, 19132, ServerType.Bedrock); - System.out.println(resp.getContent()); - System.out.println(resp.getLatency()); - System.out.println(resp.toBedrockResponse()); - } -} diff --git a/libmc-mcping/src/mingwTest/kotlin/test/TestMingwPing.kt b/libmc-mcping/src/mingwTest/kotlin/test/TestMingwPing.kt deleted file mode 100644 index a27d374..0000000 --- a/libmc-mcping/src/mingwTest/kotlin/test/TestMingwPing.kt +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/3 - */ - - -package test - -import cn.rtast.libmc.common.LibMCContext -import cn.rtast.libmc.mcping.ServerType -import cn.rtast.libmc.mcping.mcping -import io.ktor.network.selector.* -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.IO -import kotlinx.coroutines.test.runTest -import kotlin.test.Test - -class TestMingwPing { - - @Test - fun `test ping java on mingw with selectorManager`() = runTest { - val sm = SelectorManager(Dispatchers.IO) - val response = - mcping(host = "org.mc-complex.com", port = 25565, type = ServerType.Java, context = LibMCContext(sm)) - println(response) - } - - @Test - fun `test ping bedrock on mingw with selectorManager`() = runTest { - val sm = SelectorManager(Dispatchers.IO) - val response = - mcping(host = "play.wildnetwork.net", port = 19132, type = ServerType.Bedrock, context = LibMCContext(sm)) - println(response) - println(response.toBedrockResponse()) - } -} \ No newline at end of file diff --git a/libmc-nbt/src/commonMain/kotlin/cn/rtast/libmc/nbt/BytesBufferNBTInput.kt b/libmc-nbt/src/commonMain/kotlin/cn/rtast/libmc/nbt/BytesBufferNBTInput.kt index a3f5c63..b123c9f 100644 --- a/libmc-nbt/src/commonMain/kotlin/cn/rtast/libmc/nbt/BytesBufferNBTInput.kt +++ b/libmc-nbt/src/commonMain/kotlin/cn/rtast/libmc/nbt/BytesBufferNBTInput.kt @@ -7,12 +7,12 @@ package cn.rtast.libmc.nbt -import cn.rtast.libmc.stream.ByteOrder -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.ByteOrder +import cn.rtast.libmc.network.BytesBuffer public class BytesBufferNBTInput(override val order: ByteOrder, private val buffer: BytesBuffer) : NBTInput { - override suspend fun readByte(): Byte = buffer.readByte() - override suspend fun readBytes(count: Int): ByteArray = buffer.readBytes(count) + override fun readByte(): Byte = buffer.readByte() + override fun readBytes(count: Int): ByteArray = buffer.readBytes(count) } public fun BytesBuffer.toNBTInput(order: ByteOrder = ByteOrder.BIG_ENDIAN): BytesBufferNBTInput = diff --git a/libmc-nbt/src/commonMain/kotlin/cn/rtast/libmc/nbt/BytesBufferNBTOutput.kt b/libmc-nbt/src/commonMain/kotlin/cn/rtast/libmc/nbt/BytesBufferNBTOutput.kt index 5a6caf2..a0c087d 100644 --- a/libmc-nbt/src/commonMain/kotlin/cn/rtast/libmc/nbt/BytesBufferNBTOutput.kt +++ b/libmc-nbt/src/commonMain/kotlin/cn/rtast/libmc/nbt/BytesBufferNBTOutput.kt @@ -7,8 +7,8 @@ package cn.rtast.libmc.nbt -import cn.rtast.libmc.stream.ByteOrder -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.ByteOrder +import cn.rtast.libmc.network.BytesBuffer public class BytesBufferNBTOutput( @@ -16,9 +16,9 @@ public class BytesBufferNBTOutput( override val root: NBTTag.CompoundTag, private val buffer: BytesBuffer, ) : NBTOutput { - override suspend fun writeByte(value: Byte): Unit = buffer.writeByte(value) - override suspend fun writeBytes(value: ByteArray): Unit = buffer.writeBytes(value) - override suspend fun toByteArray(): ByteArray = buffer.toByteArray() + override fun writeByte(value: Byte): Unit = buffer.writeByte(value) + override fun writeBytes(value: ByteArray): Unit = buffer.writeBytes(value) + override fun toByteArray(): ByteArray = buffer.toByteArray() } public fun BytesBuffer.toNBTOutput( diff --git a/libmc-nbt/src/commonMain/kotlin/cn/rtast/libmc/nbt/NBTInput.kt b/libmc-nbt/src/commonMain/kotlin/cn/rtast/libmc/nbt/NBTInput.kt index 2aa6b87..805e39e 100644 --- a/libmc-nbt/src/commonMain/kotlin/cn/rtast/libmc/nbt/NBTInput.kt +++ b/libmc-nbt/src/commonMain/kotlin/cn/rtast/libmc/nbt/NBTInput.kt @@ -7,33 +7,33 @@ package cn.rtast.libmc.nbt -import cn.rtast.libmc.stream.ByteOrder +import cn.rtast.libmc.network.ByteOrder public interface NBTInput { public val order: ByteOrder - public suspend fun readByte(): Byte - public suspend fun readBytes(count: Int): ByteArray + public fun readByte(): Byte + public fun readBytes(count: Int): ByteArray - public suspend fun readLong(): Long = if (order == ByteOrder.BIG_ENDIAN) readLongBE() else readLongLE() - public suspend fun readFloat(): Float = if (order == ByteOrder.BIG_ENDIAN) readFloatBE() else readFloatLE() - public suspend fun readDouble(): Double = if (order == ByteOrder.BIG_ENDIAN) readDoubleBE() else readDoubleLE() - public suspend fun readShort(): Short = if (order == ByteOrder.BIG_ENDIAN) readShortBE() else readShortLE() - public suspend fun readInt(): Int = if (order == ByteOrder.BIG_ENDIAN) readIntBE() else readIntLE() + public fun readLong(): Long = if (order == ByteOrder.BIG_ENDIAN) readLongBE() else readLongLE() + public fun readFloat(): Float = if (order == ByteOrder.BIG_ENDIAN) readFloatBE() else readFloatLE() + public fun readDouble(): Double = if (order == ByteOrder.BIG_ENDIAN) readDoubleBE() else readDoubleLE() + public fun readShort(): Short = if (order == ByteOrder.BIG_ENDIAN) readShortBE() else readShortLE() + public fun readInt(): Int = if (order == ByteOrder.BIG_ENDIAN) readIntBE() else readIntLE() // big endian - public suspend fun readLongBE(): Long = + public fun readLongBE(): Long = (readIntBE().toLong() shl 32) or (readIntBE().toLong() and 0xFFFFFFFFL) - public suspend fun readFloatBE(): Float = Float.fromBits(readIntBE()) - public suspend fun readDoubleBE(): Double = Double.fromBits(readLongBE()) - public suspend fun readShortBE(): Short { + public fun readFloatBE(): Float = Float.fromBits(readIntBE()) + public fun readDoubleBE(): Double = Double.fromBits(readLongBE()) + public fun readShortBE(): Short { val b1 = readByte().toInt() and 0xFF val b2 = readByte().toInt() and 0xFF return ((b1 shl 8) or b2).toShort() } - public suspend fun readIntBE(): Int { + public fun readIntBE(): Int { return ((readByte().toInt() and 0xFF) shl 24) or ((readByte().toInt() and 0xFF) shl 16) or ((readByte().toInt() and 0xFF) shl 8) or @@ -41,7 +41,7 @@ public interface NBTInput { } // little endian - public suspend fun readLongLE(): Long { + public fun readLongLE(): Long { return ((readByte().toInt() and 0xFF).toLong() shl 0) or ((readByte().toInt() and 0xFF).toLong() shl 8) or ((readByte().toInt() and 0xFF).toLong() shl 16) or @@ -52,14 +52,14 @@ public interface NBTInput { (readByte().toInt() and 0xFF).toLong() } - public suspend fun readFloatLE(): Float = Float.fromBits(readIntLE()) + public fun readFloatLE(): Float = Float.fromBits(readIntLE()) - public suspend fun readDoubleLE(): Double = Double.fromBits(readLongLE()) + public fun readDoubleLE(): Double = Double.fromBits(readLongLE()) - public suspend fun readShortLE(): Short = + public fun readShortLE(): Short = ((readByte().toInt() and 0xFF) or (readByte().toInt() and 0xFF shl 8)).toShort() - public suspend fun readIntLE(): Int = + public fun readIntLE(): Int = ((readByte().toInt() and 0xFF)) or ((readByte().toInt() and 0xFF) shl 8) or ((readByte().toInt() and 0xFF) shl 16) or diff --git a/libmc-nbt/src/commonMain/kotlin/cn/rtast/libmc/nbt/NBTOutput.kt b/libmc-nbt/src/commonMain/kotlin/cn/rtast/libmc/nbt/NBTOutput.kt index c3b0153..2fac789 100644 --- a/libmc-nbt/src/commonMain/kotlin/cn/rtast/libmc/nbt/NBTOutput.kt +++ b/libmc-nbt/src/commonMain/kotlin/cn/rtast/libmc/nbt/NBTOutput.kt @@ -7,44 +7,44 @@ package cn.rtast.libmc.nbt -import cn.rtast.libmc.stream.ByteOrder +import cn.rtast.libmc.network.ByteOrder public interface NBTOutput { public val order: ByteOrder public val root: NBTTag.CompoundTag - public suspend fun writeByte(value: Byte) - public suspend fun writeBytes(value: ByteArray) + public fun writeByte(value: Byte) + public fun writeBytes(value: ByteArray) - public suspend fun writeShort(value: Short): Unit = + public fun writeShort(value: Short): Unit = if (order == ByteOrder.BIG_ENDIAN) writeShortBE(value) else writeShortLE(value) - public suspend fun writeInt(value: Int): Unit = + public fun writeInt(value: Int): Unit = if (order == ByteOrder.BIG_ENDIAN) writeIntBE(value) else writeIntLE(value) - public suspend fun writeLong(value: Long): Unit = + public fun writeLong(value: Long): Unit = if (order == ByteOrder.BIG_ENDIAN) writeLongBE(value) else writeLongLE(value) - public suspend fun writeFloat(value: Float): Unit = + public fun writeFloat(value: Float): Unit = if (order == ByteOrder.BIG_ENDIAN) writeFloatBE(value) else writeFloatLE(value) - public suspend fun writeDouble(value: Double): Unit = + public fun writeDouble(value: Double): Unit = if (order == ByteOrder.BIG_ENDIAN) writeDoubleBE(value) else writeDoubleLE(value) // big endian - public suspend fun writeShortBE(value: Short) { + public fun writeShortBE(value: Short) { writeByte(((value.toInt() shr 8) and 0xFF).toByte()) writeByte((value.toInt() and 0xFF).toByte()) } - public suspend fun writeIntBE(value: Int) { + public fun writeIntBE(value: Int) { writeByte(((value shr 24) and 0xFF).toByte()) writeByte(((value shr 16) and 0xFF).toByte()) writeByte(((value shr 8) and 0xFF).toByte()) writeByte((value and 0xFF).toByte()) } - public suspend fun writeLongBE(value: Long) { + public fun writeLongBE(value: Long) { writeByte(((value shr 56).toInt() and 0xFF).toByte()) writeByte(((value shr 48).toInt() and 0xFF).toByte()) writeByte(((value shr 40).toInt() and 0xFF).toByte()) @@ -55,28 +55,28 @@ public interface NBTOutput { writeByte((value.toInt() and 0xFF).toByte()) } - public suspend fun writeFloatBE(value: Float) { + public fun writeFloatBE(value: Float) { writeIntBE(value.toBits()) } - public suspend fun writeDoubleBE(value: Double) { + public fun writeDoubleBE(value: Double) { writeLongBE(value.toBits()) } // Little Endian - public suspend fun writeShortLE(value: Short) { + public fun writeShortLE(value: Short) { writeByte((value.toInt() and 0xFF).toByte()) writeByte(((value.toInt() shr 8) and 0xFF).toByte()) } - public suspend fun writeIntLE(value: Int) { + public fun writeIntLE(value: Int) { writeByte((value and 0xFF).toByte()) writeByte(((value shr 8) and 0xFF).toByte()) writeByte(((value shr 16) and 0xFF).toByte()) writeByte(((value shr 24) and 0xFF).toByte()) } - public suspend fun writeLongLE(value: Long) { + public fun writeLongLE(value: Long) { writeByte(((value and 0xFF).toInt()).toByte()) writeByte((((value shr 8) and 0xFF).toInt()).toByte()) writeByte((((value shr 16) and 0xFF).toInt()).toByte()) @@ -87,7 +87,7 @@ public interface NBTOutput { writeByte((((value shr 56) and 0xFF).toInt()).toByte()) } - public suspend fun writeFloatLE(value: Float): Unit = writeIntLE(value.toBits()) - public suspend fun writeDoubleLE(value: Double): Unit = writeLongLE(value.toBits()) - public suspend fun toByteArray(): ByteArray + public fun writeFloatLE(value: Float): Unit = writeIntLE(value.toBits()) + public fun writeDoubleLE(value: Double): Unit = writeLongLE(value.toBits()) + public fun toByteArray(): ByteArray } \ No newline at end of file diff --git a/libmc-nbt/src/commonMain/kotlin/cn/rtast/libmc/nbt/NBTReader.kt b/libmc-nbt/src/commonMain/kotlin/cn/rtast/libmc/nbt/NBTReader.kt index ef39d33..2208bfe 100644 --- a/libmc-nbt/src/commonMain/kotlin/cn/rtast/libmc/nbt/NBTReader.kt +++ b/libmc-nbt/src/commonMain/kotlin/cn/rtast/libmc/nbt/NBTReader.kt @@ -7,13 +7,13 @@ package cn.rtast.libmc.nbt -public suspend fun NBTInput.readStringTag(): String { +public fun NBTInput.readStringTag(): String { val length = readShort().toInt() and 0xFFFF val bytes = readBytes(length) return bytes.decodeToString() } -public suspend fun NBTInput.readListTag(): NBTTag.ListTag { +public fun NBTInput.readListTag(): NBTTag.ListTag { val elementTypeId = readByte().toInt() and 0xFF val elementType = NBTType.fromID(elementTypeId) val length = readInt() @@ -22,7 +22,7 @@ public suspend fun NBTInput.readListTag(): NBTTag.ListTag { return NBTTag.ListTag(elementType, list) } -public suspend fun NBTInput.readCompoundTag(): NBTTag.CompoundTag { +public fun NBTInput.readCompoundTag(): NBTTag.CompoundTag { val map = LinkedHashMap() while (true) { val typeId = readByte().toInt() and 0xFF @@ -35,7 +35,7 @@ public suspend fun NBTInput.readCompoundTag(): NBTTag.CompoundTag { return NBTTag.CompoundTag(map) } -public suspend fun NBTInput.readTagPayload(type: NBTType): NBTTag = +public fun NBTInput.readTagPayload(type: NBTType): NBTTag = when (type) { NBTType.Byte -> NBTTag.ByteTag(readByte()) NBTType.Short -> NBTTag.ShortTag(readShort()) @@ -52,7 +52,7 @@ public suspend fun NBTInput.readTagPayload(type: NBTType): NBTTag = NBTType.End -> error("TAG_End no payload") } -public suspend fun NBTInput.readCompound(): NBTTag { +public fun NBTInput.readCompound(): NBTTag { val map = LinkedHashMap() while (true) { val typeId = readByte().toInt() @@ -67,7 +67,7 @@ public suspend fun NBTInput.readCompound(): NBTTag { return NBTTag.ListTag(NBTType.Compound, map.values.toMutableList()) } -public suspend fun NBTInput.readRootCompound(): NBTCompound { +public fun NBTInput.readRootCompound(): NBTCompound { val rootType = NBTType.fromID(readByte().toInt()) require(rootType == NBTType.Compound) { "Root tag must be TAG_Compound" } val nameLen = readShort().toInt() and 0xFFFF @@ -76,7 +76,7 @@ public suspend fun NBTInput.readRootCompound(): NBTCompound { return NBTCompound(name, root) } -public suspend fun NBTInput.readNetworkCompound(): NBTCompound { +public fun NBTInput.readNetworkCompound(): NBTCompound { return when (val type = NBTType.fromID(readByte().toInt() and 0xFF)) { NBTType.Compound -> NBTCompound("", readCompoundTag()) NBTType.String -> NBTCompound("", NBTTag.CompoundTag(linkedMapOf("text" to NBTTag.StringTag(readStringTag())))) diff --git a/libmc-nbt/src/commonMain/kotlin/cn/rtast/libmc/nbt/NBTWriter.kt b/libmc-nbt/src/commonMain/kotlin/cn/rtast/libmc/nbt/NBTWriter.kt index 9948047..2cc0dfb 100644 --- a/libmc-nbt/src/commonMain/kotlin/cn/rtast/libmc/nbt/NBTWriter.kt +++ b/libmc-nbt/src/commonMain/kotlin/cn/rtast/libmc/nbt/NBTWriter.kt @@ -8,13 +8,13 @@ package cn.rtast.libmc.nbt -public suspend fun NBTOutput.writeStringTag(value: String) { +public fun NBTOutput.writeStringTag(value: String) { val bytes = value.encodeToByteArray() writeShort(bytes.size.toShort()) writeBytes(bytes) } -public suspend fun NBTOutput.writeTagPayload(tag: NBTTag) { +public fun NBTOutput.writeTagPayload(tag: NBTTag) { when (tag) { is NBTTag.ByteTag -> writeByte(tag.value) is NBTTag.ShortTag -> writeShort(tag.value) @@ -56,14 +56,14 @@ public suspend fun NBTOutput.writeTagPayload(tag: NBTTag) { } } -public suspend fun NBTOutput.writeRootNBTCompound(name: String = ""): ByteArray { +public fun NBTOutput.writeRootNBTCompound(name: String = ""): ByteArray { writeByte(NBTType.Compound.id) writeStringTag(name) writeTagPayload(root) return toByteArray() } -public suspend fun NBTOutput.writeNetworkCompound(compound: NBTCompound) { +public fun NBTOutput.writeNetworkCompound(compound: NBTCompound) { val compoundTag = compound.element as? NBTTag.CompoundTag ?: throw IllegalArgumentException("NBTCompound element must be an NBTTag.CompoundTag") writeByte(NBTType.Compound.id) diff --git a/libmc-nbt/src/jvmTest/kotlin/test/TestNBTReader.kt b/libmc-nbt/src/jvmTest/kotlin/test/TestNBTReader.kt index ca9f914..eb4b0ba 100644 --- a/libmc-nbt/src/jvmTest/kotlin/test/TestNBTReader.kt +++ b/libmc-nbt/src/jvmTest/kotlin/test/TestNBTReader.kt @@ -7,7 +7,7 @@ package test -import cn.rtast.libmc.stream.wrap +import cn.rtast.libmc.network.wrap import cn.rtast.libmc.nbt.NbtReader import org.junit.Test import java.io.File diff --git a/libmc-protocol-encrypt/README.md b/libmc-protocol-context/README.md similarity index 100% rename from libmc-protocol-encrypt/README.md rename to libmc-protocol-context/README.md diff --git a/libmc-protocol-encrypt/build.gradle.kts b/libmc-protocol-context/build.gradle.kts similarity index 95% rename from libmc-protocol-encrypt/build.gradle.kts rename to libmc-protocol-context/build.gradle.kts index 75917fd..d68de22 100644 --- a/libmc-protocol-encrypt/build.gradle.kts +++ b/libmc-protocol-context/build.gradle.kts @@ -16,6 +16,7 @@ kotlin { implementation(libs.cryptography.core) implementation(libs.cryptography.provider.optimal) implementation(libs.ktor.client.core) + implementation(libs.ktor.network) } jvmTest.dependencies { diff --git a/libmc-protocol-encrypt/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/AesCFB8Cipher.kt b/libmc-protocol-context/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/AesCFB8Cipher.kt similarity index 90% rename from libmc-protocol-encrypt/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/AesCFB8Cipher.kt rename to libmc-protocol-context/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/AesCFB8Cipher.kt index ab11bb7..8c99677 100644 --- a/libmc-protocol-encrypt/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/AesCFB8Cipher.kt +++ b/libmc-protocol-context/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/AesCFB8Cipher.kt @@ -22,14 +22,14 @@ public class AesCFB8Cipher(sharedKey: ByteArray) : NetworkCipher { .decodeFromByteArrayBlocking(AES.Key.Format.RAW, sharedKey) .cipher() - override suspend fun encrypt(buffer: ByteArray, offset: Int, length: Int) { + override fun encrypt(buffer: ByteArray, offset: Int, length: Int) { val plaintext = buffer.copyOfRange(offset, offset + length) val ciphertext = cipher.encryptWithIvBlocking(encryptIv, plaintext) ciphertext.copyInto(buffer, destinationOffset = offset) updateIv(encryptIv, ciphertext) } - override suspend fun decrypt(buffer: ByteArray, offset: Int, length: Int) { + override fun decrypt(buffer: ByteArray, offset: Int, length: Int) { val ciphertext = buffer.copyOfRange(offset, offset + length) val plaintext = cipher.decryptWithIvBlocking(decryptIv, ciphertext) plaintext.copyInto(buffer, destinationOffset = offset) diff --git a/libmc-protocol-encrypt/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/DefaultProtocolCryptoContext.kt b/libmc-protocol-context/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/DefaultProtocolCryptoContext.kt similarity index 96% rename from libmc-protocol-encrypt/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/DefaultProtocolCryptoContext.kt rename to libmc-protocol-context/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/DefaultProtocolCryptoContext.kt index a1ffb68..796b285 100644 --- a/libmc-protocol-encrypt/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/DefaultProtocolCryptoContext.kt +++ b/libmc-protocol-context/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/DefaultProtocolCryptoContext.kt @@ -28,4 +28,5 @@ public val DefaultProtocolContext: ProtocolContextBuilder.() -> Unit = { }.status require(status == HttpStatusCode.NoContent) } + socketEngine = KtorNetworkEngine() } \ No newline at end of file diff --git a/libmc-protocol-context/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/KtorNetworkEngine.kt b/libmc-protocol-context/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/KtorNetworkEngine.kt new file mode 100644 index 0000000..a08466e --- /dev/null +++ b/libmc-protocol-context/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/KtorNetworkEngine.kt @@ -0,0 +1,50 @@ +/* + * Copyright © 2026 RTAkland + * Author: RTAkland + * Date: 2026/9/8 + */ + + +package cn.rtast.libmc.protocol.crypto + +import cn.rtast.libmc.network.RawSocket +import cn.rtast.libmc.network.ReadChannel +import cn.rtast.libmc.network.SocketEngine +import cn.rtast.libmc.network.WriteChannel +import io.ktor.network.selector.* +import io.ktor.network.sockets.* +import io.ktor.utils.io.* +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.IO + +public class KtorNetworkEngine : SocketEngine { + override fun create(host: String, port: Int): RawSocket = KtorNetworkSocket(host, port) +} + +public class KtorNetworkSocket(private val host: String, private val port: Int) : RawSocket { + private val sm = SelectorManager(Dispatchers.IO) + private lateinit var socket: Socket + + override suspend fun connect(): Unit = run { socket = aSocket(sm).tcp().connect(host, port) } + override fun openReadChannel(): ReadChannel = KtorReadChannel(socket.openReadChannel()) + override fun openWriteChannel(): WriteChannel = KtorWriteChannel(socket.openWriteChannel()) + override fun close() { + socket.close() + sm.close() + } +} + +public class KtorReadChannel(private val readChannel: ByteReadChannel) : ReadChannel { + override suspend fun readByte(): Byte = readChannel.readByte() + override suspend fun readBytes(length: Int): ByteArray = readChannel.readByteArray(length) + override suspend fun readFully(out: ByteArray, start: Int, end: Int): Unit = + readChannel.readFully(out, start, end) +} + +public class KtorWriteChannel(private val writeChannel: ByteWriteChannel) : WriteChannel { + override suspend fun writeFully(value: ByteArray, startIndex: Int, endIndex: Int) { + writeChannel.writeFully(value, startIndex, endIndex) + } + + override suspend fun flush(): Unit = writeChannel.flush() +} \ No newline at end of file diff --git a/libmc-protocol-encrypt/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/RSAEncryotor.kt b/libmc-protocol-context/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/RSAEncryotor.kt similarity index 66% rename from libmc-protocol-encrypt/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/RSAEncryotor.kt rename to libmc-protocol-context/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/RSAEncryotor.kt index 563230d..b2cb2c0 100644 --- a/libmc-protocol-encrypt/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/RSAEncryotor.kt +++ b/libmc-protocol-context/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/RSAEncryotor.kt @@ -16,9 +16,10 @@ import dev.whyoleg.cryptography.algorithms.SHA1 internal val provider = CryptographyProvider.Default -public suspend fun rsaEncrypt(publicKeyBytes: ByteArray, data: ByteArray): ByteArray { +public fun rsaEncrypt(publicKeyBytes: ByteArray, data: ByteArray): ByteArray { val provider = CryptographyProvider.Default val rsa = provider.get(RSA.PKCS1) - val publicKey = rsa.publicKeyDecoder(SHA1).decodeFromByteArray(RSA.PublicKey.Format.DER, publicKeyBytes) - return publicKey.encryptor().encrypt(data) + val publicKey = rsa.publicKeyDecoder(SHA1) + .decodeFromByteArrayBlocking(RSA.PublicKey.Format.DER, publicKeyBytes) + return publicKey.encryptor().encryptBlocking(data) } \ No newline at end of file diff --git a/libmc-protocol-encrypt/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/Sha1Hasher.kt b/libmc-protocol-context/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/Sha1Hasher.kt similarity index 88% rename from libmc-protocol-encrypt/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/Sha1Hasher.kt rename to libmc-protocol-context/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/Sha1Hasher.kt index c30d628..88e1c46 100644 --- a/libmc-protocol-encrypt/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/Sha1Hasher.kt +++ b/libmc-protocol-context/src/commonMain/kotlin/cn/rtast/libmc/protocol/crypto/Sha1Hasher.kt @@ -12,11 +12,11 @@ package cn.rtast.libmc.protocol.crypto import dev.whyoleg.cryptography.DelicateCryptographyApi import dev.whyoleg.cryptography.algorithms.SHA1 -public suspend fun minecraftServerIdHash(serverId: String, secretKey: ByteArray, publicKey: ByteArray): String { +public fun minecraftServerIdHash(serverId: String, secretKey: ByteArray, publicKey: ByteArray): String { val serverIdBytes = serverId.encodeToByteArray() for (b in serverIdBytes) require((b.toInt() and 0xFF) <= 0x7F) { "serverId contains non-US-ASCII character" } val data = serverIdBytes + secretKey + publicKey - val hash = provider.get(SHA1).hasher().hash(data) + val hash = provider.get(SHA1).hasher().hashBlocking(data) return mcDigestToString(hash) } diff --git a/libmc-protocol-encrypt/src/jvmTest/kotlin/test/TestJvmClient.kt b/libmc-protocol-context/src/jvmTest/kotlin/test/TestJvmClient.kt similarity index 95% rename from libmc-protocol-encrypt/src/jvmTest/kotlin/test/TestJvmClient.kt rename to libmc-protocol-context/src/jvmTest/kotlin/test/TestJvmClient.kt index 5ef1b92..4a67b41 100644 --- a/libmc-protocol-encrypt/src/jvmTest/kotlin/test/TestJvmClient.kt +++ b/libmc-protocol-context/src/jvmTest/kotlin/test/TestJvmClient.kt @@ -29,7 +29,7 @@ class TestJvmClient { Uuid.parse("bb033844-e68e-4909-a636-1a5d1821ddc4"), // null, accessToken, - crypto = DefaultProtocolContext + contextBuilder = DefaultProtocolContext ) // cli.on { println(it) } // cli.on { println(it) } diff --git a/libmc-protocol/build.gradle.kts b/libmc-protocol/build.gradle.kts index e7b43ec..8ab3e52 100644 --- a/libmc-protocol/build.gradle.kts +++ b/libmc-protocol/build.gradle.kts @@ -22,7 +22,7 @@ kotlin { commonTest.dependencies { implementation(kotlin("test")) - implementation(project(":protocol-encrypt")) + implementation(project(":protocol-context")) implementation(libs.kotlinx.coroutines.test) } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/client/MinecraftClient.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/client/MinecraftClient.kt index 470f970..702c646 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/client/MinecraftClient.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/client/MinecraftClient.kt @@ -6,7 +6,6 @@ package cn.rtast.libmc.protocol.client -import cn.rtast.libmc.LibMCContext import cn.rtast.libmc.crypto.ProtocolContext import cn.rtast.libmc.crypto.ProtocolContextBuilder import cn.rtast.libmc.protocol.event.InternalPacketDispatcher @@ -24,22 +23,23 @@ import kotlin.uuid.Uuid public class MinecraftClient internal constructor( private val host: String, - private val port: Int = 25565, + private val port: Int, private val username: String, internal val uuid: Uuid, internal val accessToken: String?, - context: LibMCContext, parentJob: Job?, private val ioDispatcher: CoroutineDispatcher, - cryptoContext: ProtocolContext, + protocolContext: ProtocolContext, ) : PacketEventDispatcher(), CoroutineScope { - internal val rsa1024Encryptor = cryptoContext.rsaEncryptor - internal val serverIdHasher = cryptoContext.sha1Hasher - internal val authProvider = cryptoContext.authProvider + internal val rsa1024Encryptor = protocolContext.rsaEncryptor + internal val serverIdHasher = protocolContext.sha1Hasher + internal val authProvider = protocolContext.authProvider internal val stateMachine = ClientStateMachine() public val networkChannel: NetworkChannel = NetworkChannel( - host, port, context, stateMachine, cryptoContext.cipherFactory, this + host, port, stateMachine, + protocolContext.cipherFactory, + this, protocolContext ) private val internalPacketDispatcher = InternalPacketDispatcher(this, authProvider) @@ -95,21 +95,19 @@ public fun createMinecraftClient( username: String, uuid: Uuid = generateOfflineUuid(username), accessToken: String?, - context: LibMCContext = LibMCContext(), parentJob: Job? = null, ioDispatcher: CoroutineDispatcher = Dispatchers.IO, - crypto: ProtocolContextBuilder.() -> Unit, + contextBuilder: ProtocolContextBuilder.() -> Unit, ): MinecraftClient { - val cryptoContext = ProtocolContextBuilder(accessToken != null).apply(crypto).build() + val context = ProtocolContextBuilder(accessToken != null).apply(contextBuilder).build() return MinecraftClient( host = host, port = port, username = username, uuid = uuid, accessToken = accessToken, - context = context, parentJob = parentJob, ioDispatcher = ioDispatcher, - cryptoContext = cryptoContext + protocolContext = context ) } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/network/CipherChannel.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/network/CipherChannel.kt index 75a6c9b..0781619 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/network/CipherChannel.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/network/CipherChannel.kt @@ -8,8 +8,8 @@ package cn.rtast.libmc.protocol.network import cn.rtast.libmc.crypto.NetworkCipher -import cn.rtast.libmc.stream.ReadChannel -import cn.rtast.libmc.stream.WriteChannel +import cn.rtast.libmc.network.ReadChannel +import cn.rtast.libmc.network.WriteChannel /** * AES-128-CFB8 ***ciphered*** read channel @@ -17,7 +17,7 @@ import cn.rtast.libmc.stream.WriteChannel internal class CipherReadChannel( private val delegate: ReadChannel, private val crypto: NetworkCipher, -) : ReadChannel() { +) : ReadChannel { override suspend fun readFully(out: ByteArray, start: Int, end: Int) { delegate.readFully(out, start, end) val length = end - start @@ -43,7 +43,7 @@ internal class CipherReadChannel( internal class CipherWriteChannel( private val delegate: WriteChannel, private val crypto: NetworkCipher, -) : WriteChannel() { +) : WriteChannel { override suspend fun writeFully(value: ByteArray, startIndex: Int, endIndex: Int) { val length = endIndex - startIndex if (length <= 0) return @@ -52,7 +52,5 @@ internal class CipherWriteChannel( delegate.writeFully(encrypted, 0, length) } - override suspend fun flush() { - delegate.flush() - } + override suspend fun flush() = delegate.flush() } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/network/NetworkChannel.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/network/NetworkChannel.kt index fd406e6..a0d53da 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/network/NetworkChannel.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/network/NetworkChannel.kt @@ -6,17 +6,18 @@ package cn.rtast.libmc.protocol.network -import cn.rtast.libmc.LibMCContext import cn.rtast.libmc.crypto.NetworkCipher +import cn.rtast.libmc.crypto.ProtocolContext +import cn.rtast.libmc.network.BytesBuffer +import cn.rtast.libmc.network.wrap import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.writeBuffer import cn.rtast.libmc.primitives.readVarInt import cn.rtast.libmc.primitives.writeVarInt import cn.rtast.libmc.protocol.client.ClientStateMachine import cn.rtast.libmc.protocol.event.PacketEventDispatcher -import cn.rtast.libmc.protocol.protocol.GamePacketsProtocolCodec -import cn.rtast.libmc.stream.BytesBuffer -import cn.rtast.libmc.stream.wrap +import cn.rtast.libmc.protocol.protocol.GamePacketsProtocolCodec.clientboundGameProtocols +import cn.rtast.libmc.protocol.protocol.GamePacketsProtocolCodec.serverboundGameProtocols import cn.rtast.libmc.zlibCompress import cn.rtast.libmc.zlibDecompress import kotlin.concurrent.Volatile @@ -24,17 +25,17 @@ import kotlin.concurrent.Volatile public class NetworkChannel internal constructor( host: String, port: Int, - context: LibMCContext, private val stateMachine: ClientStateMachine, cipherProvider: (ByteArray) -> NetworkCipher, private val dispatcher: PacketEventDispatcher, + protocolContext: ProtocolContext, ) { - internal val session: NetworkSession = NetworkSession(host, port, context, cipherProvider) + internal val session: NetworkSession = NetworkSession(host, port, cipherProvider, protocolContext) @Volatile private var threshold = -1 - public fun connect(): Unit = session.connect() + public suspend fun connect(): Unit = session.connect() public fun setCompression(threshold: Int): Unit = run { this.threshold = threshold } /** @@ -44,18 +45,17 @@ public class NetworkChannel internal constructor( */ public suspend fun readNextPacket(): MinecraftPacket { val packetLength = session.readVarInt() - val rawFrameBytes = session.readBytes(packetLength) - val frameBuf = rawFrameBytes.wrap() + val frameBuf = session.readBytes(packetLength).wrap() val payloadBuf = if (threshold < 0) frameBuf else { val dataLength = frameBuf.readVarInt() - val remainingBytes = frameBuf.readBytes(frameBuf.remaining.toInt()) - if (dataLength == 0) remainingBytes.wrap() else remainingBytes.zlibDecompress(dataLength).wrap() + if (dataLength == 0) frameBuf else { + val compressedBytes = frameBuf.toByteArray() + compressedBytes.zlibDecompress(dataLength).wrap() + } } val currentState = stateMachine.currentState val packetId = payloadBuf.readVarInt() - val packet = GamePacketsProtocolCodec.clientboundGameProtocols - .getRegistry(currentState) - .decodePacket(packetId, payloadBuf) + val packet = clientboundGameProtocols.getRegistry(currentState).decodePacket(packetId, payloadBuf) dispatcher.dispatchReceive(packet) return packet } @@ -67,9 +67,7 @@ public class NetworkChannel internal constructor( */ public suspend fun sendPacket(packet: MinecraftPacket) { val uncompressedBodyBuf = BytesBuffer() - GamePacketsProtocolCodec.serverboundGameProtocols - .getRegistry(stateMachine.currentState) - .encodePacket(uncompressedBodyBuf, packet) + serverboundGameProtocols.getRegistry(stateMachine.currentState).encodePacket(uncompressedBodyBuf, packet) val uncompressedData = uncompressedBodyBuf.toByteArray() val frameBuffer = BytesBuffer() if (threshold < 0) { diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/network/NetworkSession.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/network/NetworkSession.kt index e182235..790ba2a 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/network/NetworkSession.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/network/NetworkSession.kt @@ -6,19 +6,20 @@ package cn.rtast.libmc.protocol.network -import cn.rtast.libmc.LibMCContext import cn.rtast.libmc.crypto.NetworkCipher -import cn.rtast.libmc.stream.ReadChannel -import cn.rtast.libmc.stream.Socket -import cn.rtast.libmc.stream.WriteChannel +import cn.rtast.libmc.crypto.ProtocolContext +import cn.rtast.libmc.network.RawSocket +import cn.rtast.libmc.network.ReadChannel +import cn.rtast.libmc.network.WriteChannel +import cn.rtast.libmc.primitives.readVarInt public class NetworkSession internal constructor( private val host: String, private val port: Int, - private val context: LibMCContext, private var cipherProvider: (ByteArray) -> NetworkCipher, + private val context: ProtocolContext, ) { - private var socket: Socket? = null + private var socket: RawSocket? = null public var readChannel: ReadChannel? = null private set @@ -26,47 +27,28 @@ public class NetworkSession internal constructor( public var writeChannel: WriteChannel? = null private set - public fun connect() { - val sk = Socket(host, port, context) + public suspend fun connect() { + val sk = context.createSocket(host, port) + sk.connect() this.socket = sk this.readChannel = sk.openReadChannel() this.writeChannel = sk.openWriteChannel() } public fun enableEncryption(sharedKey: ByteArray) { - val currentRead = requireNotNull(readChannel) { "ReadChannel not connected" } - val currentWrite = requireNotNull(writeChannel) { "WriteChannel not connected" } + val currentRead = requireNotNull(readChannel) + val currentWrite = requireNotNull(writeChannel) val cipher = cipherProvider(sharedKey) this.readChannel = CipherReadChannel(currentRead, cipher) this.writeChannel = CipherWriteChannel(currentWrite, cipher) } - internal suspend fun readByte(): Byte { - val channel = requireNotNull(readChannel) { "ReadChannel not connected" } - return channel.readByte() - } + internal suspend fun readBytes(length: Int): ByteArray = requireNotNull(readChannel).readBytes(length) - internal suspend fun readBytes(length: Int): ByteArray { - val channel = requireNotNull(readChannel) { "ReadChannel not connected" } - return channel.readBytes(length) - } - - internal suspend fun readVarInt(): Int { - var numRead = 0 - var result = 0 - var read: Byte - do { - read = readByte() - val value = (read.toInt() and 0x7F) - result = result or (value shl (7 * numRead)) - numRead++ - if (numRead > 5) throw IllegalArgumentException("VarInt is too big") - } while ((read.toInt() and 0x80) != 0) - return result - } + internal suspend fun readVarInt(): Int = requireNotNull(readChannel).readVarInt() internal suspend fun writeFully(data: ByteArray) { - val channel = requireNotNull(writeChannel) { "WriteChannel not connected" } + val channel = requireNotNull(writeChannel) channel.writeFully(data, 0, data.size) channel.flush() } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/KnownPacks.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/KnownPacks.kt index b9efc33..1812d87 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/KnownPacks.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/KnownPacks.kt @@ -10,17 +10,17 @@ package cn.rtast.libmc.protocol.packet.configuration import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readMcString import cn.rtast.libmc.primitives.writeMcString -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public data class KnownPacks(val namespace: String, val id: String, val version: String) { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: KnownPacks) { + override fun encode(buffer: BytesBuffer, value: KnownPacks) { buffer.writeMcString(value.namespace) buffer.writeMcString(value.id) buffer.writeMcString(value.version) } - override suspend fun decode(buffer: BytesBuffer): KnownPacks { + override fun decode(buffer: BytesBuffer): KnownPacks { val namespace = buffer.readMcString() val id = buffer.readMcString() val version = buffer.readMcString() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundAddResourcePackPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundAddResourcePackPacket.kt index 261e6b4..03a9946 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundAddResourcePackPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundAddResourcePackPacket.kt @@ -14,7 +14,7 @@ import cn.rtast.libmc.primitives.readUuid import cn.rtast.libmc.primitives.readVarInt import cn.rtast.libmc.protocol.protocol.game.chat.TextComponent import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import kotlin.uuid.Uuid public data class ClientboundAddResourcePackPacket( @@ -25,8 +25,8 @@ public data class ClientboundAddResourcePackPacket( val prompt: TextComponent, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundAddResourcePackPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundAddResourcePackPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundAddResourcePackPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundAddResourcePackPacket { val uuid = buffer.readUuid() val url = buffer.readMcString() val hash = buffer.readMcString() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundClearDialogPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundClearDialogPacket.kt index 28267b2..df555e4 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundClearDialogPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundClearDialogPacket.kt @@ -7,12 +7,12 @@ package cn.rtast.libmc.protocol.packet.configuration.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec public data object ClientboundClearDialogPacket : MinecraftPacket, PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundClearDialogPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundClearDialogPacket = ClientboundClearDialogPacket + override fun encode(buffer: BytesBuffer, value: ClientboundClearDialogPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundClearDialogPacket = ClientboundClearDialogPacket } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundCodeOfConductPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundCodeOfConductPacket.kt index cc12050..82158e5 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundCodeOfConductPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundCodeOfConductPacket.kt @@ -7,15 +7,15 @@ package cn.rtast.libmc.protocol.packet.configuration.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readMcString public data class ClientboundCodeOfConductPacket(val codeOfConduct: String) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundCodeOfConductPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundCodeOfConductPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundCodeOfConductPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundCodeOfConductPacket { return ClientboundCodeOfConductPacket(buffer.readMcString()) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundConfigurationShowDialogPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundConfigurationShowDialogPacket.kt index 90584c5..f37f28c 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundConfigurationShowDialogPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundConfigurationShowDialogPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.configuration.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.nbt.NBTCompound @@ -15,8 +15,8 @@ import cn.rtast.libmc.protocol.protocol.util.readNetworkNBTCompound public data class ClientboundConfigurationShowDialogPacket(val dialog: NBTCompound) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundConfigurationShowDialogPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundConfigurationShowDialogPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundConfigurationShowDialogPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundConfigurationShowDialogPacket { return ClientboundConfigurationShowDialogPacket(buffer.readNetworkNBTCompound()) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundCookieRequestPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundCookieRequestPacket.kt index d60fa8e..26fdcec 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundCookieRequestPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundCookieRequestPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.configuration.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.protocol.protocol.game.Identifier @@ -15,8 +15,8 @@ import cn.rtast.libmc.protocol.protocol.game.readIdentifier public data class ClientboundCookieRequestPacket(val key: Identifier) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundCookieRequestPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundCookieRequestPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundCookieRequestPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundCookieRequestPacket { return ClientboundCookieRequestPacket(key = buffer.readIdentifier()) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundCustomPayloadPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundCustomPayloadPacket.kt index 42245cd..5d3dc05 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundCustomPayloadPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundCustomPayloadPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.configuration.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.protocol.protocol.game.Identifier @@ -18,10 +18,10 @@ public data class ClientboundCustomPayloadPacket( val data: ByteArray, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundCustomPayloadPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundCustomPayloadPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundCustomPayloadPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundCustomPayloadPacket { val channel = buffer.readIdentifier() - val data = buffer.readRemainingBytes() + val data = buffer.toByteArray() return ClientboundCustomPayloadPacket(channel, data) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundCustomReportDetailsPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundCustomReportDetailsPacket.kt index 9262389..342d570 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundCustomReportDetailsPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundCustomReportDetailsPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.configuration.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readMcString @@ -17,12 +17,12 @@ import cn.rtast.libmc.primitives.writeMcString public data class ClientboundCustomReportDetailsPacket(val details: List) : MinecraftPacket { public data class ReportDetail(val title: String, val description: String) { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ReportDetail) { + override fun encode(buffer: BytesBuffer, value: ReportDetail) { buffer.writeMcString(value.title) buffer.writeMcString(value.description) } - override suspend fun decode(buffer: BytesBuffer): ReportDetail { + override fun decode(buffer: BytesBuffer): ReportDetail { val title = buffer.readMcString() val description = buffer.readMcString() return ReportDetail(title, description) @@ -31,8 +31,8 @@ public data class ClientboundCustomReportDetailsPacket(val details: List { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundCustomReportDetailsPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundCustomReportDetailsPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundCustomReportDetailsPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundCustomReportDetailsPacket { val detailCount = buffer.readVarInt() val details = ArrayList(detailCount) repeat(detailCount) { details.add(ReportDetail.decode(buffer)) } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundDisconnectConfigurationPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundDisconnectConfigurationPacket.kt index c3b8b2d..755eac2 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundDisconnectConfigurationPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundDisconnectConfigurationPacket.kt @@ -11,12 +11,12 @@ import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.protocol.protocol.game.chat.TextComponent import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public data class ClientboundDisconnectConfigurationPacket(val reason: TextComponent) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundDisconnectConfigurationPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundDisconnectConfigurationPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundDisconnectConfigurationPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundDisconnectConfigurationPacket { return ClientboundDisconnectConfigurationPacket(reason = buffer.readTextComponent()) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundFinishConfigurationPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundFinishConfigurationPacket.kt index 3746bbf..4078b04 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundFinishConfigurationPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundFinishConfigurationPacket.kt @@ -7,14 +7,14 @@ package cn.rtast.libmc.protocol.packet.configuration.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec public data object ClientboundFinishConfigurationPacket : MinecraftPacket, PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundFinishConfigurationPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundFinishConfigurationPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundFinishConfigurationPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundFinishConfigurationPacket { return ClientboundFinishConfigurationPacket } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundKeepAliveConfigurationPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundKeepAliveConfigurationPacket.kt index 164a7ab..010bc5c 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundKeepAliveConfigurationPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundKeepAliveConfigurationPacket.kt @@ -7,14 +7,14 @@ package cn.rtast.libmc.protocol.packet.configuration.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec public data class ClientboundKeepAliveConfigurationPacket(val id: Long) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundKeepAliveConfigurationPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundKeepAliveConfigurationPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundKeepAliveConfigurationPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundKeepAliveConfigurationPacket { return ClientboundKeepAliveConfigurationPacket(buffer.readLong()) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundPingConfigurationPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundPingConfigurationPacket.kt index 9fcd2e1..8ea1314 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundPingConfigurationPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundPingConfigurationPacket.kt @@ -7,14 +7,14 @@ package cn.rtast.libmc.protocol.packet.configuration.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec public data class ClientboundPingConfigurationPacket(val id: Int) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundPingConfigurationPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundPingConfigurationPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundPingConfigurationPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundPingConfigurationPacket { return ClientboundPingConfigurationPacket(id = buffer.readInt()) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundRegistryDataPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundRegistryDataPacket.kt index b6dd827..45c2944 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundRegistryDataPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundRegistryDataPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.configuration.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readVarInt @@ -23,8 +23,8 @@ public data class ClientboundRegistryDataPacket( val entries: List, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundRegistryDataPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundRegistryDataPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundRegistryDataPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundRegistryDataPacket { val id = buffer.readIdentifier() val entryCount = buffer.readVarInt() val entries = ArrayList(entryCount) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundRemoveResourcePackPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundRemoveResourcePackPacket.kt index 8bcaf85..eaf2e38 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundRemoveResourcePackPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundRemoveResourcePackPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.configuration.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readUuid @@ -15,8 +15,8 @@ import kotlin.uuid.Uuid public data class ClientboundRemoveResourcePackPacket(val uuid: Uuid) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundRemoveResourcePackPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundRemoveResourcePackPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundRemoveResourcePackPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundRemoveResourcePackPacket { val uuid = buffer.readUuid() return ClientboundRemoveResourcePackPacket(uuid) } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundResetChatPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundResetChatPacket.kt index a2f99eb..53f85c5 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundResetChatPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundResetChatPacket.kt @@ -7,12 +7,12 @@ package cn.rtast.libmc.protocol.packet.configuration.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec public data object ClientboundResetChatPacket : MinecraftPacket, PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundResetChatPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundResetChatPacket = ClientboundResetChatPacket + override fun encode(buffer: BytesBuffer, value: ClientboundResetChatPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundResetChatPacket = ClientboundResetChatPacket } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundSelectKnownPacksPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundSelectKnownPacksPacket.kt index 1b7079c..32651fa 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundSelectKnownPacksPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundSelectKnownPacksPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.configuration.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readVarInt @@ -15,8 +15,8 @@ import cn.rtast.libmc.protocol.packet.configuration.KnownPacks public data class ClientboundSelectKnownPacksPacket(val knownPacks: List) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSelectKnownPacksPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSelectKnownPacksPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSelectKnownPacksPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSelectKnownPacksPacket { val packsCount = buffer.readVarInt() val packs = List(packsCount) { KnownPacks.decode(buffer) } return ClientboundSelectKnownPacksPacket(packs) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundServerLinksPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundServerLinksPacket.kt index b867f0a..bd562f1 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundServerLinksPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundServerLinksPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.configuration.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readVarInt @@ -15,8 +15,8 @@ import cn.rtast.libmc.protocol.protocol.game.registry.report.ServerLink public data class ClientboundServerLinksPacket(val links: List) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundServerLinksPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundServerLinksPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundServerLinksPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundServerLinksPacket { val count = buffer.readVarInt() val links = ArrayList(count) repeat(count) { links.add(ServerLink.decode(buffer)) } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundStoreCookiePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundStoreCookiePacket.kt index 3ce9579..779ac4c 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundStoreCookiePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundStoreCookiePacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.configuration.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readPrefixedByteArray @@ -22,8 +22,8 @@ public data class ClientboundStoreCookiePacket( val payload: ByteArray, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundStoreCookiePacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundStoreCookiePacket { + override fun encode(buffer: BytesBuffer, value: ClientboundStoreCookiePacket) {} + override fun decode(buffer: BytesBuffer): ClientboundStoreCookiePacket { val key = buffer.readIdentifier() val payload = buffer.readPrefixedByteArray() return ClientboundStoreCookiePacket(key, payload) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundTransferPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundTransferPacket.kt index 9749fef..d1259d1 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundTransferPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundTransferPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.configuration.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readMcString @@ -15,8 +15,8 @@ import cn.rtast.libmc.primitives.readVarInt public data class ClientboundTransferPacket(val host: String, val port: Int) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundTransferPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundTransferPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundTransferPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundTransferPacket { val host = buffer.readMcString() val port = buffer.readVarInt() return ClientboundTransferPacket(host, port) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundUpdateEnabledFeaturesPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundUpdateEnabledFeaturesPacket.kt index 67e5b5d..c7d9284 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundUpdateEnabledFeaturesPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundUpdateEnabledFeaturesPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.configuration.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readVarInt @@ -16,8 +16,8 @@ import cn.rtast.libmc.protocol.protocol.game.readIdentifier public data class ClientboundUpdateEnabledFeaturesPacket(val features: List) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundUpdateEnabledFeaturesPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundUpdateEnabledFeaturesPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundUpdateEnabledFeaturesPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundUpdateEnabledFeaturesPacket { val featureCount = buffer.readVarInt() val features = ArrayList(featureCount) repeat(featureCount) { features.add(buffer.readIdentifier()) } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundUpdateTagsPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundUpdateTagsPacket.kt index e594dd8..53e2678 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundUpdateTagsPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/clientbound/ClientboundUpdateTagsPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.configuration.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readVarInt @@ -19,13 +19,13 @@ import cn.rtast.libmc.protocol.protocol.game.writeIdentifier public data class ClientboundUpdateTagsPacket(val registries: List) : MinecraftPacket { public data class TaggedRegistry(val registryId: Identifier, val tags: List) { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: TaggedRegistry) { + override fun encode(buffer: BytesBuffer, value: TaggedRegistry) { buffer.writeIdentifier(value.registryId) buffer.writeVarInt(value.tags.size) value.tags.forEach { Tag.encode(buffer, it) } } - override suspend fun decode(buffer: BytesBuffer): TaggedRegistry { + override fun decode(buffer: BytesBuffer): TaggedRegistry { val id = buffer.readIdentifier() val tagCount = buffer.readVarInt() val tags = ArrayList(tagCount) @@ -37,13 +37,13 @@ public data class ClientboundUpdateTagsPacket(val registries: List { - override suspend fun encode(buffer: BytesBuffer, value: Tag) { + override fun encode(buffer: BytesBuffer, value: Tag) { buffer.writeIdentifier(value.name) buffer.writeVarInt(value.entries.size) value.entries.forEach { buffer.writeVarInt(it) } } - override suspend fun decode(buffer: BytesBuffer): Tag { + override fun decode(buffer: BytesBuffer): Tag { val name = buffer.readIdentifier() val entrySize = buffer.readVarInt() val entries = ArrayList(entrySize) @@ -69,8 +69,8 @@ public data class ClientboundUpdateTagsPacket(val registries: List { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundUpdateTagsPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundUpdateTagsPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundUpdateTagsPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundUpdateTagsPacket { val registryCount = buffer.readVarInt() val registries = ArrayList(registryCount) repeat(registryCount) { registries.add(TaggedRegistry.decode(buffer)) } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/serverbound/ServerboundAcceptCodeOfConductPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/serverbound/ServerboundAcceptCodeOfConductPacket.kt index fbafa92..2e66b76 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/serverbound/ServerboundAcceptCodeOfConductPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/serverbound/ServerboundAcceptCodeOfConductPacket.kt @@ -7,13 +7,13 @@ package cn.rtast.libmc.protocol.packet.configuration.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket public data object ServerboundAcceptCodeOfConductPacket : MinecraftPacket, PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundAcceptCodeOfConductPacket) {} - override suspend fun decode(buffer: BytesBuffer): ServerboundAcceptCodeOfConductPacket = + override fun encode(buffer: BytesBuffer, value: ServerboundAcceptCodeOfConductPacket) {} + override fun decode(buffer: BytesBuffer): ServerboundAcceptCodeOfConductPacket = ServerboundAcceptCodeOfConductPacket } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/serverbound/ServerboundAckFinishConfigurationPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/serverbound/ServerboundAckFinishConfigurationPacket.kt index e7d944b..43b98b9 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/serverbound/ServerboundAckFinishConfigurationPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/serverbound/ServerboundAckFinishConfigurationPacket.kt @@ -7,13 +7,13 @@ package cn.rtast.libmc.protocol.packet.configuration.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket public data object ServerboundAckFinishConfigurationPacket : MinecraftPacket, PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundAckFinishConfigurationPacket) {} - override suspend fun decode(buffer: BytesBuffer): ServerboundAckFinishConfigurationPacket = + override fun encode(buffer: BytesBuffer, value: ServerboundAckFinishConfigurationPacket) {} + override fun decode(buffer: BytesBuffer): ServerboundAckFinishConfigurationPacket = throw UnsupportedOperationException() } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/serverbound/ServerboundCookieResponsePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/serverbound/ServerboundCookieResponsePacket.kt index c53978c..fc30e00 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/serverbound/ServerboundCookieResponsePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/serverbound/ServerboundCookieResponsePacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.configuration.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeVarInt @@ -16,7 +16,7 @@ import cn.rtast.libmc.protocol.protocol.game.writeIdentifier public data class ServerboundCookieResponsePacket(val key: Identifier, val payload: ByteArray?) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundCookieResponsePacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundCookieResponsePacket) { buffer.writeIdentifier(value.key) if (value.payload != null) { buffer.writeBoolean(true) @@ -25,7 +25,7 @@ public data class ServerboundCookieResponsePacket(val key: Identifier, val paylo } else buffer.writeBoolean(false) } - override suspend fun decode(buffer: BytesBuffer): ServerboundCookieResponsePacket = + override fun decode(buffer: BytesBuffer): ServerboundCookieResponsePacket = throw UnsupportedOperationException() } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/serverbound/ServerboundKeepAliveConfigurationPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/serverbound/ServerboundKeepAliveConfigurationPacket.kt index 55660c7..8de8115 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/serverbound/ServerboundKeepAliveConfigurationPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/serverbound/ServerboundKeepAliveConfigurationPacket.kt @@ -7,17 +7,17 @@ package cn.rtast.libmc.protocol.packet.configuration.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket public data class ServerboundKeepAliveConfigurationPacket(val id: Long) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundKeepAliveConfigurationPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundKeepAliveConfigurationPacket) { buffer.writeLong(value.id) } - override suspend fun decode(buffer: BytesBuffer): ServerboundKeepAliveConfigurationPacket = + override fun decode(buffer: BytesBuffer): ServerboundKeepAliveConfigurationPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/serverbound/ServerboundPongConfigurationPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/serverbound/ServerboundPongConfigurationPacket.kt index 425518d..6e9be05 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/serverbound/ServerboundPongConfigurationPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/serverbound/ServerboundPongConfigurationPacket.kt @@ -7,17 +7,17 @@ package cn.rtast.libmc.protocol.packet.configuration.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket public data class ServerboundPongConfigurationPacket(val id: Int) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundPongConfigurationPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundPongConfigurationPacket) { buffer.writeInt(value.id) } - override suspend fun decode(buffer: BytesBuffer): ServerboundPongConfigurationPacket = + override fun decode(buffer: BytesBuffer): ServerboundPongConfigurationPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/serverbound/ServerboundSelectKnownPacksPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/serverbound/ServerboundSelectKnownPacksPacket.kt index 6b3417e..fe53679 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/serverbound/ServerboundSelectKnownPacksPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/configuration/serverbound/ServerboundSelectKnownPacksPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.configuration.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeVarInt @@ -15,12 +15,12 @@ import cn.rtast.libmc.protocol.packet.configuration.KnownPacks public data class ServerboundSelectKnownPacksPacket(val knownPacks: List) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundSelectKnownPacksPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundSelectKnownPacksPacket) { buffer.writeVarInt(value.knownPacks.size) value.knownPacks.forEach { KnownPacks.encode(buffer, it) } } - override suspend fun decode(buffer: BytesBuffer): ServerboundSelectKnownPacksPacket = + override fun decode(buffer: BytesBuffer): ServerboundSelectKnownPacksPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/handshake/ServerboundHandshakePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/handshake/ServerboundHandshakePacket.kt index b80b360..cfdd80f 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/handshake/ServerboundHandshakePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/handshake/ServerboundHandshakePacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.handshake -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeMcString @@ -21,13 +21,13 @@ public data class ServerboundHandshakePacket( val intent: HandshakeIntent, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundHandshakePacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundHandshakePacket) { buffer.writeVarInt(value.protocolVersion) buffer.writeMcString(value.serverAddress) buffer.writeShort(value.serverPort.toShort()) buffer.writeVarInt(value.intent.intentID) } - override suspend fun decode(buffer: BytesBuffer): ServerboundHandshakePacket = throw UnsupportedOperationException() + override fun decode(buffer: BytesBuffer): ServerboundHandshakePacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/clientbound/ClientboundCustomQueryPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/clientbound/ClientboundCustomQueryPacket.kt index 16e2b53..fd0bbcd 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/clientbound/ClientboundCustomQueryPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/clientbound/ClientboundCustomQueryPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.login.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readVarInt @@ -20,11 +20,11 @@ public data class ClientboundCustomQueryPacket( val data: ByteArray, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundCustomQueryPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundCustomQueryPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundCustomQueryPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundCustomQueryPacket { val messageId = buffer.readVarInt() val channel = buffer.readIdentifier() - val data = buffer.readBytes(buffer.remaining.toInt()) + val data = buffer.toByteArray() return ClientboundCustomQueryPacket(messageId, channel, data) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/clientbound/ClientboundDisconnectLoginPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/clientbound/ClientboundDisconnectLoginPacket.kt index b6c9f36..636423d 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/clientbound/ClientboundDisconnectLoginPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/clientbound/ClientboundDisconnectLoginPacket.kt @@ -11,12 +11,12 @@ import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.protocol.protocol.game.chat.TextComponent import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public data class ClientboundDisconnectLoginPacket(val reason: TextComponent) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundDisconnectLoginPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundDisconnectLoginPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundDisconnectLoginPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundDisconnectLoginPacket { return ClientboundDisconnectLoginPacket(reason = buffer.readTextComponent()) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/clientbound/ClientboundHelloPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/clientbound/ClientboundHelloPacket.kt index 6f71979..b6e61e9 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/clientbound/ClientboundHelloPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/clientbound/ClientboundHelloPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.login.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readMcString @@ -27,8 +27,8 @@ public data class ClientboundHelloPacket( val shouldAuthenticate: Boolean, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundHelloPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundHelloPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundHelloPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundHelloPacket { val serverId = buffer.readMcString() val publicKey = buffer.readPrefixedByteArray() val verifyToken = buffer.readPrefixedByteArray() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/clientbound/ClientboundLoginSuccessPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/clientbound/ClientboundLoginSuccessPacket.kt index b20f126..bc46a3a 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/clientbound/ClientboundLoginSuccessPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/clientbound/ClientboundLoginSuccessPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.login.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readUuid @@ -17,8 +17,8 @@ import kotlin.uuid.Uuid public data class ClientboundLoginSuccessPacket(val gameProfile: GameProfile, val sessionId: Uuid) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundLoginSuccessPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundLoginSuccessPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundLoginSuccessPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundLoginSuccessPacket { val gameProfile = GameProfile.decode(buffer) val sessionId = buffer.readUuid() return ClientboundLoginSuccessPacket(gameProfile, sessionId) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/clientbound/ClientboundSetCompressionPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/clientbound/ClientboundSetCompressionPacket.kt index 5ede6d2..dadeff4 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/clientbound/ClientboundSetCompressionPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/clientbound/ClientboundSetCompressionPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.login.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readVarInt @@ -15,11 +15,11 @@ import cn.rtast.libmc.primitives.writeVarInt public data class ClientboundSetCompressionPacket(val threshold: Int) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSetCompressionPacket) { + override fun encode(buffer: BytesBuffer, value: ClientboundSetCompressionPacket) { buffer.writeVarInt(value = value.threshold) } - override suspend fun decode(buffer: BytesBuffer): ClientboundSetCompressionPacket { + override fun decode(buffer: BytesBuffer): ClientboundSetCompressionPacket { return ClientboundSetCompressionPacket(buffer.readVarInt()) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/serverbound/ServerboundCustomQueryAnswerPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/serverbound/ServerboundCustomQueryAnswerPacket.kt index 74312fe..5f60d64 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/serverbound/ServerboundCustomQueryAnswerPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/serverbound/ServerboundCustomQueryAnswerPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.login.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeOptionalPrefixedByteArray @@ -15,12 +15,12 @@ import cn.rtast.libmc.primitives.writeVarInt public data class ServerboundCustomQueryAnswerPacket(val messageId: Int, val data: ByteArray?) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundCustomQueryAnswerPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundCustomQueryAnswerPacket) { buffer.writeVarInt(value.messageId) buffer.writeOptionalPrefixedByteArray(value.data) } - override suspend fun decode(buffer: BytesBuffer): ServerboundCustomQueryAnswerPacket = + override fun decode(buffer: BytesBuffer): ServerboundCustomQueryAnswerPacket = throw UnsupportedOperationException() } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/serverbound/ServerboundKeyPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/serverbound/ServerboundKeyPacket.kt index 17e5069..7012b7d 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/serverbound/ServerboundKeyPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/serverbound/ServerboundKeyPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.login.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writePrefixedByteArray @@ -17,12 +17,12 @@ import cn.rtast.libmc.primitives.writePrefixedByteArray */ public data class ServerboundKeyPacket(val sharedSecret: ByteArray, val verifyToken: ByteArray) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundKeyPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundKeyPacket) { buffer.writePrefixedByteArray(value.sharedSecret) buffer.writePrefixedByteArray(value.verifyToken) } - override suspend fun decode(buffer: BytesBuffer): ServerboundKeyPacket = + override fun decode(buffer: BytesBuffer): ServerboundKeyPacket = throw UnsupportedOperationException() } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/serverbound/ServerboundLoginAcknowledgedPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/serverbound/ServerboundLoginAcknowledgedPacket.kt index 2ecf1fc..4251089 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/serverbound/ServerboundLoginAcknowledgedPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/serverbound/ServerboundLoginAcknowledgedPacket.kt @@ -7,13 +7,13 @@ package cn.rtast.libmc.protocol.packet.login.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec public data object ServerboundLoginAcknowledgedPacket : MinecraftPacket, PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundLoginAcknowledgedPacket) {} - override suspend fun decode(buffer: BytesBuffer): ServerboundLoginAcknowledgedPacket = + override fun encode(buffer: BytesBuffer, value: ServerboundLoginAcknowledgedPacket) {} + override fun decode(buffer: BytesBuffer): ServerboundLoginAcknowledgedPacket = throw UnsupportedOperationException() } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/serverbound/ServerboundLoginStartPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/serverbound/ServerboundLoginStartPacket.kt index 767eb47..9330337 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/serverbound/ServerboundLoginStartPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/login/serverbound/ServerboundLoginStartPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.login.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.writeMcString @@ -16,12 +16,12 @@ import kotlin.uuid.Uuid public data class ServerboundLoginStartPacket(val username: String, val playerUuid: Uuid) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundLoginStartPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundLoginStartPacket) { buffer.writeMcString(value.username) buffer.writeUuid(value.playerUuid) } - override suspend fun decode(buffer: BytesBuffer): ServerboundLoginStartPacket = + override fun decode(buffer: BytesBuffer): ServerboundLoginStartPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundAcknowledgeBlockChangePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundAcknowledgeBlockChangePacket.kt index 8d5d4c4..799ed94 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundAcknowledgeBlockChangePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundAcknowledgeBlockChangePacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readVarInt @@ -17,8 +17,8 @@ import cn.rtast.libmc.primitives.readVarInt */ public data class ClientboundAcknowledgeBlockChangePacket(val sequenceId: Int) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundAcknowledgeBlockChangePacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundAcknowledgeBlockChangePacket { + override fun encode(buffer: BytesBuffer, value: ClientboundAcknowledgeBlockChangePacket) {} + override fun decode(buffer: BytesBuffer): ClientboundAcknowledgeBlockChangePacket { return ClientboundAcknowledgeBlockChangePacket(buffer.readVarInt()) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundAwardStatisticsPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundAwardStatisticsPacket.kt index 76ba079..af3d381 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundAwardStatisticsPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundAwardStatisticsPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readVarInt @@ -18,8 +18,8 @@ import cn.rtast.libmc.protocol.protocol.game.StatisticsEntry */ public data class ClientboundAwardStatisticsPacket(val stats: List) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundAwardStatisticsPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundAwardStatisticsPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundAwardStatisticsPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundAwardStatisticsPacket { val count = buffer.readVarInt() val stats = List(count) { StatisticsEntry.decode(buffer) } return ClientboundAwardStatisticsPacket(stats) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundBlockDestructionPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundBlockDestructionPacket.kt index d167b64..566af67 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundBlockDestructionPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundBlockDestructionPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readVarInt @@ -24,8 +24,8 @@ public data class ClientboundBlockDestructionPacket( val stage: BlockDestroyStage, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundBlockDestructionPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundBlockDestructionPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundBlockDestructionPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundBlockDestructionPacket { val entityId = buffer.readVarInt() val location = buffer.readBlockPos() val stage = buffer.readByte() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundBlockEntityDataPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundBlockEntityDataPacket.kt index 8b8e3ba..e857c00 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundBlockEntityDataPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundBlockEntityDataPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readVarInt @@ -19,8 +19,8 @@ import cn.rtast.libmc.protocol.protocol.util.readNetworkNBTCompound public data class ClientboundBlockEntityDataPacket(val location: BlockPos, val type: Int, val data: NBTCompound) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundBlockEntityDataPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundBlockEntityDataPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundBlockEntityDataPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundBlockEntityDataPacket { val location = buffer.readBlockPos() val type = buffer.readVarInt() val data = buffer.readNetworkNBTCompound() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundBlockEventPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundBlockEventPacket.kt index 4afe790..829b268 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundBlockEventPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundBlockEventPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readVarInt @@ -32,8 +32,8 @@ public data class ClientboundBlockEventPacket( val blockType: Int, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundBlockEventPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundBlockEventPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundBlockEventPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundBlockEventPacket { val location = buffer.readBlockPos() val actionId = buffer.readUByte() val actionParameter = buffer.readUByte() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundBlockUpdatePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundBlockUpdatePacket.kt index a31cfa6..6a1a07f 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundBlockUpdatePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundBlockUpdatePacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readVarInt @@ -16,8 +16,8 @@ import cn.rtast.libmc.protocol.protocol.game.block.readBlockPos public data class ClientboundBlockUpdatePacket(val location: BlockPos, val blockId: Int) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundBlockUpdatePacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundBlockUpdatePacket { + override fun encode(buffer: BytesBuffer, value: ClientboundBlockUpdatePacket) {} + override fun decode(buffer: BytesBuffer): ClientboundBlockUpdatePacket { val position = buffer.readBlockPos() val blockId = buffer.readVarInt() return ClientboundBlockUpdatePacket(position, blockId) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundBossEventPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundBossEventPacket.kt index ec2d31f..cf25cc4 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundBossEventPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundBossEventPacket.kt @@ -16,13 +16,13 @@ import cn.rtast.libmc.protocol.protocol.game.bossbar.BossBarColor import cn.rtast.libmc.protocol.protocol.game.bossbar.BossBarDivision import cn.rtast.libmc.protocol.protocol.game.bossbar.BossBarFlags import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import kotlin.uuid.Uuid public data class ClientboundBossEventPacket(val uuid: Uuid, val action: BossBarAction) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundBossEventPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundBossEventPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundBossEventPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundBossEventPacket { val uuid = buffer.readUuid() val action = when (val actionId = buffer.readVarInt()) { BossBarAction.ADD_ID -> { diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundChangeDifficultyPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundChangeDifficultyPacket.kt index 7cc4b48..91e7250 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundChangeDifficultyPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundChangeDifficultyPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.protocol.protocol.game.registry.GameDifficulty @@ -15,8 +15,8 @@ import cn.rtast.libmc.protocol.protocol.game.registry.GameDifficulty public data class ClientboundChangeDifficultyPacket(val difficulty: GameDifficulty, val locked: Boolean) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundChangeDifficultyPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundChangeDifficultyPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundChangeDifficultyPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundChangeDifficultyPacket { val difficulty = GameDifficulty.fromID(buffer.readByte()) val locked = buffer.readBoolean() return ClientboundChangeDifficultyPacket(difficulty, locked) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundChunkBatchFinishedPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundChunkBatchFinishedPacket.kt index 2b8be33..86fcc41 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundChunkBatchFinishedPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundChunkBatchFinishedPacket.kt @@ -7,15 +7,15 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readVarInt public data class ClientboundChunkBatchFinishedPacket(val batchSize: Int) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundChunkBatchFinishedPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundChunkBatchFinishedPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundChunkBatchFinishedPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundChunkBatchFinishedPacket { return ClientboundChunkBatchFinishedPacket(buffer.readVarInt()) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundChunkBatchStartPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundChunkBatchStartPacket.kt index b7c53ce..ff8f141 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundChunkBatchStartPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundChunkBatchStartPacket.kt @@ -7,12 +7,12 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec public data object ClientboundChunkBatchStartPacket : MinecraftPacket, PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundChunkBatchStartPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundChunkBatchStartPacket = ClientboundChunkBatchStartPacket + override fun encode(buffer: BytesBuffer, value: ClientboundChunkBatchStartPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundChunkBatchStartPacket = ClientboundChunkBatchStartPacket } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundChunksBiomesPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundChunksBiomesPacket.kt index d0476b0..2ab4d5c 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundChunksBiomesPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundChunksBiomesPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readVarInt @@ -15,8 +15,8 @@ import cn.rtast.libmc.protocol.protocol.game.chunk.ChunkBiomeData public data class ClientboundChunksBiomesPacket(val chunkBiomes: List) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundChunksBiomesPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundChunksBiomesPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundChunksBiomesPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundChunksBiomesPacket { val chunkCount = buffer.readVarInt() val chunks = ArrayList(chunkCount) repeat(chunkCount) { chunks.add(ChunkBiomeData.decode(buffer)) } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundClearTitlesPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundClearTitlesPacket.kt index aca4ca3..7a8ab8e 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundClearTitlesPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundClearTitlesPacket.kt @@ -7,14 +7,14 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec public data class ClientboundClearTitlesPacket(val reset: Boolean) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundClearTitlesPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundClearTitlesPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundClearTitlesPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundClearTitlesPacket { return ClientboundClearTitlesPacket(buffer.readBoolean()) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundCommandSuggestionsPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundCommandSuggestionsPacket.kt index ed83b18..e21c082 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundCommandSuggestionsPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundCommandSuggestionsPacket.kt @@ -13,7 +13,7 @@ import cn.rtast.libmc.primitives.readMcString import cn.rtast.libmc.primitives.readVarInt import cn.rtast.libmc.protocol.protocol.game.chat.TextComponent import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public data class ClientboundCommandSuggestionsPacket( val id: Int, @@ -23,8 +23,8 @@ public data class ClientboundCommandSuggestionsPacket( ) : MinecraftPacket { public data class CommandSuggestionMatch(val match: String, val tooltip: TextComponent?) { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: CommandSuggestionMatch) {} - override suspend fun decode(buffer: BytesBuffer): CommandSuggestionMatch { + override fun encode(buffer: BytesBuffer, value: CommandSuggestionMatch) {} + override fun decode(buffer: BytesBuffer): CommandSuggestionMatch { val match = buffer.readMcString() val hasTooltip = buffer.readBoolean() val tooltip = if (hasTooltip) buffer.readTextComponent() else null @@ -34,8 +34,8 @@ public data class ClientboundCommandSuggestionsPacket( } internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundCommandSuggestionsPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundCommandSuggestionsPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundCommandSuggestionsPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundCommandSuggestionsPacket { val id = buffer.readVarInt() val start = buffer.readVarInt() val length = buffer.readVarInt() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundCommandsPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundCommandsPacket.kt index b1ae5ee..5e7e1f0 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundCommandsPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundCommandsPacket.kt @@ -12,12 +12,12 @@ import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readPrefixed import cn.rtast.libmc.primitives.readVarInt import cn.rtast.libmc.protocol.protocol.game.command.CommandNode -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public data class ClientboundCommandsPacket(val nodes: List, val rootIndex: Int) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundCommandsPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundCommandsPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundCommandsPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundCommandsPacket { val nodes = buffer.readPrefixed { CommandNode.decode(buffer) } val rootIndex = buffer.readVarInt() return ClientboundCommandsPacket(nodes, rootIndex) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundContainerClosePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundContainerClosePacket.kt index 5382248..96440b7 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundContainerClosePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundContainerClosePacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readVarInt @@ -18,8 +18,8 @@ import cn.rtast.libmc.primitives.readVarInt */ public data class ClientboundContainerClosePacket(val windowId: Int) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundContainerClosePacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundContainerClosePacket { + override fun encode(buffer: BytesBuffer, value: ClientboundContainerClosePacket) {} + override fun decode(buffer: BytesBuffer): ClientboundContainerClosePacket { return ClientboundContainerClosePacket(buffer.readVarInt()) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundContainerSetDataPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundContainerSetDataPacket.kt index 7b7e4b6..78521f6 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundContainerSetDataPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundContainerSetDataPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readVarInt @@ -21,8 +21,8 @@ public data class ClientboundContainerSetDataPacket( val value: Short, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundContainerSetDataPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundContainerSetDataPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundContainerSetDataPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundContainerSetDataPacket { val windowId = buffer.readVarInt() val property = buffer.readShort() val value = buffer.readShort() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundCooldownPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundCooldownPacket.kt index a9156f3..d9be18a 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundCooldownPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundCooldownPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt @@ -22,8 +22,8 @@ public data class ClientboundCooldownPacket( val ticks: Int, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundCooldownPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundCooldownPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundCooldownPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundCooldownPacket { val group = buffer.readIdentifier() val ticks = buffer.readVarInt() return ClientboundCooldownPacket(group, ticks) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundCustomChatCompletionsPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundCustomChatCompletionsPacket.kt index c68c2fa..ec665aa 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundCustomChatCompletionsPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundCustomChatCompletionsPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readPrefixedStringArray @@ -17,8 +17,8 @@ import cn.rtast.libmc.protocol.protocol.game.chat.ChatAction public data class ClientboundCustomChatCompletionsPacket(val action: ChatAction, val entries: List) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundCustomChatCompletionsPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundCustomChatCompletionsPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundCustomChatCompletionsPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundCustomChatCompletionsPacket { val action = ChatAction.fromID(buffer.readVarInt()) val entries = buffer.readPrefixedStringArray() return ClientboundCustomChatCompletionsPacket(action, entries) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundDamageEventPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundDamageEventPacket.kt index a703755..9b5db3e 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundDamageEventPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundDamageEventPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt @@ -22,8 +22,8 @@ public data class ClientboundDamageEventPacket( val position: Vec3d?, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundDamageEventPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundDamageEventPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundDamageEventPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundDamageEventPacket { val entityId = buffer.readVarInt() val sourceTypeId = buffer.readVarInt() val rawCauseId = buffer.readVarInt() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundDeleteChatPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundDeleteChatPacket.kt index 7300739..886b294 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundDeleteChatPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundDeleteChatPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readOptional @@ -15,8 +15,8 @@ import cn.rtast.libmc.primitives.readVarInt public data class ClientboundDeleteChatPacket(val messageId: Int, val signature: ByteArray?) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundDeleteChatPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundDeleteChatPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundDeleteChatPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundDeleteChatPacket { val messageId = buffer.readVarInt() val signature = buffer.readOptional { buffer.readBytes(256) } return ClientboundDeleteChatPacket(messageId, signature) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundDelimiterPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundDelimiterPacket.kt index ef9ce4d..b72c4b7 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundDelimiterPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundDelimiterPacket.kt @@ -7,13 +7,13 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec public data object ClientboundDelimiterPacket : MinecraftPacket, PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundDelimiterPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundDelimiterPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundDelimiterPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundDelimiterPacket { return ClientboundDelimiterPacket } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundDisconnectPlayPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundDisconnectPlayPacket.kt index 50471e4..498c3b3 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundDisconnectPlayPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundDisconnectPlayPacket.kt @@ -11,12 +11,12 @@ import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.protocol.protocol.game.chat.TextComponent import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public data class ClientboundDisconnectPlayPacket(val reason: TextComponent) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundDisconnectPlayPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundDisconnectPlayPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundDisconnectPlayPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundDisconnectPlayPacket { return ClientboundDisconnectPlayPacket(reason = buffer.readTextComponent()) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundDisguisedChatMessagePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundDisguisedChatMessagePacket.kt index 7e86770..4c5414a 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundDisguisedChatMessagePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundDisguisedChatMessagePacket.kt @@ -16,7 +16,7 @@ import cn.rtast.libmc.protocol.protocol.game.chat.InlineChatType import cn.rtast.libmc.protocol.protocol.game.chat.TextComponent import cn.rtast.libmc.protocol.protocol.game.chat.readInlineChatType import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public data class ClientboundDisguisedChatMessagePacket( val message: TextComponent, @@ -25,8 +25,8 @@ public data class ClientboundDisguisedChatMessagePacket( val targetName: TextComponent?, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundDisguisedChatMessagePacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundDisguisedChatMessagePacket { + override fun encode(buffer: BytesBuffer, value: ClientboundDisguisedChatMessagePacket) {} + override fun decode(buffer: BytesBuffer): ClientboundDisguisedChatMessagePacket { val message = buffer.readTextComponent() val chatType = buffer.readIdOrX { readInlineChatType() } val senderName = buffer.readTextComponent() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundEntityAnimationPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundEntityAnimationPacket.kt index e8994d9..e2907cc 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundEntityAnimationPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundEntityAnimationPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readVarInt @@ -19,8 +19,8 @@ import cn.rtast.libmc.protocol.protocol.game.Animations public data class ClientboundEntityAnimationPacket(val entityId: Int, val animation: Animations) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundEntityAnimationPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundEntityAnimationPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundEntityAnimationPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundEntityAnimationPacket { val entityId = buffer.readVarInt() val animation = Animations.fromID(buffer.readByte()) return ClientboundEntityAnimationPacket(entityId, animation) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundEntityEffectPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundEntityEffectPacket.kt index aa4f19d..2afa042 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundEntityEffectPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundEntityEffectPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt @@ -26,8 +26,8 @@ public data class ClientboundEntityEffectPacket( public val duration: Duration get() = if (durationTicks == -1) Duration.INFINITE else durationTicks.ticks internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundEntityEffectPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundEntityEffectPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundEntityEffectPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundEntityEffectPacket { val entityId = buffer.readVarInt() val effectId = buffer.readVarInt() val amplifier = buffer.readVarInt() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundEntityEventPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundEntityEventPacket.kt index ae7a9d5..9f3b62b 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundEntityEventPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundEntityEventPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket @@ -20,8 +20,8 @@ public data class ClientboundEntityEventPacket( val status: Byte, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundEntityEventPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundEntityEventPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundEntityEventPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundEntityEventPacket { val entityId = buffer.readInt() val status = buffer.readByte() return ClientboundEntityEventPacket(entityId, status) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundEntitySoundEffectPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundEntitySoundEffectPacket.kt index 6d4c6fd..bd91f97 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundEntitySoundEffectPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundEntitySoundEffectPacket.kt @@ -12,7 +12,7 @@ import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.IdOrX import cn.rtast.libmc.primitives.readIdOrX import cn.rtast.libmc.primitives.readVarInt -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.protocol.protocol.game.sound.SoundCategory import cn.rtast.libmc.protocol.protocol.game.sound.SoundEvent import cn.rtast.libmc.protocol.protocol.game.sound.readSoundEvent @@ -26,8 +26,8 @@ public data class ClientboundEntitySoundEffectPacket( val seed: Long, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundEntitySoundEffectPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundEntitySoundEffectPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundEntitySoundEffectPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundEntitySoundEffectPacket { val soundEvent = buffer.readIdOrX { readSoundEvent() } val category = SoundCategory.fromID(buffer.readVarInt()) val entityId = buffer.readVarInt() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundGameEventPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundGameEventPacket.kt index c105f6c..e78ffd8 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundGameEventPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundGameEventPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket @@ -16,8 +16,8 @@ import cn.rtast.libmc.packet.MinecraftPacket */ public data class ClientboundGameEventPacket(val event: UByte, val value: Float) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundGameEventPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundGameEventPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundGameEventPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundGameEventPacket { val event = buffer.readUByte() val value = buffer.readFloat() return ClientboundGameEventPacket(event, value) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundGameRuleValuesPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundGameRuleValuesPacket.kt index 0690632..cf1e6d6 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundGameRuleValuesPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundGameRuleValuesPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt @@ -16,8 +16,8 @@ import cn.rtast.libmc.protocol.protocol.game.gamerule.readGameRule public data class ClientboundGameRuleValuesPacket(val rules: List) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundGameRuleValuesPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundGameRuleValuesPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundGameRuleValuesPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundGameRuleValuesPacket { val count = buffer.readVarInt() val rules = ArrayList(count) repeat(count) { rules.add(buffer.readGameRule()) } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundHurtAnimationPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundHurtAnimationPacket.kt index b411086..8d61ac0 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundHurtAnimationPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundHurtAnimationPacket.kt @@ -7,15 +7,15 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt public data class ClientboundHurtAnimationPacket(val entityId: Int, val yaw: Float) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundHurtAnimationPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundHurtAnimationPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundHurtAnimationPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundHurtAnimationPacket { val entityId = buffer.readVarInt() val yaw = buffer.readFloat() return ClientboundHurtAnimationPacket(entityId, yaw) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundInitializeWorldBorderPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundInitializeWorldBorderPacket.kt index 19521bc..f1ec8d2 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundInitializeWorldBorderPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundInitializeWorldBorderPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt @@ -24,8 +24,8 @@ public data class ClientboundInitializeWorldBorderPacket( val warningTime: Int, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundInitializeWorldBorderPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundInitializeWorldBorderPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundInitializeWorldBorderPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundInitializeWorldBorderPacket { val centerX = buffer.readDouble() val centerZ = buffer.readDouble() val oldDiameter = buffer.readDouble() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundKeepAlivePlayPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundKeepAlivePlayPacket.kt index 9b76ea0..baf1e86 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundKeepAlivePlayPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundKeepAlivePlayPacket.kt @@ -7,14 +7,14 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec public data class ClientboundKeepAlivePlayPacket(val id: Long) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundKeepAlivePlayPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundKeepAlivePlayPacket = + override fun encode(buffer: BytesBuffer, value: ClientboundKeepAlivePlayPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundKeepAlivePlayPacket = ClientboundKeepAlivePlayPacket(buffer.readLong()) } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundLevelEventPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundLevelEventPacket.kt index 1a46488..8c97c8b 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundLevelEventPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundLevelEventPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.protocol.protocol.game.block.BlockPos @@ -23,8 +23,8 @@ public data class ClientboundLevelEventPacket( val disableRelativeVolume: Boolean, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundLevelEventPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundLevelEventPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundLevelEventPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundLevelEventPacket { val eventId = buffer.readInt() val location = buffer.readBlockPos() val data = buffer.readInt() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundLinkEntitiesPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundLinkEntitiesPacket.kt index 301d9aa..b0a02b0 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundLinkEntitiesPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundLinkEntitiesPacket.kt @@ -7,14 +7,14 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket public data class ClientboundLinkEntitiesPacket(val attachedEntityId: Int, val holdingEntityId: Int) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundLinkEntitiesPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundLinkEntitiesPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundLinkEntitiesPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundLinkEntitiesPacket { val attachedEntityId = buffer.readInt() val holdingEntityId = buffer.readInt() return ClientboundLinkEntitiesPacket(attachedEntityId, holdingEntityId) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundLoginPlayPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundLoginPlayPacket.kt index 9d94501..db787ef 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundLoginPlayPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundLoginPlayPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readVarInt @@ -43,8 +43,8 @@ public data class ClientboundLoginPlayPacket( val enforceSecureChat: Boolean, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundLoginPlayPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundLoginPlayPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundLoginPlayPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundLoginPlayPacket { val entityId = buffer.readInt() val isHardcore = buffer.readBoolean() val dimensionNamesCount = buffer.readVarInt() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundLowDiskSpaceWarningPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundLowDiskSpaceWarningPacket.kt index 4bf102c..2cdace1 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundLowDiskSpaceWarningPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundLowDiskSpaceWarningPacket.kt @@ -7,13 +7,13 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec public data object ClientboundLowDiskSpaceWarningPacket : MinecraftPacket, PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundLowDiskSpaceWarningPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundLowDiskSpaceWarningPacket = + override fun encode(buffer: BytesBuffer, value: ClientboundLowDiskSpaceWarningPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundLowDiskSpaceWarningPacket = ClientboundLowDiskSpaceWarningPacket } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundMapItemDataPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundMapItemDataPacket.kt index 1d3731c..f4aeff6 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundMapItemDataPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundMapItemDataPacket.kt @@ -17,7 +17,7 @@ import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent import cn.rtast.libmc.protocol.protocol.game.item.MapItemColorPatch import cn.rtast.libmc.protocol.protocol.game.item.MapItemIcon import cn.rtast.libmc.protocol.protocol.game.item.MapItemIconType -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public data class ClientboundMapItemDataPacket( val mapId: Int, @@ -27,8 +27,8 @@ public data class ClientboundMapItemDataPacket( val colorPatch: MapItemColorPatch?, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundMapItemDataPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundMapItemDataPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundMapItemDataPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundMapItemDataPacket { val mapId = buffer.readVarInt() val scale = buffer.readByte() val locked = buffer.readBoolean() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundMoveMinecartAlongTrackPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundMoveMinecartAlongTrackPacket.kt index d41445e..4f98d4e 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundMoveMinecartAlongTrackPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundMoveMinecartAlongTrackPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt @@ -17,8 +17,8 @@ import cn.rtast.libmc.protocol.protocol.game.entity.readMinecartStep public data class ClientboundMoveMinecartAlongTrackPacket(val entityId: Int, val steps: List) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundMoveMinecartAlongTrackPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundMoveMinecartAlongTrackPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundMoveMinecartAlongTrackPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundMoveMinecartAlongTrackPacket { val entityId = buffer.readVarInt() val stepCount = buffer.readVarInt() val steps = ArrayList() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundMoveVehiclePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundMoveVehiclePacket.kt index e173e11..2fd2215 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundMoveVehiclePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundMoveVehiclePacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.protocol.protocol.game.math.Vec3d @@ -16,8 +16,8 @@ import cn.rtast.libmc.protocol.protocol.game.math.readVec3d public data class ClientboundMoveVehiclePacket(val position: Vec3d, val yaw: Float, val pitch: Float) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundMoveVehiclePacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundMoveVehiclePacket { + override fun encode(buffer: BytesBuffer, value: ClientboundMoveVehiclePacket) {} + override fun decode(buffer: BytesBuffer): ClientboundMoveVehiclePacket { val position = buffer.readVec3d()!! val yaw = buffer.readFloat() val pitch = buffer.readFloat() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundOpenBookPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundOpenBookPacket.kt index 16fc066..89f4bd5 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundOpenBookPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundOpenBookPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt @@ -15,8 +15,8 @@ import cn.rtast.libmc.protocol.protocol.game.player.Hand public data class ClientboundOpenBookPacket(val hand: Hand) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundOpenBookPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundOpenBookPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundOpenBookPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundOpenBookPacket { return ClientboundOpenBookPacket(Hand.fromID(buffer.readVarInt())) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundOpenHorseScreenPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundOpenHorseScreenPacket.kt index 75fadb5..b2896e0 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundOpenHorseScreenPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundOpenHorseScreenPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt @@ -18,8 +18,8 @@ public data class ClientboundOpenHorseScreenPacket( val entityId: Int, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundOpenHorseScreenPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundOpenHorseScreenPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundOpenHorseScreenPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundOpenHorseScreenPacket { val windowId = buffer.readVarInt() val columnsCount = buffer.readVarInt() val entityId = buffer.readInt() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundOpenScreenPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundOpenScreenPacket.kt index 78bcf37..0f6f3a6 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundOpenScreenPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundOpenScreenPacket.kt @@ -12,7 +12,7 @@ import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readVarInt import cn.rtast.libmc.protocol.protocol.game.chat.TextComponent import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public data class ClientboundOpenScreenPacket( val windowId: Int, @@ -20,8 +20,8 @@ public data class ClientboundOpenScreenPacket( val title: TextComponent, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundOpenScreenPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundOpenScreenPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundOpenScreenPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundOpenScreenPacket { val windowId = buffer.readVarInt() val windowType = buffer.readVarInt() val title = buffer.readTextComponent() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundOpenSignEditorPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundOpenSignEditorPacket.kt index 65ee7a1..c0f51f1 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundOpenSignEditorPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundOpenSignEditorPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.protocol.protocol.game.block.BlockPos @@ -15,8 +15,8 @@ import cn.rtast.libmc.protocol.protocol.game.block.readBlockPos public data class ClientboundOpenSignEditorPacket(val location: BlockPos, val isFrontText: Boolean) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundOpenSignEditorPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundOpenSignEditorPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundOpenSignEditorPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundOpenSignEditorPacket { val location = buffer.readBlockPos() val isFrontText = buffer.readBoolean() return ClientboundOpenSignEditorPacket(location, isFrontText) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPickupItemPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPickupItemPacket.kt index 3f3a42d..87dd5d3 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPickupItemPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPickupItemPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt @@ -21,8 +21,8 @@ public data class ClientboundPickupItemPacket( val itemCount: Int, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundPickupItemPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundPickupItemPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundPickupItemPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundPickupItemPacket { val collectedEntityId = buffer.readVarInt() val collectorEntityId = buffer.readVarInt() val itemCount = buffer.readVarInt() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPingPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPingPacket.kt index 80b482f..81c6b37 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPingPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPingPacket.kt @@ -7,14 +7,14 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec public data class ClientboundPingPacket(val id: Int) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundPingPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundPingPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundPingPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundPingPacket { return ClientboundPingPacket(id = buffer.readInt()) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerAbilitiesPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerAbilitiesPacket.kt index 5accc84..28403aa 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerAbilitiesPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerAbilitiesPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.protocol.protocol.game.player.PlayerAbilities @@ -18,8 +18,8 @@ public data class ClientboundPlayerAbilitiesPacket( val fovModifier: Float, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundPlayerAbilitiesPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundPlayerAbilitiesPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundPlayerAbilitiesPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundPlayerAbilitiesPacket { val flag = PlayerAbilities.fromByte(buffer.readByte()) val flyingSpeed = buffer.readFloat() val fovModifier = buffer.readFloat() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerChatMessagePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerChatMessagePacket.kt index 61f1a7c..5ca7b2f 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerChatMessagePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerChatMessagePacket.kt @@ -14,7 +14,7 @@ import cn.rtast.libmc.primitives.readUuid import cn.rtast.libmc.primitives.readVarInt import cn.rtast.libmc.protocol.protocol.game.chat.TextComponent import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import kotlin.uuid.Uuid /** @@ -49,8 +49,8 @@ public data class ClientboundPlayerChatMessagePacket( public data class PreviousMessageEntry(val messageId: Int, val signature: ByteArray?) { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: PreviousMessageEntry) {} - override suspend fun decode(buffer: BytesBuffer): PreviousMessageEntry { + override fun encode(buffer: BytesBuffer, value: PreviousMessageEntry) {} + override fun decode(buffer: BytesBuffer): PreviousMessageEntry { val messageId = buffer.readVarInt() val signature = if (messageId == 0) buffer.readBytes(256) else null return PreviousMessageEntry(messageId, signature) @@ -74,8 +74,8 @@ public data class ClientboundPlayerChatMessagePacket( } internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundPlayerChatMessagePacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundPlayerChatMessagePacket { + override fun encode(buffer: BytesBuffer, value: ClientboundPlayerChatMessagePacket) {} + override fun decode(buffer: BytesBuffer): ClientboundPlayerChatMessagePacket { val globalIndex = buffer.readVarInt() val sender = buffer.readUuid() val index = buffer.readVarInt() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerCombatDeathPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerCombatDeathPacket.kt index 339225b..94a6093 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerCombatDeathPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerCombatDeathPacket.kt @@ -12,12 +12,12 @@ import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readVarInt import cn.rtast.libmc.protocol.protocol.game.chat.TextComponent import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public data class ClientboundPlayerCombatDeathPacket(val playerId: Int, val message: TextComponent) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundPlayerCombatDeathPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundPlayerCombatDeathPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundPlayerCombatDeathPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundPlayerCombatDeathPacket { val playerId = buffer.readVarInt() val message = buffer.readTextComponent() return ClientboundPlayerCombatDeathPacket(playerId, message) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerEndCombatPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerEndCombatPacket.kt index 2ed426b..4d585d5 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerEndCombatPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerEndCombatPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt @@ -16,8 +16,8 @@ import kotlin.time.Duration public data class ClientboundPlayerEndCombatPacket(val duration: Duration) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundPlayerEndCombatPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundPlayerEndCombatPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundPlayerEndCombatPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundPlayerEndCombatPacket { return ClientboundPlayerEndCombatPacket(buffer.readVarInt().ticks) // convert int to minecraft ticks } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerEnterCombatPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerEnterCombatPacket.kt index 5196b4e..c16dad0 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerEnterCombatPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerEnterCombatPacket.kt @@ -7,13 +7,13 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec public data object ClientboundPlayerEnterCombatPacket : MinecraftPacket, PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundPlayerEnterCombatPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundPlayerEnterCombatPacket = + override fun encode(buffer: BytesBuffer, value: ClientboundPlayerEnterCombatPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundPlayerEnterCombatPacket = ClientboundPlayerEnterCombatPacket } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerInfoRemovePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerInfoRemovePacket.kt index 40a2187..ec506db 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerInfoRemovePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerInfoRemovePacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readPrefixed @@ -16,8 +16,8 @@ import kotlin.uuid.Uuid public data class ClientboundPlayerInfoRemovePacket(val uuids: List) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundPlayerInfoRemovePacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundPlayerInfoRemovePacket { + override fun encode(buffer: BytesBuffer, value: ClientboundPlayerInfoRemovePacket) {} + override fun decode(buffer: BytesBuffer): ClientboundPlayerInfoRemovePacket { return ClientboundPlayerInfoRemovePacket(buffer.readPrefixed { readUuid() }) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerInfoUpdatePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerInfoUpdatePacket.kt index fff88ba..dfc9237 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerInfoUpdatePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerInfoUpdatePacket.kt @@ -15,15 +15,15 @@ import cn.rtast.libmc.protocol.protocol.game.player.action.PlayerInfoUpdateEntry import cn.rtast.libmc.protocol.protocol.game.player.action.PlayerUpdateInfoAction import cn.rtast.libmc.protocol.protocol.game.player.action.SinglePlayerAction import cn.rtast.libmc.protocol.protocol.game.session.GameProfile -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public data class ClientboundPlayerInfoUpdatePacket( val actions: Set, val entries: List, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundPlayerInfoUpdatePacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundPlayerInfoUpdatePacket { + override fun encode(buffer: BytesBuffer, value: ClientboundPlayerInfoUpdatePacket) {} + override fun decode(buffer: BytesBuffer): ClientboundPlayerInfoUpdatePacket { val actionsMask = buffer.readUByte().toInt() val actionsSet = PlayerUpdateInfoAction.parseActions(actionsMask) val playerCount = buffer.readVarInt() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerLookAtPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerLookAtPacket.kt index 22d2c4b..7d67d59 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerLookAtPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerLookAtPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt @@ -26,8 +26,8 @@ public data class ClientboundPlayerLookAtPacket( ) internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundPlayerLookAtPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundPlayerLookAtPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundPlayerLookAtPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundPlayerLookAtPacket { val fromAnchor = AnchorPoint.fromID(buffer.readVarInt()) val targetPosition = buffer.readVec3d()!! val isEntity = buffer.readBoolean() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerRotationPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerRotationPacket.kt index 065785c..3f75b57 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerRotationPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundPlayerRotationPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec @@ -18,8 +18,8 @@ public data class ClientboundPlayerRotationPacket( val relativePitch: Boolean, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundPlayerRotationPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundPlayerRotationPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundPlayerRotationPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundPlayerRotationPacket { val yaw = buffer.readFloat() val relativeYaw = buffer.readBoolean() val pitch = buffer.readFloat() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundProjectilePowerPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundProjectilePowerPacket.kt index ef43216..0ff4dec 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundProjectilePowerPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundProjectilePowerPacket.kt @@ -7,15 +7,15 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt public data class ClientboundProjectilePowerPacket(val entityId: Int, val power: Double) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundProjectilePowerPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundProjectilePowerPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundProjectilePowerPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundProjectilePowerPacket { val entityId = buffer.readVarInt() val power = buffer.readDouble() return ClientboundProjectilePowerPacket(entityId, power) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundRemoveEntitiesPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundRemoveEntitiesPacket.kt index 96e6327..b5bf886 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundRemoveEntitiesPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundRemoveEntitiesPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readPrefixed @@ -15,8 +15,8 @@ import cn.rtast.libmc.primitives.readVarInt public data class ClientboundRemoveEntitiesPacket(val entityIds: List): MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundRemoveEntitiesPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundRemoveEntitiesPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundRemoveEntitiesPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundRemoveEntitiesPacket { return ClientboundRemoveEntitiesPacket(buffer.readPrefixed { readVarInt() }) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundRemoveEntityEffectPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundRemoveEntityEffectPacket.kt index 01aec24..3833eaa 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundRemoveEntityEffectPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundRemoveEntityEffectPacket.kt @@ -7,15 +7,15 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt public data class ClientboundRemoveEntityEffectPacket(val entityId: Int, val effectId: Int) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundRemoveEntityEffectPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundRemoveEntityEffectPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundRemoveEntityEffectPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundRemoveEntityEffectPacket { val entityId = buffer.readVarInt() val effectId = buffer.readVarInt() return ClientboundRemoveEntityEffectPacket(entityId, effectId) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundResetScorePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundResetScorePacket.kt index 8ccd576..99407f1 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundResetScorePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundResetScorePacket.kt @@ -12,12 +12,12 @@ import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readMcString import cn.rtast.libmc.primitives.readOptional import cn.rtast.libmc.primitives.readPrefixed -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public data class ClientboundResetScorePacket(val entityName: String, val objectiveName: String?) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundResetScorePacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundResetScorePacket { + override fun encode(buffer: BytesBuffer, value: ClientboundResetScorePacket) {} + override fun decode(buffer: BytesBuffer): ClientboundResetScorePacket { val entityName = buffer.readMcString() val objectiveName = buffer.readPrefixed { readOptional { readMcString() } }.first() // ? return ClientboundResetScorePacket(entityName, objectiveName) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundRespawnPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundRespawnPacket.kt index 000ed07..d9ab436 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundRespawnPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundRespawnPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readOptional @@ -35,8 +35,8 @@ public data class ClientboundRespawnPacket( val dataKept: RespawnDataToKeep, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundRespawnPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundRespawnPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundRespawnPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundRespawnPacket { val dimensionType = buffer.readVarInt() val dimensionName = buffer.readIdentifier() val hashedSeed = buffer.readLong() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSelectAdvancementsTabPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSelectAdvancementsTabPacket.kt index 2781736..a969355 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSelectAdvancementsTabPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSelectAdvancementsTabPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readOptional @@ -16,8 +16,8 @@ import cn.rtast.libmc.protocol.protocol.game.readIdentifier public data class ClientboundSelectAdvancementsTabPacket(val tabId: Identifier?) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSelectAdvancementsTabPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSelectAdvancementsTabPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSelectAdvancementsTabPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSelectAdvancementsTabPacket { return ClientboundSelectAdvancementsTabPacket(buffer.readOptional { readIdentifier() }) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundServerDataPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundServerDataPacket.kt index d381768..9a3c865 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundServerDataPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundServerDataPacket.kt @@ -13,12 +13,12 @@ import cn.rtast.libmc.primitives.readOptional import cn.rtast.libmc.primitives.readVarInt import cn.rtast.libmc.protocol.protocol.game.chat.TextComponent import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public data class ClientboundServerDataPacket(val motd: TextComponent, val icon: ByteArray?) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundServerDataPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundServerDataPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundServerDataPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundServerDataPacket { val motd = buffer.readTextComponent() val icon = buffer.readOptional { val length = readVarInt(); readBytes(length) } return ClientboundServerDataPacket(motd, icon) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetActionBarTextPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetActionBarTextPacket.kt index 6be31f1..e73a982 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetActionBarTextPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetActionBarTextPacket.kt @@ -11,12 +11,12 @@ import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.protocol.protocol.game.chat.TextComponent import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public data class ClientboundSetActionBarTextPacket(val text: TextComponent) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSetActionBarTextPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSetActionBarTextPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSetActionBarTextPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSetActionBarTextPacket { return ClientboundSetActionBarTextPacket(buffer.readTextComponent()) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetBorderCenterPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetBorderCenterPacket.kt index be93697..2ed2d16 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetBorderCenterPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetBorderCenterPacket.kt @@ -7,14 +7,14 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket public data class ClientboundSetBorderCenterPacket(val x: Double, val z: Double) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSetBorderCenterPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSetBorderCenterPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSetBorderCenterPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSetBorderCenterPacket { val x = buffer.readDouble() val z = buffer.readDouble() return ClientboundSetBorderCenterPacket(x, z) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetBorderLeapSizePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetBorderLeapSizePacket.kt index f3c68a9..bc8e091 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetBorderLeapSizePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetBorderLeapSizePacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarLong @@ -18,8 +18,8 @@ public data class ClientboundSetBorderLeapSizePacket( val speed: Long, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSetBorderLeapSizePacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSetBorderLeapSizePacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSetBorderLeapSizePacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSetBorderLeapSizePacket { val oldDiameter = buffer.readDouble() val newDiameter = buffer.readDouble() val speed = buffer.readVarLong() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetBorderSizePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetBorderSizePacket.kt index 2e8ae47..92c471b 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetBorderSizePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetBorderSizePacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket @@ -18,8 +18,8 @@ public data class ClientboundSetBorderSizePacket( val diameter: Double, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSetBorderSizePacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSetBorderSizePacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSetBorderSizePacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSetBorderSizePacket { return ClientboundSetBorderSizePacket(buffer.readDouble()) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetBorderWarningDelayPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetBorderWarningDelayPacket.kt index 05ee3c0..207d295 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetBorderWarningDelayPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetBorderWarningDelayPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt @@ -19,8 +19,8 @@ public data class ClientboundSetBorderWarningDelayPacket( val warningTime: Int, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSetBorderWarningDelayPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSetBorderWarningDelayPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSetBorderWarningDelayPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSetBorderWarningDelayPacket { return ClientboundSetBorderWarningDelayPacket(buffer.readVarInt()) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetBorderWarningDistancePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetBorderWarningDistancePacket.kt index afe62e0..663b7a1 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetBorderWarningDistancePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetBorderWarningDistancePacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt @@ -19,8 +19,8 @@ public data class ClientboundSetBorderWarningDistancePacket( val warningBlocks: Int, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSetBorderWarningDistancePacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSetBorderWarningDistancePacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSetBorderWarningDistancePacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSetBorderWarningDistancePacket { return ClientboundSetBorderWarningDistancePacket(buffer.readVarInt()) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetCameraPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetCameraPacket.kt index 748a516..c4b4889 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetCameraPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetCameraPacket.kt @@ -7,15 +7,15 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt public data class ClientboundSetCameraPacket(val cameraId: Int) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSetCameraPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSetCameraPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSetCameraPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSetCameraPacket { return ClientboundSetCameraPacket(buffer.readVarInt()) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetCarriedItemPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetCarriedItemPacket.kt index 39cebee..53f1878 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetCarriedItemPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetCarriedItemPacket.kt @@ -7,15 +7,15 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt public data class ClientboundSetCarriedItemPacket(val slot: Int) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSetCarriedItemPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSetCarriedItemPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSetCarriedItemPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSetCarriedItemPacket { return ClientboundSetCarriedItemPacket(buffer.readVarInt()) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetCenterChunkPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetCenterChunkPacket.kt index 99d867f..5efeb16 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetCenterChunkPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetCenterChunkPacket.kt @@ -7,15 +7,15 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt public data class ClientboundSetCenterChunkPacket(val chunkX: Int, val chunkZ: Int) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSetCenterChunkPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSetCenterChunkPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSetCenterChunkPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSetCenterChunkPacket { val chunkX = buffer.readVarInt() val chunkZ = buffer.readVarInt() return ClientboundSetCenterChunkPacket(chunkX, chunkZ) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetDefaultSpawnPositionPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetDefaultSpawnPositionPacket.kt index fd2885b..f4478e6 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetDefaultSpawnPositionPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetDefaultSpawnPositionPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.protocol.protocol.game.Identifier @@ -22,8 +22,8 @@ public data class ClientboundSetDefaultSpawnPositionPacket( val pitch: Float, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSetDefaultSpawnPositionPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSetDefaultSpawnPositionPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSetDefaultSpawnPositionPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSetDefaultSpawnPositionPacket { val dimensionName = buffer.readIdentifier() val location = buffer.readBlockPos() val yaw = buffer.readFloat() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetDisplayObjectivePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetDisplayObjectivePacket.kt index eb92667..359ae3a 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetDisplayObjectivePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetDisplayObjectivePacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readMcString @@ -17,8 +17,8 @@ import cn.rtast.libmc.protocol.protocol.game.scoreboard.ObjectiveDisplayPosition public data class ClientboundSetDisplayObjectivePacket(val position: ObjectiveDisplayPosition, val scoreName: String) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSetDisplayObjectivePacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSetDisplayObjectivePacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSetDisplayObjectivePacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSetDisplayObjectivePacket { val position = ObjectiveDisplayPosition.fromID(buffer.readVarInt()) val scoreName = buffer.readMcString() return ClientboundSetDisplayObjectivePacket(position, scoreName) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetEntityVelocityPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetEntityVelocityPacket.kt index 43d7b0d..2f24891 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetEntityVelocityPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetEntityVelocityPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt @@ -16,8 +16,8 @@ import cn.rtast.libmc.protocol.protocol.game.math.readLpVec3 public data class ClientboundSetEntityVelocityPacket(val entityId: Int, val velocity: LpVec3) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSetEntityVelocityPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSetEntityVelocityPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSetEntityVelocityPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSetEntityVelocityPacket { val entityId = buffer.readVarInt() val velocity = buffer.readLpVec3() return ClientboundSetEntityVelocityPacket(entityId, velocity) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetExperiencePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetExperiencePacket.kt index 0e10ff7..819b666 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetExperiencePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetExperiencePacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt @@ -21,8 +21,8 @@ public data class ClientboundSetExperiencePacket( val totalExperience: Int, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSetExperiencePacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSetExperiencePacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSetExperiencePacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSetExperiencePacket { val experienceBar = buffer.readFloat() val level = buffer.readVarInt() val totalExperience = buffer.readVarInt() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetHeadRotationPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetHeadRotationPacket.kt index 6877219..a035553 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetHeadRotationPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetHeadRotationPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt @@ -16,8 +16,8 @@ import cn.rtast.libmc.protocol.protocol.game.math.readAngle public data class ClientboundSetHeadRotationPacket(val entityId: Int, val headYaw: Angle) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSetHeadRotationPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSetHeadRotationPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSetHeadRotationPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSetHeadRotationPacket { val entityId = buffer.readVarInt() val headYaw = buffer.readAngle() return ClientboundSetHeadRotationPacket(entityId, headYaw) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetHealthPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetHealthPacket.kt index fd3f341..69654f2 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetHealthPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetHealthPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt @@ -27,8 +27,8 @@ public data class ClientboundSetHealthPacket( val foodSaturation: Float, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSetHealthPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSetHealthPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSetHealthPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSetHealthPacket { val health = buffer.readFloat() val food = buffer.readVarInt() val foodSaturation = buffer.readFloat() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetPassengersPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetPassengersPacket.kt index bfbd067..3ab0209 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetPassengersPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetPassengersPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readPrefixed @@ -15,8 +15,8 @@ import cn.rtast.libmc.primitives.readVarInt public data class ClientboundSetPassengersPacket(val entityId: Int, val passengersId: List) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSetPassengersPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSetPassengersPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSetPassengersPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSetPassengersPacket { val entityId = buffer.readVarInt() val passengers = buffer.readPrefixed { readVarInt() } return ClientboundSetPassengersPacket(entityId, passengers) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetRenderDistancePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetRenderDistancePacket.kt index 7e0052d..466a7a0 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetRenderDistancePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetRenderDistancePacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt @@ -19,8 +19,8 @@ public data class ClientboundSetRenderDistancePacket( val viewDistance: Int, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSetRenderDistancePacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSetRenderDistancePacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSetRenderDistancePacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSetRenderDistancePacket { return ClientboundSetRenderDistancePacket(buffer.readVarInt()) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetSimulationDistancePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetSimulationDistancePacket.kt index 0c1fe30..bb32148 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetSimulationDistancePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetSimulationDistancePacket.kt @@ -7,15 +7,15 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt public data class ClientboundSetSimulationDistancePacket(val distance: Int) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSetSimulationDistancePacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSetSimulationDistancePacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSetSimulationDistancePacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSetSimulationDistancePacket { return ClientboundSetSimulationDistancePacket(buffer.readVarInt()) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetSubtitleTextPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetSubtitleTextPacket.kt index e18e3ee..e46263b 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetSubtitleTextPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetSubtitleTextPacket.kt @@ -11,12 +11,12 @@ import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.protocol.protocol.game.chat.TextComponent import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public data class ClientboundSetSubtitleTextPacket(val subTitleText: TextComponent) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSetSubtitleTextPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSetSubtitleTextPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSetSubtitleTextPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSetSubtitleTextPacket { return ClientboundSetSubtitleTextPacket(buffer.readTextComponent()) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetTabListHeaderAndFooterPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetTabListHeaderAndFooterPacket.kt index 2465414..def799c 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetTabListHeaderAndFooterPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetTabListHeaderAndFooterPacket.kt @@ -11,13 +11,13 @@ import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.protocol.protocol.game.chat.TextComponent import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public data class ClientboundSetTabListHeaderAndFooterPacket(val header: TextComponent, val footer: TextComponent) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSetTabListHeaderAndFooterPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSetTabListHeaderAndFooterPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSetTabListHeaderAndFooterPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSetTabListHeaderAndFooterPacket { val header = buffer.readTextComponent() val footer = buffer.readTextComponent() return ClientboundSetTabListHeaderAndFooterPacket(header, footer) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetTickingStatePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetTickingStatePacket.kt index cff46e5..031a91f 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetTickingStatePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetTickingStatePacket.kt @@ -7,14 +7,14 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket public data class ClientboundSetTickingStatePacket(val tickRate: Float, val isFrozen: Boolean) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSetTickingStatePacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSetTickingStatePacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSetTickingStatePacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSetTickingStatePacket { val tickRate = buffer.readFloat() val isFrozen = buffer.readBoolean() return ClientboundSetTickingStatePacket(tickRate, isFrozen) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetTimePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetTimePacket.kt index ac3484a..75647e0 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetTimePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetTimePacket.kt @@ -12,13 +12,13 @@ import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readPrefixed import cn.rtast.libmc.primitives.readVarInt import cn.rtast.libmc.primitives.readVarLong -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.protocol.protocol.game.world.WorldClockData public data class ClientboundSetTimePacket(val worldAge: Long, val clocks: List) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSetTimePacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSetTimePacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSetTimePacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSetTimePacket { val age = buffer.readLong() val clocks = buffer.readPrefixed { WorldClockData(readVarInt(), readVarLong(), readFloat(), readFloat()) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetTitleAnimationTimesPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetTitleAnimationTimesPacket.kt index 98bc7b5..dc37039 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetTitleAnimationTimesPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetTitleAnimationTimesPacket.kt @@ -7,15 +7,15 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket public data class ClientboundSetTitleAnimationTimesPacket(val fadeIn: Int, val stay: Int, val fadeOut: Int) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSetTitleAnimationTimesPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSetTitleAnimationTimesPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSetTitleAnimationTimesPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSetTitleAnimationTimesPacket { val fadeIn = buffer.readInt() val stay = buffer.readInt() val fadeOut = buffer.readInt() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetTitleTextPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetTitleTextPacket.kt index 70ed3d4..72bcb6b 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetTitleTextPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSetTitleTextPacket.kt @@ -11,12 +11,12 @@ import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.protocol.protocol.game.chat.TextComponent import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public data class ClientboundSetTitleTextPacket(val text: TextComponent) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSetTitleTextPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSetTitleTextPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSetTitleTextPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSetTitleTextPacket { return ClientboundSetTitleTextPacket(buffer.readTextComponent()) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundShowDialogPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundShowDialogPacket.kt index 1d8e992..120caa1 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundShowDialogPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundShowDialogPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.primitives.IdOrX import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec @@ -17,8 +17,8 @@ import cn.rtast.libmc.protocol.protocol.util.readNetworkNBTCompound public data class ClientboundShowDialogPacket(val dialog: IdOrX) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundShowDialogPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundShowDialogPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundShowDialogPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundShowDialogPacket { return ClientboundShowDialogPacket(buffer.readIdOrX { this.readNetworkNBTCompound() }) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSoundEffectPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSoundEffectPacket.kt index ab0dda3..365d066 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSoundEffectPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSoundEffectPacket.kt @@ -12,7 +12,7 @@ import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.IdOrX import cn.rtast.libmc.primitives.readIdOrX import cn.rtast.libmc.primitives.readVarInt -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.protocol.protocol.game.sound.SoundCategory import cn.rtast.libmc.protocol.protocol.game.sound.SoundEvent import cn.rtast.libmc.protocol.protocol.game.sound.readSoundEvent @@ -28,8 +28,8 @@ public data class ClientboundSoundEffectPacket( val seed: Long, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSoundEffectPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSoundEffectPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSoundEffectPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSoundEffectPacket { val soundEvent = buffer.readIdOrX { readSoundEvent() } val category = SoundCategory.fromID(buffer.readVarInt()) val effectPositionX = buffer.readInt() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSpawnEntityPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSpawnEntityPacket.kt index 24d92b6..1a2f4b6 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSpawnEntityPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSpawnEntityPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readUuid @@ -35,8 +35,8 @@ public data class ClientboundSpawnEntityPacket( val data: Int, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSpawnEntityPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSpawnEntityPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSpawnEntityPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSpawnEntityPacket { val entityId = buffer.readVarInt() val entityUuid = buffer.readUuid() val type = buffer.readVarInt() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundStartConfigurationPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundStartConfigurationPacket.kt index f1db7a3..f524e8c 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundStartConfigurationPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundStartConfigurationPacket.kt @@ -7,14 +7,14 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec public data object ClientboundStartConfigurationPacket : MinecraftPacket, PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundStartConfigurationPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundStartConfigurationPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundStartConfigurationPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundStartConfigurationPacket { return ClientboundStartConfigurationPacket } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundStepTickPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundStepTickPacket.kt index cdc7199..bfca187 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundStepTickPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundStepTickPacket.kt @@ -7,15 +7,15 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt public data class ClientboundStepTickPacket(val tickSteps: Int) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundStepTickPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundStepTickPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundStepTickPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundStepTickPacket { return ClientboundStepTickPacket(buffer.readVarInt()) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundStopSoundPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundStopSoundPacket.kt index 7b81e97..455db7e 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundStopSoundPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundStopSoundPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt @@ -24,8 +24,8 @@ public data class ClientboundStopSoundPacket( private const val MASK_HAS_SOURCE = 0x01 private const val MASK_HAS_SOUND = 0x02 - override suspend fun encode(buffer: BytesBuffer, value: ClientboundStopSoundPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundStopSoundPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundStopSoundPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundStopSoundPacket { val flags = buffer.readByte() val category = if ((flags.toInt() and MASK_HAS_SOURCE) != 0) SoundCategory.fromID(buffer.readVarInt()) else null diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSynchronizePlayerPositionPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSynchronizePlayerPositionPacket.kt index edbe024..5c51ecb 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSynchronizePlayerPositionPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSynchronizePlayerPositionPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readVarInt @@ -24,8 +24,8 @@ public data class ClientboundSynchronizePlayerPositionPacket( val flags: TeleportFlags, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSynchronizePlayerPositionPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSynchronizePlayerPositionPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSynchronizePlayerPositionPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSynchronizePlayerPositionPacket { val teleportId = buffer.readVarInt() val position = buffer.readVec3d()!! val velocity = buffer.readVec3d()!! diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSynchronizeVehiclePositionPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSynchronizeVehiclePositionPacket.kt index 0d5a090..f0c2b28 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSynchronizeVehiclePositionPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSynchronizeVehiclePositionPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt @@ -25,8 +25,8 @@ public data class ClientboundSynchronizeVehiclePositionPacket( val onGround: Boolean, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSynchronizeVehiclePositionPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSynchronizeVehiclePositionPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSynchronizeVehiclePositionPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSynchronizeVehiclePositionPacket { val entityId = buffer.readVarInt() val position = buffer.readVec3d()!! val velocityPosition = buffer.readVec3d()!! diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSystemChatMessagePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSystemChatMessagePacket.kt index a4256ca..3d9b992 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSystemChatMessagePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundSystemChatMessagePacket.kt @@ -11,13 +11,13 @@ import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.protocol.protocol.game.chat.TextComponent import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public data class ClientboundSystemChatMessagePacket(val content: TextComponent, val overlay: Boolean) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundSystemChatMessagePacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundSystemChatMessagePacket { + override fun encode(buffer: BytesBuffer, value: ClientboundSystemChatMessagePacket) {} + override fun decode(buffer: BytesBuffer): ClientboundSystemChatMessagePacket { val content = buffer.readTextComponent() val overlay = buffer.readBoolean() return ClientboundSystemChatMessagePacket(content, overlay) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundTagQueryResponsePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundTagQueryResponsePacket.kt index 237b601..ac1152d 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundTagQueryResponsePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundTagQueryResponsePacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt @@ -16,8 +16,8 @@ import cn.rtast.libmc.protocol.protocol.util.readNetworkNBTCompound public data class ClientboundTagQueryResponsePacket(val transactionId: Int, val nbt: NBTCompound) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundTagQueryResponsePacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundTagQueryResponsePacket { + override fun encode(buffer: BytesBuffer, value: ClientboundTagQueryResponsePacket) {} + override fun decode(buffer: BytesBuffer): ClientboundTagQueryResponsePacket { val transactionId = buffer.readVarInt() val nbt = buffer.readNetworkNBTCompound() return ClientboundTagQueryResponsePacket(transactionId, nbt) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundTeleportEntityPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundTeleportEntityPacket.kt index 37ed232..fafa5c2 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundTeleportEntityPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundTeleportEntityPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt @@ -29,8 +29,8 @@ public data class ClientboundTeleportEntityPacket( val onGround: Boolean, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundTeleportEntityPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundTeleportEntityPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundTeleportEntityPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundTeleportEntityPacket { val entityId = buffer.readVarInt() val position = buffer.readVec3d()!! val velocityPosition = buffer.readVec3d()!! diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundTestHighlightPositionPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundTestHighlightPositionPacket.kt index 461c07a..4343ad2 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundTestHighlightPositionPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundTestHighlightPositionPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.protocol.protocol.game.block.BlockPos @@ -16,8 +16,8 @@ import cn.rtast.libmc.protocol.protocol.game.block.readBlockPos public data class ClientboundTestHighlightPositionPacket(val absolute: BlockPos, val relative: BlockPos) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundTestHighlightPositionPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundTestHighlightPositionPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundTestHighlightPositionPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundTestHighlightPositionPacket { val abs = buffer.readBlockPos() val rel = buffer.readBlockPos() return ClientboundTestHighlightPositionPacket(abs, rel) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundTestInstanceBlockStatusPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundTestInstanceBlockStatusPacket.kt index 3107e77..28814a7 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundTestInstanceBlockStatusPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundTestInstanceBlockStatusPacket.kt @@ -12,7 +12,7 @@ import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readOptional import cn.rtast.libmc.protocol.protocol.game.chat.TextComponent import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public data class ClientboundTestInstanceBlockStatusPacket( val status: TextComponent, @@ -22,8 +22,8 @@ public data class ClientboundTestInstanceBlockStatusPacket( val sizeZ: Double?, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundTestInstanceBlockStatusPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundTestInstanceBlockStatusPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundTestInstanceBlockStatusPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundTestInstanceBlockStatusPacket { val status = buffer.readTextComponent() val hasSize = buffer.readBoolean() val sizeX = buffer.readOptional { readDouble() } // ? diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUnloadChunkPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUnloadChunkPacket.kt index b458202..b44031c 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUnloadChunkPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUnloadChunkPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket @@ -22,8 +22,8 @@ public data class ClientboundUnloadChunkPacket( val chunkX: Int, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundUnloadChunkPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundUnloadChunkPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundUnloadChunkPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundUnloadChunkPacket { val z = buffer.readInt() val x = buffer.readInt() return ClientboundUnloadChunkPacket(z, x) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUpdateAttributesPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUpdateAttributesPacket.kt index f2e8a6e..ac9f4fa 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUpdateAttributesPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUpdateAttributesPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readPrefixed @@ -22,8 +22,8 @@ public data class ClientboundUpdateAttributesPacket( val properties: List, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundUpdateAttributesPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundUpdateAttributesPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundUpdateAttributesPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundUpdateAttributesPacket { val entityId = buffer.readVarInt() val properties = buffer.readPrefixed { val attributeId = readVarInt() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUpdateEntityPositionAndRotationPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUpdateEntityPositionAndRotationPacket.kt index 932c3fc..b6d6aa1 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUpdateEntityPositionAndRotationPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUpdateEntityPositionAndRotationPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt @@ -24,8 +24,8 @@ public data class ClientboundUpdateEntityPositionAndRotationPacket( val onGround: Boolean, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundUpdateEntityPositionAndRotationPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundUpdateEntityPositionAndRotationPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundUpdateEntityPositionAndRotationPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundUpdateEntityPositionAndRotationPacket { val entityId = buffer.readVarInt() val x = buffer.readShort() val y = buffer.readShort() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUpdateEntityPositionPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUpdateEntityPositionPacket.kt index a4591df..69dc34f 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUpdateEntityPositionPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUpdateEntityPositionPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt @@ -20,8 +20,8 @@ public data class ClientboundUpdateEntityPositionPacket( val onGround: Boolean, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundUpdateEntityPositionPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundUpdateEntityPositionPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundUpdateEntityPositionPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundUpdateEntityPositionPacket { val entityId = buffer.readVarInt() val x = buffer.readShort() val y = buffer.readShort() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUpdateEntityRotationPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUpdateEntityRotationPacket.kt index 2826e4b..4d06a8d 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUpdateEntityRotationPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUpdateEntityRotationPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readVarInt @@ -21,8 +21,8 @@ public data class ClientboundUpdateEntityRotationPacket( val onGround: Boolean, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundUpdateEntityRotationPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundUpdateEntityRotationPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundUpdateEntityRotationPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundUpdateEntityRotationPacket { val entityId = buffer.readVarInt() val yaw = buffer.readAngle() val pitch = buffer.readAngle() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUpdateObjectivePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUpdateObjectivePacket.kt index e204fb0..1b35cba 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUpdateObjectivePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUpdateObjectivePacket.kt @@ -17,7 +17,7 @@ import cn.rtast.libmc.protocol.protocol.game.scoreboard.ObjectivePayload import cn.rtast.libmc.protocol.protocol.game.scoreboard.ObjectiveRenderType import cn.rtast.libmc.protocol.protocol.game.scoreboard.ScoreNumberFormat import cn.rtast.libmc.protocol.protocol.util.readNetworkNBTCompound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public data class ClientboundUpdateObjectivePacket( val objectiveName: String, @@ -25,8 +25,8 @@ public data class ClientboundUpdateObjectivePacket( val payload: ObjectivePayload?, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundUpdateObjectivePacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundUpdateObjectivePacket { + override fun encode(buffer: BytesBuffer, value: ClientboundUpdateObjectivePacket) {} + override fun decode(buffer: BytesBuffer): ClientboundUpdateObjectivePacket { val objectiveName = buffer.readMcString() val mode = buffer.readByte() val payload = when (mode.toInt()) { diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUpdateScorePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUpdateScorePacket.kt index 772b77d..aab3e99 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUpdateScorePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUpdateScorePacket.kt @@ -17,7 +17,7 @@ import cn.rtast.libmc.protocol.protocol.game.chat.TextComponent import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent import cn.rtast.libmc.protocol.protocol.game.scoreboard.ScoreNumberFormat import cn.rtast.libmc.protocol.protocol.util.readNetworkNBTCompound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public data class ClientboundUpdateScorePacket( val entityName: String, @@ -27,8 +27,8 @@ public data class ClientboundUpdateScorePacket( val numberFormat: ScoreNumberFormat?, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundUpdateScorePacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundUpdateScorePacket { + override fun encode(buffer: BytesBuffer, value: ClientboundUpdateScorePacket) {} + override fun decode(buffer: BytesBuffer): ClientboundUpdateScorePacket { val entityName = buffer.readMcString() val objectiveName = buffer.readMcString() val value = buffer.readVarInt() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUpdateSectionBlockPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUpdateSectionBlockPacket.kt index 12d1fbb..a8e4fa8 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUpdateSectionBlockPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundUpdateSectionBlockPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.readPrefixed @@ -20,8 +20,8 @@ public data class ClientboundUpdateSectionBlockPacket( val blockUpdates: List, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundUpdateSectionBlockPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundUpdateSectionBlockPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundUpdateSectionBlockPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundUpdateSectionBlockPacket { val rawSectionPos = buffer.readLong() val sectionPos = ChunkSectionPos.fromRaw(rawSectionPos) val blockUpdates = buffer.readPrefixed { diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundWaypointPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundWaypointPacket.kt index fadd1dc..2659384 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundWaypointPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/clientbound/ClientboundWaypointPacket.kt @@ -15,7 +15,7 @@ import cn.rtast.libmc.protocol.protocol.game.readIdentifier import cn.rtast.libmc.protocol.protocol.game.world.waypoint.WaypointColor import cn.rtast.libmc.protocol.protocol.game.world.waypoint.WaypointData import cn.rtast.libmc.protocol.protocol.game.world.waypoint.WaypointOperation -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import kotlin.uuid.Uuid public data class ClientboundWaypointPacket( @@ -26,8 +26,8 @@ public data class ClientboundWaypointPacket( val waypointData: WaypointData, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundWaypointPacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundWaypointPacket { + override fun encode(buffer: BytesBuffer, value: ClientboundWaypointPacket) {} + override fun decode(buffer: BytesBuffer): ClientboundWaypointPacket { val operation = WaypointOperation.fromID(buffer.readVarInt()) val identifier = buffer.readEither( readLeft = { readUuid() }, diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundAcceptTeleportationPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundAcceptTeleportationPacket.kt index f294ca6..01704ae 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundAcceptTeleportationPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundAcceptTeleportationPacket.kt @@ -7,18 +7,18 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeVarInt public data class ServerboundAcceptTeleportationPacket(val teleportId: Int) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundAcceptTeleportationPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundAcceptTeleportationPacket) { buffer.writeVarInt(value.teleportId) } - override suspend fun decode(buffer: BytesBuffer): ServerboundAcceptTeleportationPacket = + override fun decode(buffer: BytesBuffer): ServerboundAcceptTeleportationPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundAcknowledgeChatMessagePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundAcknowledgeChatMessagePacket.kt index 6f4a739..19e6c49 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundAcknowledgeChatMessagePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundAcknowledgeChatMessagePacket.kt @@ -7,18 +7,18 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.writeVarInt public data class ServerboundAcknowledgeChatMessagePacket(val messageCount: Int) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundAcknowledgeChatMessagePacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundAcknowledgeChatMessagePacket) { buffer.writeVarInt(value.messageCount) } - override suspend fun decode(buffer: BytesBuffer): ServerboundAcknowledgeChatMessagePacket = + override fun decode(buffer: BytesBuffer): ServerboundAcknowledgeChatMessagePacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundAttackActionPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundAttackActionPacket.kt index 3a8bc04..5fd3e2d 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundAttackActionPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundAttackActionPacket.kt @@ -7,18 +7,18 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeVarInt public data class ServerboundAttackActionPacket(val entityId: Int) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundAttackActionPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundAttackActionPacket) { buffer.writeVarInt(value.entityId) } - override suspend fun decode(buffer: BytesBuffer): ServerboundAttackActionPacket = + override fun decode(buffer: BytesBuffer): ServerboundAttackActionPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundBundleItemSelectedPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundBundleItemSelectedPacket.kt index e1b2483..94cccee 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundBundleItemSelectedPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundBundleItemSelectedPacket.kt @@ -7,19 +7,19 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeVarInt public data class ServerboundBundleItemSelectedPacket(val slotOfBundle: Int, val slotInBundle: Int) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundBundleItemSelectedPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundBundleItemSelectedPacket) { buffer.writeVarInt(value.slotOfBundle) buffer.writeVarInt(value.slotInBundle) } - override suspend fun decode(buffer: BytesBuffer): ServerboundBundleItemSelectedPacket = + override fun decode(buffer: BytesBuffer): ServerboundBundleItemSelectedPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundChangeDifficultyPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundChangeDifficultyPacket.kt index 3dd9c41..ac65d95 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundChangeDifficultyPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundChangeDifficultyPacket.kt @@ -7,18 +7,18 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.protocol.protocol.game.registry.GameDifficulty public data class ServerboundChangeDifficultyPacket(val newDifficulty: GameDifficulty) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundChangeDifficultyPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundChangeDifficultyPacket) { buffer.writeByte(value.newDifficulty.id) } - override suspend fun decode(buffer: BytesBuffer): ServerboundChangeDifficultyPacket = + override fun decode(buffer: BytesBuffer): ServerboundChangeDifficultyPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundChangeGameModePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundChangeGameModePacket.kt index 9881946..a9a29da 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundChangeGameModePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundChangeGameModePacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeVarInt @@ -15,12 +15,12 @@ import cn.rtast.libmc.protocol.protocol.game.GameMode public data class ServerboundChangeGameModePacket(val gameMode: GameMode) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundChangeGameModePacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundChangeGameModePacket) { require(value.gameMode != GameMode.Unknown && value.gameMode != GameMode.Undefined) buffer.writeVarInt(value.gameMode.id.toInt()) } - override suspend fun decode(buffer: BytesBuffer): ServerboundChangeGameModePacket = + override fun decode(buffer: BytesBuffer): ServerboundChangeGameModePacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundChatCommandPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundChatCommandPacket.kt index a886089..44e40fc 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundChatCommandPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundChatCommandPacket.kt @@ -7,18 +7,18 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeMcString public data class ServerboundChatCommandPacket(val command: String) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundChatCommandPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundChatCommandPacket) { buffer.writeMcString(value.command.removePrefix("/")) } - override suspend fun decode(buffer: BytesBuffer): ServerboundChatCommandPacket = + override fun decode(buffer: BytesBuffer): ServerboundChatCommandPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundChatMessagePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundChatMessagePacket.kt index 5fe8614..ffc146d 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundChatMessagePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundChatMessagePacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeMcString @@ -23,7 +23,7 @@ public data class ServerboundChatMessagePacket( val checksum: Byte, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundChatMessagePacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundChatMessagePacket) { buffer.writeMcString(value.message) buffer.writeLong(value.timestamp) buffer.writeLong(value.salt) @@ -35,7 +35,7 @@ public data class ServerboundChatMessagePacket( buffer.writeByte(value.checksum) } - override suspend fun decode(buffer: BytesBuffer): ServerboundChatMessagePacket = + override fun decode(buffer: BytesBuffer): ServerboundChatMessagePacket = throw UnsupportedOperationException() } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundChunkBatchReceivedPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundChunkBatchReceivedPacket.kt index 8e51a26..38f9079 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundChunkBatchReceivedPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundChunkBatchReceivedPacket.kt @@ -7,17 +7,17 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket public data class ServerboundChunkBatchReceivedPacket(val chunksPerTick: Float) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundChunkBatchReceivedPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundChunkBatchReceivedPacket) { buffer.writeFloat(value.chunksPerTick) } - override suspend fun decode(buffer: BytesBuffer): ServerboundChunkBatchReceivedPacket = + override fun decode(buffer: BytesBuffer): ServerboundChunkBatchReceivedPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundClientActionPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundClientActionPacket.kt index 3abee1d..e522f42 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundClientActionPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundClientActionPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeVarInt @@ -15,11 +15,11 @@ import cn.rtast.libmc.protocol.protocol.game.registry.ClientAction public data class ServerboundClientActionPacket(val action: ClientAction) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundClientActionPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundClientActionPacket) { buffer.writeVarInt(value.action.actionID) } - override suspend fun decode(buffer: BytesBuffer): ServerboundClientActionPacket = + override fun decode(buffer: BytesBuffer): ServerboundClientActionPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundClientCommandPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundClientCommandPacket.kt index a6b8efb..ba4de2c 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundClientCommandPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundClientCommandPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeVarInt @@ -15,11 +15,11 @@ import cn.rtast.libmc.protocol.protocol.game.player.action.PlayerActionStatus public data class ServerboundClientCommandPacket(val action: PlayerActionStatus) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundClientCommandPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundClientCommandPacket) { buffer.writeVarInt(value.action.id) } - override suspend fun decode(buffer: BytesBuffer): ServerboundClientCommandPacket = + override fun decode(buffer: BytesBuffer): ServerboundClientCommandPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundClientInformationPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundClientInformationPacket.kt index 398b015..bce61bd 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundClientInformationPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundClientInformationPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeMcString @@ -26,7 +26,7 @@ public data class ServerboundClientInformationPacket( val viewDistance: Int, val chatMode: ChatMode, /** - * “Colors” multiplayer setting. The vanilla server stores this value but does nothing with it (see MC-64867). + * “Colors?multiplayer setting. The vanilla server stores this value but does nothing with it (see MC-64867). * Some third-party servers disable all coloring in chat and system messages when it is false. */ val chatColors: Boolean, @@ -49,7 +49,7 @@ public data class ServerboundClientInformationPacket( val particleStatus: ParticleStatus, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundClientInformationPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundClientInformationPacket) { buffer.writeMcString(value.locale) buffer.writeByte(value.viewDistance.toByte()) buffer.writeVarInt(value.chatMode.id) @@ -61,7 +61,7 @@ public data class ServerboundClientInformationPacket( buffer.writeVarInt(value.particleStatus.id) } - override suspend fun decode(buffer: BytesBuffer): ServerboundClientInformationPacket = + override fun decode(buffer: BytesBuffer): ServerboundClientInformationPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundClientTickEndPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundClientTickEndPacket.kt index 5fac639..4b91f2e 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundClientTickEndPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundClientTickEndPacket.kt @@ -7,11 +7,11 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket public data object ServerboundClientTickEndPacket : MinecraftPacket, PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundClientTickEndPacket) {} - override suspend fun decode(buffer: BytesBuffer): ServerboundClientTickEndPacket = throw UnsupportedOperationException() + override fun encode(buffer: BytesBuffer, value: ServerboundClientTickEndPacket) {} + override fun decode(buffer: BytesBuffer): ServerboundClientTickEndPacket = throw UnsupportedOperationException() } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundCommandSuggestionRequestPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundCommandSuggestionRequestPacket.kt index 211f3b2..3152e3e 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundCommandSuggestionRequestPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundCommandSuggestionRequestPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeMcString @@ -24,12 +24,12 @@ public data class ServerboundCommandSuggestionRequestPacket( val text: String, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundCommandSuggestionRequestPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundCommandSuggestionRequestPacket) { buffer.writeVarInt(value.transactionId) buffer.writeMcString(value.text) } - override suspend fun decode(buffer: BytesBuffer): ServerboundCommandSuggestionRequestPacket = + override fun decode(buffer: BytesBuffer): ServerboundCommandSuggestionRequestPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundConfigurationAcknowledgedPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundConfigurationAcknowledgedPacket.kt index 7d7aebb..0b4d180 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundConfigurationAcknowledgedPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundConfigurationAcknowledgedPacket.kt @@ -7,14 +7,14 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket public object ServerboundConfigurationAcknowledgedPacket : MinecraftPacket, PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundConfigurationAcknowledgedPacket) {} - override suspend fun decode(buffer: BytesBuffer): ServerboundConfigurationAcknowledgedPacket { + override fun encode(buffer: BytesBuffer, value: ServerboundConfigurationAcknowledgedPacket) {} + override fun decode(buffer: BytesBuffer): ServerboundConfigurationAcknowledgedPacket { return ServerboundConfigurationAcknowledgedPacket } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundContainerClickButtonPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundContainerClickButtonPacket.kt index afafae4..284f154 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundContainerClickButtonPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundContainerClickButtonPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeVarInt @@ -19,12 +19,12 @@ public data class ServerboundContainerClickButtonPacket(val windowId: Int, val b public constructor(windowId: Int, button: LecternButton) : this(windowId, button.id) internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundContainerClickButtonPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundContainerClickButtonPacket) { buffer.writeVarInt(value.windowId) buffer.writeVarInt(value.buttonId) } - override suspend fun decode(buffer: BytesBuffer): ServerboundContainerClickButtonPacket = + override fun decode(buffer: BytesBuffer): ServerboundContainerClickButtonPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundContainerClosePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundContainerClosePacket.kt index fb99d33..dda47c3 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundContainerClosePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundContainerClosePacket.kt @@ -7,18 +7,18 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeVarInt public data class ServerboundContainerClosePacket(val windowId: Int) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundContainerClosePacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundContainerClosePacket) { buffer.writeVarInt(value.windowId) } - override suspend fun decode(buffer: BytesBuffer): ServerboundContainerClosePacket = + override fun decode(buffer: BytesBuffer): ServerboundContainerClosePacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundCustomClickActionPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundCustomClickActionPacket.kt index 236e369..1b50c8b 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundCustomClickActionPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundCustomClickActionPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeVarInt @@ -25,13 +25,13 @@ public data class ServerboundCustomClickActionPacket( val payload: NBTCompound, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundCustomClickActionPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundCustomClickActionPacket) { buffer.writeIdentifier(value.id) buffer.writeVarInt(value.size) buffer.writeNetworkNBTCompound(value.payload) } - override suspend fun decode(buffer: BytesBuffer): ServerboundCustomClickActionPacket = + override fun decode(buffer: BytesBuffer): ServerboundCustomClickActionPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundCustomPayloadPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundCustomPayloadPacket.kt index ef9c3f2..3342e96 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundCustomPayloadPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundCustomPayloadPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.protocol.protocol.game.Identifier @@ -15,12 +15,12 @@ import cn.rtast.libmc.protocol.protocol.game.writeIdentifier public data class ServerboundCustomPayloadPacket(val channel: Identifier, val data: ByteArray) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundCustomPayloadPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundCustomPayloadPacket) { buffer.writeIdentifier(value.channel) buffer.writeBytes(value.data) // ? } - override suspend fun decode(buffer: BytesBuffer): ServerboundCustomPayloadPacket = + override fun decode(buffer: BytesBuffer): ServerboundCustomPayloadPacket = throw UnsupportedOperationException() } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundEditBookPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundEditBookPacket.kt index af5ce83..c77476b 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundEditBookPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundEditBookPacket.kt @@ -12,12 +12,12 @@ import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.writeMcString import cn.rtast.libmc.primitives.writePrefixedStringArray import cn.rtast.libmc.primitives.writeVarInt -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public data class ServerboundEditBookPacket(val slot: Int, val entries: List, val title: String?) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundEditBookPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundEditBookPacket) { buffer.writeVarInt(value.slot) buffer.writePrefixedStringArray(value.entries) val hasTitle = value.title != null @@ -25,7 +25,7 @@ public data class ServerboundEditBookPacket(val slot: Int, val entries: List { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundInteractPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundInteractPacket) { buffer.writeVarInt(value.entityId) buffer.writeVarInt(value.hand.id) buffer.writeLpVec3(value.targetOffset) buffer.writeBoolean(value.isSneaking) } - override suspend fun decode(buffer: BytesBuffer): ServerboundInteractPacket = + override fun decode(buffer: BytesBuffer): ServerboundInteractPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundJigsawGeneratePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundJigsawGeneratePacket.kt index ae3555c..8c8afe6 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundJigsawGeneratePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundJigsawGeneratePacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeVarInt @@ -23,13 +23,13 @@ public data class ServerboundJigsawGeneratePacket( val keepJigsaw: Boolean, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundJigsawGeneratePacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundJigsawGeneratePacket) { buffer.writeBlockPos(value.location) buffer.writeVarInt(value.levels) buffer.writeBoolean(value.keepJigsaw) } - override suspend fun decode(buffer: BytesBuffer): ServerboundJigsawGeneratePacket = + override fun decode(buffer: BytesBuffer): ServerboundJigsawGeneratePacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundKeepAlivePlayPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundKeepAlivePlayPacket.kt index 9c38eb6..69da7e5 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundKeepAlivePlayPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundKeepAlivePlayPacket.kt @@ -7,17 +7,17 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket public data class ServerboundKeepAlivePlayPacket(val id: Long) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundKeepAlivePlayPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundKeepAlivePlayPacket) { buffer.writeLong(value.id) } - override suspend fun decode(buffer: BytesBuffer): ServerboundKeepAlivePlayPacket = + override fun decode(buffer: BytesBuffer): ServerboundKeepAlivePlayPacket = ServerboundKeepAlivePlayPacket(buffer.readLong()) } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundLockDifficultyPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundLockDifficultyPacket.kt index 82d3a89..afd7ec5 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundLockDifficultyPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundLockDifficultyPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket @@ -18,11 +18,11 @@ import cn.rtast.libmc.packet.MinecraftPacket */ public data class ServerboundLockDifficultyPacket(val locked: Boolean) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundLockDifficultyPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundLockDifficultyPacket) { buffer.writeBoolean(value.locked) } - override suspend fun decode(buffer: BytesBuffer): ServerboundLockDifficultyPacket = + override fun decode(buffer: BytesBuffer): ServerboundLockDifficultyPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundMoveVehiclePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundMoveVehiclePacket.kt index ce299d5..4386bb8 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundMoveVehiclePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundMoveVehiclePacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket @@ -24,7 +24,7 @@ public data class ServerboundMoveVehiclePacket( // val onGround: Boolean ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundMoveVehiclePacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundMoveVehiclePacket) { buffer.writeDouble(value.x) buffer.writeDouble(value.y) buffer.writeDouble(value.z) @@ -32,6 +32,6 @@ public data class ServerboundMoveVehiclePacket( buffer.writeFloat(value.pitch) } - override suspend fun decode(buffer: BytesBuffer): ServerboundMoveVehiclePacket = throw UnsupportedOperationException() + override fun decode(buffer: BytesBuffer): ServerboundMoveVehiclePacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPaddleBoatPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPaddleBoatPacket.kt index b5ccbcb..643cfe2 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPaddleBoatPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPaddleBoatPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket @@ -25,12 +25,12 @@ public data class ServerboundPaddleBoatPacket( val rightPaddleTurning: Boolean, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundPaddleBoatPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundPaddleBoatPacket) { buffer.writeBoolean(value.leftPaddleTurning) buffer.writeBoolean(value.rightPaddleTurning) } - override suspend fun decode(buffer: BytesBuffer): ServerboundPaddleBoatPacket = + override fun decode(buffer: BytesBuffer): ServerboundPaddleBoatPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPickItemFromBlockPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPickItemFromBlockPacket.kt index d90bd0e..9ee6b02 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPickItemFromBlockPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPickItemFromBlockPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.protocol.protocol.game.block.BlockPos @@ -22,12 +22,12 @@ public data class ServerboundPickItemFromBlockPacket( val includeData: Boolean, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundPickItemFromBlockPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundPickItemFromBlockPacket) { buffer.writeBlockPos(value.location) buffer.writeBoolean(value.includeData) } - override suspend fun decode(buffer: BytesBuffer): ServerboundPickItemFromBlockPacket = + override fun decode(buffer: BytesBuffer): ServerboundPickItemFromBlockPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPickItemFromEntityPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPickItemFromEntityPacket.kt index f4bce70..b75dfb6 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPickItemFromEntityPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPickItemFromEntityPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeVarInt @@ -20,12 +20,12 @@ public data class ServerboundPickItemFromEntityPacket( val includeData: Boolean, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundPickItemFromEntityPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundPickItemFromEntityPacket) { buffer.writeVarInt(value.entityId) buffer.writeBoolean(value.includeData) } - override suspend fun decode(buffer: BytesBuffer): ServerboundPickItemFromEntityPacket = + override fun decode(buffer: BytesBuffer): ServerboundPickItemFromEntityPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPlaceRecipePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPlaceRecipePacket.kt index dba36cf..711cab5 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPlaceRecipePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPlaceRecipePacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeVarInt @@ -18,13 +18,13 @@ public data class ServerboundPlaceRecipePacket( val makeAll: Boolean, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundPlaceRecipePacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundPlaceRecipePacket) { buffer.writeVarInt(value.windowId) buffer.writeVarInt(value.recipeId) buffer.writeBoolean(value.makeAll) } - override suspend fun decode(buffer: BytesBuffer): ServerboundPlaceRecipePacket = + override fun decode(buffer: BytesBuffer): ServerboundPlaceRecipePacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPlayerAbilitiesPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPlayerAbilitiesPacket.kt index 8337236..b939668 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPlayerAbilitiesPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPlayerAbilitiesPacket.kt @@ -7,18 +7,18 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.protocol.protocol.game.player.PlayerAbilities public data class ServerboundPlayerAbilitiesPacket(val flags: PlayerAbilities) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundPlayerAbilitiesPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundPlayerAbilitiesPacket) { buffer.writeByte(value.flags.mask()) } - override suspend fun decode(buffer: BytesBuffer): ServerboundPlayerAbilitiesPacket = + override fun decode(buffer: BytesBuffer): ServerboundPlayerAbilitiesPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPlayerActionPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPlayerActionPacket.kt index 1170d5e..7e3b129 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPlayerActionPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPlayerActionPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeVarInt @@ -30,14 +30,14 @@ public data class ServerboundPlayerActionPacket( val sequence: Int, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundPlayerActionPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundPlayerActionPacket) { buffer.writeVarInt(value.status.id) buffer.writeBlockPos(value.location) buffer.writeByte(value.blockFace.id) buffer.writeVarInt(value.sequence) } - override suspend fun decode(buffer: BytesBuffer): ServerboundPlayerActionPacket = + override fun decode(buffer: BytesBuffer): ServerboundPlayerActionPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPlayerCommandPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPlayerCommandPacket.kt index 1aef918..f726e53 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPlayerCommandPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPlayerCommandPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeVarInt @@ -17,19 +17,19 @@ public data class ServerboundPlayerCommandPacket( val entityId: Int, val action: PlayerCommandAction, /** - * Only used by the “start jump with horse” action, + * Only used by the “start jump with horse?action, * in which case it ranges from 0 to 100. In all other cases it is 0 */ val jumpBoost: Int, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundPlayerCommandPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundPlayerCommandPacket) { buffer.writeVarInt(value.entityId) buffer.writeVarInt(value.action.id) buffer.writeVarInt(value.jumpBoost) } - override suspend fun decode(buffer: BytesBuffer): ServerboundPlayerCommandPacket = + override fun decode(buffer: BytesBuffer): ServerboundPlayerCommandPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPlayerInputPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPlayerInputPacket.kt index 8c88a6d..acbdb6c 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPlayerInputPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPlayerInputPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket @@ -29,7 +29,7 @@ public data class ServerboundPlayerInputPacket( private const val FLAG_SNEAK = 0x20 private const val FLAG_SPRINT = 0x40 - override suspend fun encode(buffer: BytesBuffer, value: ServerboundPlayerInputPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundPlayerInputPacket) { var flags = 0 if (value.forward) flags = flags or FLAG_FORWARD if (value.backward) flags = flags or FLAG_BACKWARD @@ -41,7 +41,7 @@ public data class ServerboundPlayerInputPacket( buffer.writeByte(flags.toByte()) } - override suspend fun decode(buffer: BytesBuffer): ServerboundPlayerInputPacket = + override fun decode(buffer: BytesBuffer): ServerboundPlayerInputPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPlayerLoadedPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPlayerLoadedPacket.kt index 546220d..f92a375 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPlayerLoadedPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPlayerLoadedPacket.kt @@ -7,12 +7,12 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec public data object ServerboundPlayerLoadedPacket : MinecraftPacket, PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundPlayerLoadedPacket) {} - override suspend fun decode(buffer: BytesBuffer): ServerboundPlayerLoadedPacket = + override fun encode(buffer: BytesBuffer, value: ServerboundPlayerLoadedPacket) {} + override fun decode(buffer: BytesBuffer): ServerboundPlayerLoadedPacket = throw UnsupportedOperationException() } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPongPlayPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPongPlayPacket.kt index 8ec42d8..68affbd 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPongPlayPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundPongPlayPacket.kt @@ -6,17 +6,17 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket public data class ServerboundPongPlayPacket(val id: Int) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundPongPlayPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundPongPlayPacket) { buffer.writeInt(value.id) } - override suspend fun decode(buffer: BytesBuffer): ServerboundPongPlayPacket = + override fun decode(buffer: BytesBuffer): ServerboundPongPlayPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundQueryBlockEntityTagPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundQueryBlockEntityTagPacket.kt index d6b0c52..5eb88c3 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundQueryBlockEntityTagPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundQueryBlockEntityTagPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeVarInt @@ -19,11 +19,11 @@ import cn.rtast.libmc.protocol.protocol.game.block.BlockPos public data class ServerboundQueryBlockEntityTagPacket(val transactionId: Int, val location: BlockPos) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundQueryBlockEntityTagPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundQueryBlockEntityTagPacket) { buffer.writeVarInt(value.transactionId) } - override suspend fun decode(buffer: BytesBuffer): ServerboundQueryBlockEntityTagPacket = + override fun decode(buffer: BytesBuffer): ServerboundQueryBlockEntityTagPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundQueryEntityTagPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundQueryEntityTagPacket.kt index f1c181e..e9c0ed5 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundQueryEntityTagPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundQueryEntityTagPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeVarInt @@ -20,12 +20,12 @@ public data class ServerboundQueryEntityTagPacket( val entityId: Int, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundQueryEntityTagPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundQueryEntityTagPacket) { buffer.writeVarInt(value.transactionId) buffer.writeVarInt(value.entityId) } - override suspend fun decode(buffer: BytesBuffer): ServerboundQueryEntityTagPacket = + override fun decode(buffer: BytesBuffer): ServerboundQueryEntityTagPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundRecipeBookChangeSettingsPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundRecipeBookChangeSettingsPacket.kt index 7f20f9f..b2f23aa 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundRecipeBookChangeSettingsPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundRecipeBookChangeSettingsPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeVarInt @@ -19,13 +19,13 @@ public data class ServerboundRecipeBookChangeSettingsPacket( val filterActive: Boolean, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundRecipeBookChangeSettingsPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundRecipeBookChangeSettingsPacket) { buffer.writeVarInt(value.bookId.id) buffer.writeBoolean(value.bookOpen) buffer.writeBoolean(value.filterActive) } - override suspend fun decode(buffer: BytesBuffer): ServerboundRecipeBookChangeSettingsPacket = + override fun decode(buffer: BytesBuffer): ServerboundRecipeBookChangeSettingsPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundRecipeBookSeenRecipePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundRecipeBookSeenRecipePacket.kt index 4eff46e..0d803f2 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundRecipeBookSeenRecipePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundRecipeBookSeenRecipePacket.kt @@ -7,18 +7,18 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeVarInt public data class ServerboundRecipeBookSeenRecipePacket(val recipeId: Int) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundRecipeBookSeenRecipePacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundRecipeBookSeenRecipePacket) { buffer.writeVarInt(value.recipeId) } - override suspend fun decode(buffer: BytesBuffer): ServerboundRecipeBookSeenRecipePacket = + override fun decode(buffer: BytesBuffer): ServerboundRecipeBookSeenRecipePacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundRenameItemPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundRenameItemPacket.kt index 155b898..b0235eb 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundRenameItemPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundRenameItemPacket.kt @@ -7,19 +7,19 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeMcString public data class ServerboundRenameItemPacket(val itemName: String) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundRenameItemPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundRenameItemPacket) { require(value.itemName.length < 50) buffer.writeMcString(value.itemName) } - override suspend fun decode(buffer: BytesBuffer): ServerboundRenameItemPacket = + override fun decode(buffer: BytesBuffer): ServerboundRenameItemPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundResourcePackResponsePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundResourcePackResponsePacket.kt index e795aa5..d3eefff 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundResourcePackResponsePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundResourcePackResponsePacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeUuid @@ -20,12 +20,12 @@ public data class ServerboundResourcePackResponsePacket( val result: ResourcePackResult, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundResourcePackResponsePacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundResourcePackResponsePacket) { buffer.writeUuid(value.uuid) buffer.writeVarInt(value.result.id) } - override suspend fun decode(buffer: BytesBuffer): ServerboundResourcePackResponsePacket = + override fun decode(buffer: BytesBuffer): ServerboundResourcePackResponsePacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSeenAdvancementsPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSeenAdvancementsPacket.kt index 5ecf060..b1ac519 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSeenAdvancementsPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSeenAdvancementsPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeVarInt @@ -18,7 +18,7 @@ import cn.rtast.libmc.protocol.protocol.game.writeIdentifier public data class ServerboundSeenAdvancementsPacket(val action: AdvancementAction, val tabId: Identifier?) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundSeenAdvancementsPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundSeenAdvancementsPacket) { buffer.writeVarInt(value.action.id) if (value.action == AdvancementAction.OPENED_TAB) { requireNotNull(value.tabId) { "tabId must not be null when action is OPENED_TAB" } @@ -26,7 +26,7 @@ public data class ServerboundSeenAdvancementsPacket(val action: AdvancementActio } else require(value.tabId == null) { "tabId must be null when action is CLOSED_SCREEN" } } - override suspend fun decode(buffer: BytesBuffer): ServerboundSeenAdvancementsPacket = + override fun decode(buffer: BytesBuffer): ServerboundSeenAdvancementsPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSelectTradePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSelectTradePacket.kt index 2b11ddf..d7b19bc 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSelectTradePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSelectTradePacket.kt @@ -7,18 +7,18 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeVarInt public data class ServerboundSelectTradePacket(val selectedSlot: Int) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundSelectTradePacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundSelectTradePacket) { buffer.writeVarInt(value.selectedSlot) } - override suspend fun decode(buffer: BytesBuffer): ServerboundSelectTradePacket = + override fun decode(buffer: BytesBuffer): ServerboundSelectTradePacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetBeaconPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetBeaconPacket.kt index eee8294..6b87978 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetBeaconPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetBeaconPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeVarInt @@ -17,14 +17,14 @@ import cn.rtast.libmc.primitives.writeVarInt */ public data class ServerboundSetBeaconPacket(val primaryEffect: Int?, val secondaryEffect: Int?) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundSetBeaconPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundSetBeaconPacket) { buffer.writeBoolean(value.primaryEffect != null) if (value.primaryEffect != null) buffer.writeVarInt(value.primaryEffect) buffer.writeBoolean(value.secondaryEffect != null) if (value.secondaryEffect != null) buffer.writeVarInt(value.secondaryEffect) } - override suspend fun decode(buffer: BytesBuffer): ServerboundSetBeaconPacket = + override fun decode(buffer: BytesBuffer): ServerboundSetBeaconPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetCarriedItemPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetCarriedItemPacket.kt index 0e9b4bd..f799da2 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetCarriedItemPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetCarriedItemPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket @@ -15,12 +15,12 @@ public data class ServerboundSetCarriedItemPacket(val slot: Short) : MinecraftPa internal companion object Codec : PacketCodec { private const val MIN_SLOT: Short = 0 private const val MAX_SLOT: Short = 8 - override suspend fun encode(buffer: BytesBuffer, value: ServerboundSetCarriedItemPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundSetCarriedItemPacket) { require(value.slot in MIN_SLOT..MAX_SLOT) { "Carried item slot ${value.slot} must be between $MIN_SLOT and $MAX_SLOT" } buffer.writeShort(value.slot) } - override suspend fun decode(buffer: BytesBuffer): ServerboundSetCarriedItemPacket = + override fun decode(buffer: BytesBuffer): ServerboundSetCarriedItemPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetCommandBlockPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetCommandBlockPacket.kt index 02a7324..d602b15 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetCommandBlockPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetCommandBlockPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeMcString @@ -29,7 +29,7 @@ public data class ServerboundSetCommandBlockPacket( private const val FLAG_CONDITIONAL = 0x02 private const val FLAG_AUTOMATIC = 0x04 - override suspend fun encode(buffer: BytesBuffer, value: ServerboundSetCommandBlockPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundSetCommandBlockPacket) { var flags = 0 if (value.trackOutput) flags = flags or FLAG_TRACK_OUTPUT if (value.conditional) flags = flags or FLAG_CONDITIONAL @@ -40,7 +40,7 @@ public data class ServerboundSetCommandBlockPacket( buffer.writeByte(flags.toByte()) } - override suspend fun decode(buffer: BytesBuffer): ServerboundSetCommandBlockPacket = + override fun decode(buffer: BytesBuffer): ServerboundSetCommandBlockPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetCommandMinecartPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetCommandMinecartPacket.kt index 4e72e3a..4e65fa9 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetCommandMinecartPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetCommandMinecartPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeMcString @@ -22,13 +22,13 @@ public data class ServerboundSetCommandMinecartPacket( val trackOutput: Boolean, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundSetCommandMinecartPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundSetCommandMinecartPacket) { buffer.writeVarInt(value.entityId) buffer.writeMcString(value.command) buffer.writeBoolean(value.trackOutput) } - override suspend fun decode(buffer: BytesBuffer): ServerboundSetCommandMinecartPacket = + override fun decode(buffer: BytesBuffer): ServerboundSetCommandMinecartPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetGameRulePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetGameRulePacket.kt index fc2b724..56c35f2 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetGameRulePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetGameRulePacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writePrefixed @@ -16,11 +16,11 @@ import cn.rtast.libmc.protocol.protocol.game.gamerule.writeGameRule public data class ServerboundSetGameRulePacket(val rules: List) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundSetGameRulePacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundSetGameRulePacket) { buffer.writePrefixed(value.rules) { rule -> writeGameRule(rule) } } - override suspend fun decode(buffer: BytesBuffer): ServerboundSetGameRulePacket = + override fun decode(buffer: BytesBuffer): ServerboundSetGameRulePacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetJigsawBlockPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetJigsawBlockPacket.kt index 7450a56..bd86007 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetJigsawBlockPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetJigsawBlockPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeMcString @@ -28,7 +28,7 @@ public data class ServerboundSetJigsawBlockPacket( val placementPriority: Int, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundSetJigsawBlockPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundSetJigsawBlockPacket) { buffer.writeBlockPos(value.location) buffer.writeIdentifier(value.name) buffer.writeIdentifier(value.target) @@ -39,7 +39,7 @@ public data class ServerboundSetJigsawBlockPacket( buffer.writeVarInt(value.placementPriority) } - override suspend fun decode(buffer: BytesBuffer): ServerboundSetJigsawBlockPacket = + override fun decode(buffer: BytesBuffer): ServerboundSetJigsawBlockPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetPlayerMovementFlagPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetPlayerMovementFlagPacket.kt index 583942e..62a7bc1 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetPlayerMovementFlagPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetPlayerMovementFlagPacket.kt @@ -7,18 +7,18 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.protocol.protocol.game.player.PlayerPositionFlag public data class ServerboundSetPlayerMovementFlagPacket(val flags: PlayerPositionFlag) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundSetPlayerMovementFlagPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundSetPlayerMovementFlagPacket) { buffer.writeByte(value.flags.flag) } - override suspend fun decode(buffer: BytesBuffer): ServerboundSetPlayerMovementFlagPacket = + override fun decode(buffer: BytesBuffer): ServerboundSetPlayerMovementFlagPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetPlayerPositionAndRotationPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetPlayerPositionAndRotationPacket.kt index efe41bb..a13e118 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetPlayerPositionAndRotationPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetPlayerPositionAndRotationPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.protocol.protocol.game.player.PlayerPositionFlag @@ -30,7 +30,7 @@ public data class ServerboundSetPlayerPositionAndRotationPacket( val flags: PlayerPositionFlag, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundSetPlayerPositionAndRotationPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundSetPlayerPositionAndRotationPacket) { buffer.writeDouble(value.x) buffer.writeDouble(value.feetY) buffer.writeDouble(value.z) @@ -39,7 +39,7 @@ public data class ServerboundSetPlayerPositionAndRotationPacket( buffer.writeByte(value.flags.flag) } - override suspend fun decode(buffer: BytesBuffer): ServerboundSetPlayerPositionAndRotationPacket = + override fun decode(buffer: BytesBuffer): ServerboundSetPlayerPositionAndRotationPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetPlayerPositionPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetPlayerPositionPacket.kt index 94420e4..edd4ac2 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetPlayerPositionPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetPlayerPositionPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.protocol.protocol.game.player.PlayerPositionFlag @@ -19,14 +19,14 @@ public data class ServerboundSetPlayerPositionPacket( val flags: PlayerPositionFlag, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundSetPlayerPositionPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundSetPlayerPositionPacket) { buffer.writeDouble(value.x) buffer.writeDouble(value.feetY) buffer.writeDouble(value.z) buffer.writeByte(value.flags.flag) } - override suspend fun decode(buffer: BytesBuffer): ServerboundSetPlayerPositionPacket = + override fun decode(buffer: BytesBuffer): ServerboundSetPlayerPositionPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetPlayerRotationPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetPlayerRotationPacket.kt index 97db5d9..975626b 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetPlayerRotationPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetPlayerRotationPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.protocol.protocol.game.player.PlayerPositionFlag @@ -18,13 +18,13 @@ public data class ServerboundSetPlayerRotationPacket( val flags: PlayerPositionFlag, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundSetPlayerRotationPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundSetPlayerRotationPacket) { buffer.writeFloat(value.yaw) buffer.writeFloat(value.pitch) buffer.writeByte(value.flags.flag) } - override suspend fun decode(buffer: BytesBuffer): ServerboundSetPlayerRotationPacket = + override fun decode(buffer: BytesBuffer): ServerboundSetPlayerRotationPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetStructureBlockPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetStructureBlockPacket.kt index 295eab7..6ed122b 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetStructureBlockPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetStructureBlockPacket.kt @@ -12,7 +12,7 @@ import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.writeMcString import cn.rtast.libmc.primitives.writeVarInt import cn.rtast.libmc.primitives.writeVarLong -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.protocol.protocol.game.block.* public data class ServerboundSetStructureBlockPacket( @@ -60,7 +60,7 @@ public data class ServerboundSetStructureBlockPacket( private const val FLAG_SHOW_BOUNDING_BOX = 0x04 private const val FLAG_STRICT_PLACEMENT = 0x08 - override suspend fun encode(buffer: BytesBuffer, value: ServerboundSetStructureBlockPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundSetStructureBlockPacket) { require(value.offsetX in -48..48) { "offsetX must be between -48 and 48" } require(value.offsetY in -48..48) { "offsetY must be between -48 and 48" } require(value.offsetZ in -48..48) { "offsetZ must be between -48 and 48" } @@ -92,7 +92,7 @@ public data class ServerboundSetStructureBlockPacket( buffer.writeByte(flags.toByte()) } - override suspend fun decode(buffer: BytesBuffer): ServerboundSetStructureBlockPacket = + override fun decode(buffer: BytesBuffer): ServerboundSetStructureBlockPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetTestBlockPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetTestBlockPacket.kt index 0ab11a1..506db0e 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetTestBlockPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSetTestBlockPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeMcString @@ -22,13 +22,13 @@ public data class ServerboundSetTestBlockPacket( val message: String, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundSetTestBlockPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundSetTestBlockPacket) { buffer.writeBlockPos(value.position) buffer.writeVarInt(value.mode.id) buffer.writeMcString(value.message) } - override suspend fun decode(buffer: BytesBuffer): ServerboundSetTestBlockPacket = + override fun decode(buffer: BytesBuffer): ServerboundSetTestBlockPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSignUpdatePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSignUpdatePacket.kt index b7c18a6..312652c 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSignUpdatePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSignUpdatePacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeMcString @@ -28,7 +28,7 @@ public data class ServerboundSignUpdatePacket( internal companion object Codec : PacketCodec { private const val MAX_LINE_LENGTH = 384 - override suspend fun encode(buffer: BytesBuffer, value: ServerboundSignUpdatePacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundSignUpdatePacket) { require(value.line1.length <= MAX_LINE_LENGTH) { "Line 1 exceeds maximum length of $MAX_LINE_LENGTH" } require(value.line2.length <= MAX_LINE_LENGTH) { "Line 2 exceeds maximum length of $MAX_LINE_LENGTH" } require(value.line3.length <= MAX_LINE_LENGTH) { "Line 3 exceeds maximum length of $MAX_LINE_LENGTH" } @@ -41,7 +41,7 @@ public data class ServerboundSignUpdatePacket( buffer.writeMcString(value.line4) } - override suspend fun decode(buffer: BytesBuffer): ServerboundSignUpdatePacket = + override fun decode(buffer: BytesBuffer): ServerboundSignUpdatePacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSignedChatCommandPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSignedChatCommandPacket.kt index 0cdad45..3160c62 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSignedChatCommandPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSignedChatCommandPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeMcString @@ -24,7 +24,7 @@ public data class ServerboundSignedChatCommandPacket( val checksum: Byte, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundSignedChatCommandPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundSignedChatCommandPacket) { buffer.writeMcString(value.command) buffer.writeLong(value.timestamp) buffer.writeLong(value.salt) @@ -35,7 +35,7 @@ public data class ServerboundSignedChatCommandPacket( buffer.writeByte(value.checksum) } - override suspend fun decode(buffer: BytesBuffer): ServerboundSignedChatCommandPacket = + override fun decode(buffer: BytesBuffer): ServerboundSignedChatCommandPacket = throw UnsupportedOperationException() } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSpectatorActionPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSpectatorActionPacket.kt index 93ea131..5073f16 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSpectatorActionPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSpectatorActionPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeVarInt @@ -20,11 +20,11 @@ public data class ServerboundSpectatorActionPacket( val entityId: Int, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundSpectatorActionPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundSpectatorActionPacket) { buffer.writeVarInt(value.entityId) } - override suspend fun decode(buffer: BytesBuffer): ServerboundSpectatorActionPacket = + override fun decode(buffer: BytesBuffer): ServerboundSpectatorActionPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSwingPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSwingPacket.kt index 9cddff2..6094f6a 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSwingPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundSwingPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeVarInt @@ -15,11 +15,11 @@ import cn.rtast.libmc.protocol.protocol.game.player.Hand public data class ServerboundSwingPacket(val hand: Hand) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundSwingPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundSwingPacket) { buffer.writeVarInt(value.hand.id) } - override suspend fun decode(buffer: BytesBuffer): ServerboundSwingPacket = + override fun decode(buffer: BytesBuffer): ServerboundSwingPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundTeleportToEntityPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundTeleportToEntityPacket.kt index 105d23e..ab82f18 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundTeleportToEntityPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundTeleportToEntityPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeUuid @@ -15,11 +15,11 @@ import kotlin.uuid.Uuid public data class ServerboundTeleportToEntityPacket(val targetPlayer: Uuid) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundTeleportToEntityPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundTeleportToEntityPacket) { buffer.writeUuid(value.targetPlayer) } - override suspend fun decode(buffer: BytesBuffer): ServerboundTeleportToEntityPacket = + override fun decode(buffer: BytesBuffer): ServerboundTeleportToEntityPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundTestInstanceBlockActionPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundTestInstanceBlockActionPacket.kt index 031cb21..3549b26 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundTestInstanceBlockActionPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundTestInstanceBlockActionPacket.kt @@ -7,17 +7,15 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeVarInt -import cn.rtast.libmc.nbt.NBTCompound import cn.rtast.libmc.protocol.protocol.game.Identifier import cn.rtast.libmc.protocol.protocol.game.block.* import cn.rtast.libmc.protocol.protocol.game.chat.TextComponent import cn.rtast.libmc.protocol.protocol.game.chat.writeTextComponent import cn.rtast.libmc.protocol.protocol.game.writeIdentifier -import cn.rtast.libmc.protocol.protocol.util.writeNetworkNBTCompound public data class ServerboundTestInstanceBlockActionPacket( val position: BlockPos, @@ -32,7 +30,7 @@ public data class ServerboundTestInstanceBlockActionPacket( val errorMessage: TextComponent?, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundTestInstanceBlockActionPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundTestInstanceBlockActionPacket) { buffer.writeBlockPos(value.position) buffer.writeVarInt(value.action.id) buffer.writeBoolean(value.test != null) @@ -47,7 +45,7 @@ public data class ServerboundTestInstanceBlockActionPacket( if (value.errorMessage != null) buffer.writeTextComponent(value.errorMessage) // TODO to fix } - override suspend fun decode(buffer: BytesBuffer): ServerboundTestInstanceBlockActionPacket = + override fun decode(buffer: BytesBuffer): ServerboundTestInstanceBlockActionPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundUpdateChatSessionPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundUpdateChatSessionPacket.kt index 1ae7dab..668b550 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundUpdateChatSessionPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundUpdateChatSessionPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writePrefixedByteArray @@ -32,14 +32,14 @@ public data class ServerboundUpdateChatSessionPacket( val keySignature: ByteArray, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundUpdateChatSessionPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundUpdateChatSessionPacket) { buffer.writeUuid(value.sessionId) buffer.writeLong(value.expiresAt) buffer.writePrefixedByteArray(value.publicKey) buffer.writePrefixedByteArray(value.keySignature) } - override suspend fun decode(buffer: BytesBuffer): ServerboundUpdateChatSessionPacket = + override fun decode(buffer: BytesBuffer): ServerboundUpdateChatSessionPacket = throw UnsupportedOperationException() } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundUseItemOnPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundUseItemOnPacket.kt index e9f59f1..a274723 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundUseItemOnPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundUseItemOnPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeVarInt @@ -31,7 +31,7 @@ public data class ServerboundUseItemOnPacket( val sequence: Int, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundUseItemOnPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundUseItemOnPacket) { require(value.cursorPositionX in 0.0f..1.0f) { "cursorPositionX must be between 0.0 and 1.0" } require(value.cursorPositionY in 0.0f..1.0f) { "cursorPositionY must be between 0.0 and 1.0" } require(value.cursorPositionZ in 0.0f..1.0f) { "cursorPositionZ must be between 0.0 and 1.0" } @@ -46,7 +46,7 @@ public data class ServerboundUseItemOnPacket( buffer.writeVarInt(value.sequence) } - override suspend fun decode(buffer: BytesBuffer): ServerboundUseItemOnPacket = + override fun decode(buffer: BytesBuffer): ServerboundUseItemOnPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundUseItemPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundUseItemPacket.kt index 002d911..93d6dd5 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundUseItemPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/play/serverbound/ServerboundUseItemPacket.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.packet.play.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.primitives.writeVarInt @@ -23,14 +23,14 @@ public data class ServerboundUseItemPacket( val pitch: Float, ) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundUseItemPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundUseItemPacket) { buffer.writeVarInt(value.hand.id) buffer.writeVarInt(value.sequence) buffer.writeFloat(value.yaw) buffer.writeFloat(value.pitch) } - override suspend fun decode(buffer: BytesBuffer): ServerboundUseItemPacket = + override fun decode(buffer: BytesBuffer): ServerboundUseItemPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/status/clientbound/ClientboundPongResponsePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/status/clientbound/ClientboundPongResponsePacket.kt index 9523942..0096ab0 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/status/clientbound/ClientboundPongResponsePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/status/clientbound/ClientboundPongResponsePacket.kt @@ -7,14 +7,14 @@ package cn.rtast.libmc.protocol.packet.status.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec public data class ClientboundPongResponsePacket(val timestamp: Long) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundPongResponsePacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundPongResponsePacket { + override fun encode(buffer: BytesBuffer, value: ClientboundPongResponsePacket) {} + override fun decode(buffer: BytesBuffer): ClientboundPongResponsePacket { return ClientboundPongResponsePacket(buffer.readLong()) } } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/status/clientbound/ClientboundStatusResponsePacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/status/clientbound/ClientboundStatusResponsePacket.kt index cd9decc..3ba9f8d 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/status/clientbound/ClientboundStatusResponsePacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/status/clientbound/ClientboundStatusResponsePacket.kt @@ -7,15 +7,15 @@ package cn.rtast.libmc.protocol.packet.status.clientbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readMcString public data class ClientboundStatusResponsePacket(val jsonResponse: String) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ClientboundStatusResponsePacket) {} - override suspend fun decode(buffer: BytesBuffer): ClientboundStatusResponsePacket = + override fun encode(buffer: BytesBuffer, value: ClientboundStatusResponsePacket) {} + override fun decode(buffer: BytesBuffer): ClientboundStatusResponsePacket = ClientboundStatusResponsePacket(buffer.readMcString()) } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/status/serverbound/ServerboundPingRequestPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/status/serverbound/ServerboundPingRequestPacket.kt index 682bdd9..6679eab 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/status/serverbound/ServerboundPingRequestPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/status/serverbound/ServerboundPingRequestPacket.kt @@ -7,17 +7,17 @@ package cn.rtast.libmc.protocol.packet.status.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec public data class ServerboundPingRequestPacket(val timestamp: Long) : MinecraftPacket { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundPingRequestPacket) { + override fun encode(buffer: BytesBuffer, value: ServerboundPingRequestPacket) { buffer.writeLong(value.timestamp) } - override suspend fun decode(buffer: BytesBuffer): ServerboundPingRequestPacket = + override fun decode(buffer: BytesBuffer): ServerboundPingRequestPacket = throw UnsupportedOperationException() } } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/status/serverbound/ServerboundStatusRequestPacket.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/status/serverbound/ServerboundStatusRequestPacket.kt index e95e5e1..614c1c9 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/status/serverbound/ServerboundStatusRequestPacket.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/packet/status/serverbound/ServerboundStatusRequestPacket.kt @@ -7,12 +7,12 @@ package cn.rtast.libmc.protocol.packet.status.serverbound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.MinecraftPacket import cn.rtast.libmc.packet.PacketCodec public data object ServerboundStatusRequestPacket : MinecraftPacket, PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerboundStatusRequestPacket) {} - override suspend fun decode(buffer: BytesBuffer): ServerboundStatusRequestPacket = + override fun encode(buffer: BytesBuffer, value: ServerboundStatusRequestPacket) {} + override fun decode(buffer: BytesBuffer): ServerboundStatusRequestPacket = throw UnsupportedOperationException() } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/Identifier.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/Identifier.kt index 7b7cb82..498a844 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/Identifier.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/Identifier.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.protocol.game -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readMcString import cn.rtast.libmc.primitives.writeMcString @@ -27,13 +27,13 @@ public value class Identifier internal constructor(public val raw: String) { fun of(namespace: String, path: String): Identifier = Identifier("$namespace:$path") fun of(full: String): Identifier = Identifier(full) - override suspend fun encode(buffer: BytesBuffer, value: Identifier) { + override fun encode(buffer: BytesBuffer, value: Identifier) { buffer.writeMcString(value.toString()) } - override suspend fun decode(buffer: BytesBuffer): Identifier = Identifier(buffer.readMcString()) + override fun decode(buffer: BytesBuffer): Identifier = Identifier(buffer.readMcString()) } } -internal suspend fun BytesBuffer.readIdentifier(): Identifier = Identifier.decode(this) -internal suspend fun BytesBuffer.writeIdentifier(identifier: Identifier) = Identifier.encode(this, identifier) \ No newline at end of file +internal fun BytesBuffer.readIdentifier(): Identifier = Identifier.decode(this) +internal fun BytesBuffer.writeIdentifier(identifier: Identifier) = Identifier.encode(this, identifier) \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/StatisticsEntry.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/StatisticsEntry.kt index d2c796c..57f7e55 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/StatisticsEntry.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/StatisticsEntry.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.protocol.game -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readVarInt import cn.rtast.libmc.primitives.writeVarInt @@ -17,13 +17,13 @@ import cn.rtast.libmc.primitives.writeVarInt */ public data class StatisticsEntry(val categoryId: Int, val statisticId: Int, val value: Int) { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: StatisticsEntry) { + override fun encode(buffer: BytesBuffer, value: StatisticsEntry) { buffer.writeVarInt(value.categoryId) buffer.writeVarInt(value.statisticId) buffer.writeVarInt(value.value) } - override suspend fun decode(buffer: BytesBuffer): StatisticsEntry { + override fun decode(buffer: BytesBuffer): StatisticsEntry { val categoryId = buffer.readVarInt() val statisticId = buffer.readVarInt() val value = buffer.readVarInt() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/block/BlockPos.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/block/BlockPos.kt index 780aca2..1aa8b5a 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/block/BlockPos.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/block/BlockPos.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.protocol.game.block -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec /** @@ -20,7 +20,7 @@ public data class BlockPos(val x: Int, val y: Int, val z: Int) { private const val PACKED_Y_MASK = 0xFFFL // 12 bits private const val PACKED_Z_MASK = 0x3FFFFFFL // 26 bits - override suspend fun decode(buffer: BytesBuffer): BlockPos { + override fun decode(buffer: BytesBuffer): BlockPos { val packed = buffer.readLong() val x = (packed shr 38).toInt() val y = (packed shl 52 shr 52).toInt() @@ -28,7 +28,7 @@ public data class BlockPos(val x: Int, val y: Int, val z: Int) { return BlockPos(x, y, z) } - override suspend fun encode(buffer: BytesBuffer, value: BlockPos) { + override fun encode(buffer: BytesBuffer, value: BlockPos) { val xLong = (value.x.toLong() and PACKED_X_MASK) val yLong = (value.y.toLong() and PACKED_Y_MASK) val zLong = (value.z.toLong() and PACKED_Z_MASK) @@ -37,5 +37,5 @@ public data class BlockPos(val x: Int, val y: Int, val z: Int) { } } -internal suspend fun BytesBuffer.readBlockPos(): BlockPos = BlockPos.decode(this) -internal suspend fun BytesBuffer.writeBlockPos(pos: BlockPos) = BlockPos.encode(this, pos) \ No newline at end of file +internal fun BytesBuffer.readBlockPos(): BlockPos = BlockPos.decode(this) +internal fun BytesBuffer.writeBlockPos(pos: BlockPos) = BlockPos.encode(this, pos) \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/chat/ChatTypeDecoration.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/chat/ChatTypeDecoration.kt index b1f6be8..69b3d6b 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/chat/ChatTypeDecoration.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/chat/ChatTypeDecoration.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.protocol.game.chat -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.primitives.readMcString import cn.rtast.libmc.primitives.readPrefixed import cn.rtast.libmc.primitives.readVarInt @@ -28,7 +28,7 @@ public data class ChatTypeDecoration( } } -internal suspend fun BytesBuffer.readChatTypeDecoration(): ChatTypeDecoration { +internal fun BytesBuffer.readChatTypeDecoration(): ChatTypeDecoration { val translationKey = this.readMcString() val parameters = this.readPrefixed { ChatTypeDecoration.ChatTypeParameter.fromID(readVarInt()) } val style = this.readNetworkNBTCompound() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/chat/InlineChatType.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/chat/InlineChatType.kt index 9296d43..2b30117 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/chat/InlineChatType.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/chat/InlineChatType.kt @@ -7,14 +7,14 @@ package cn.rtast.libmc.protocol.protocol.game.chat -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public data class InlineChatType( val chat: ChatTypeDecoration, val narration: ChatTypeDecoration, ) -internal suspend fun BytesBuffer.readInlineChatType(): InlineChatType { +internal fun BytesBuffer.readInlineChatType(): InlineChatType { val chat = readChatTypeDecoration() val narration = readChatTypeDecoration() return InlineChatType(chat, narration) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/chat/TextComponent.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/chat/TextComponent.kt index 871b1dc..ae2acb3 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/chat/TextComponent.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/chat/TextComponent.kt @@ -12,7 +12,7 @@ import cn.rtast.libmc.nbt.NBTType import cn.rtast.libmc.protocol.protocol.game.Identifier import cn.rtast.libmc.protocol.protocol.util.readNetworkNBTCompound import cn.rtast.libmc.protocol.protocol.util.writeNetworkNBTCompound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import kotlin.uuid.Uuid public data class TextComponent( @@ -613,10 +613,10 @@ private fun NBTTag.CompoundTag.getCompoundOrNull(key: String): NBTTag.CompoundTa private fun NBTTag.CompoundTag.getListOrNull(key: String): List? = (this.value[key] as? NBTTag.ListTag)?.value -internal suspend fun BytesBuffer.readTextComponent(): TextComponent = +internal fun BytesBuffer.readTextComponent(): TextComponent = this.readNetworkNBTCompound().element.toTextComponent() -internal suspend fun BytesBuffer.writeTextComponent(component: TextComponent) { +internal fun BytesBuffer.writeTextComponent(component: TextComponent) { val nbt = component.toNbt() this.writeNetworkNBTCompound(NBTCompound("", nbt)) } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/chunk/ChunkBiomeData.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/chunk/ChunkBiomeData.kt index 6d242fa..1ace62b 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/chunk/ChunkBiomeData.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/chunk/ChunkBiomeData.kt @@ -7,20 +7,20 @@ package cn.rtast.libmc.protocol.protocol.game.chunk -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readPrefixedByteArray import cn.rtast.libmc.primitives.writePrefixedByteArray public data class ChunkBiomeData(val chunkZ: Int, val chunkX: Int, val data: ByteArray) { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ChunkBiomeData) { + override fun encode(buffer: BytesBuffer, value: ChunkBiomeData) { buffer.writeInt(value.chunkZ) buffer.writeInt(value.chunkX) buffer.writePrefixedByteArray(value.data) } - override suspend fun decode(buffer: BytesBuffer): ChunkBiomeData { + override fun decode(buffer: BytesBuffer): ChunkBiomeData { val z = buffer.readInt() val x = buffer.readInt() val data = buffer.readPrefixedByteArray() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/command/CommandNode.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/command/CommandNode.kt index e6b9533..140c502 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/command/CommandNode.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/command/CommandNode.kt @@ -13,7 +13,7 @@ import cn.rtast.libmc.primitives.writeMcString import cn.rtast.libmc.primitives.writeVarInt import cn.rtast.libmc.protocol.protocol.game.readIdentifier import cn.rtast.libmc.protocol.protocol.game.writeIdentifier -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public data class CommandNode( val type: NodeType, @@ -55,7 +55,7 @@ public data class CommandNode( private const val PARSER_RESOURCE_KEY = 47 private const val PARSER_RESOURCE_SELECTOR = 48 - override suspend fun encode(buffer: BytesBuffer, value: CommandNode) { + override fun encode(buffer: BytesBuffer, value: CommandNode) { var flags = value.type.id and NodeType.NODE_TYPE_MASK if (value.isExecutable) flags = flags or NodeType.IS_EXECUTABLE_MASK if (value.redirectNodeIndex != null) flags = flags or NodeType.HAS_REDIRECT_MASK @@ -79,7 +79,7 @@ public data class CommandNode( if (value.suggestionsType != null) buffer.writeIdentifier(value.suggestionsType.id) } - override suspend fun decode(buffer: BytesBuffer): CommandNode { + override fun decode(buffer: BytesBuffer): CommandNode { val flags = buffer.readByte().toInt() and 0xFF val nodeType = NodeType.fromID(flags and NodeType.NODE_TYPE_MASK) val isExecutable = (flags and NodeType.IS_EXECUTABLE_MASK) != 0 @@ -114,7 +114,7 @@ public data class CommandNode( ) } - private suspend fun BytesBuffer.decodeProperties(parserId: Int): CommandArgumentProperties { + private fun BytesBuffer.decodeProperties(parserId: Int): CommandArgumentProperties { return when (parserId) { PARSER_INTEGER -> { val flags = readByte().toInt() @@ -173,7 +173,7 @@ public data class CommandNode( } } - private suspend fun BytesBuffer.encodeProperties(properties: CommandArgumentProperties) { + private fun BytesBuffer.encodeProperties(properties: CommandArgumentProperties) { when (properties) { is CommandArgumentProperties.IntProp -> { var flags = 0 diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/effect/EntityEffectFlags.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/effect/EntityEffectFlags.kt index d69fa79..5901bd5 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/effect/EntityEffectFlags.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/effect/EntityEffectFlags.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.protocol.game.effect -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public data class EntityEffectFlags( val isAmbient: Boolean = false, @@ -44,6 +44,6 @@ public data class EntityEffectFlags( } @Suppress("NOTHING_TO_INLINE") -internal suspend inline fun BytesBuffer.readEntityEffectFlags(): EntityEffectFlags { +internal inline fun BytesBuffer.readEntityEffectFlags(): EntityEffectFlags { return EntityEffectFlags.fromByte(this.readByte()) } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/entity/Minecart.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/entity/Minecart.kt index 00c4b30..5a60623 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/entity/Minecart.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/entity/Minecart.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.protocol.game.entity -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.protocol.protocol.game.math.Angle import cn.rtast.libmc.protocol.protocol.game.math.Vec3d import cn.rtast.libmc.protocol.protocol.game.math.readAngle @@ -21,7 +21,7 @@ public data class MinecartStep( val weight: Float, ) -internal suspend fun BytesBuffer.readMinecartStep(): MinecartStep { +internal fun BytesBuffer.readMinecartStep(): MinecartStep { val position = readVec3d()!! val velocity = readVec3d()!! val yaw = readAngle() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/gamerule/GameRuleEntry.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/gamerule/GameRuleEntry.kt index 0d92dc2..b3b03c6 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/gamerule/GameRuleEntry.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/gamerule/GameRuleEntry.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.protocol.game.gamerule -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.primitives.readMcString import cn.rtast.libmc.primitives.writeMcString import cn.rtast.libmc.protocol.protocol.game.Identifier @@ -16,13 +16,13 @@ import cn.rtast.libmc.protocol.protocol.game.writeIdentifier public data class GameRuleEntry(val name: Identifier, val value: String) -internal suspend fun BytesBuffer.readGameRule(): GameRuleEntry { +internal fun BytesBuffer.readGameRule(): GameRuleEntry { val name = readIdentifier() val value = readMcString() return GameRuleEntry(name, value) } -internal suspend fun BytesBuffer.writeGameRule(entry: GameRuleEntry) { +internal fun BytesBuffer.writeGameRule(entry: GameRuleEntry) { writeIdentifier(entry.name) writeMcString(entry.value) } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/math/Angle.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/math/Angle.kt index fd2175b..220ab33 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/math/Angle.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/math/Angle.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.protocol.game.math -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import kotlin.jvm.JvmInline /** @@ -27,5 +27,5 @@ public value class Angle(public val raw: Byte) { } -internal suspend fun BytesBuffer.readAngle(): Angle = Angle(this.readByte()) -internal suspend fun BytesBuffer.writeAngle(value: Angle) = this.writeByte(value.raw) \ No newline at end of file +internal fun BytesBuffer.readAngle(): Angle = Angle(this.readByte()) +internal fun BytesBuffer.writeAngle(value: Angle) = this.writeByte(value.raw) \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/math/LpVec3.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/math/LpVec3.kt index a3f096d..09659ae 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/math/LpVec3.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/math/LpVec3.kt @@ -7,8 +7,8 @@ package cn.rtast.libmc.protocol.protocol.game.math -import cn.rtast.libmc.stream.ByteOrder -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.ByteOrder +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.primitives.readVarInt import cn.rtast.libmc.primitives.writeVarInt import kotlin.math.abs @@ -39,11 +39,11 @@ public data class LpVec3( } // ref: https://minecraft.wiki/w/Java_Edition_protocol/Data_types#LpVec3 -internal suspend fun BytesBuffer.readLpVec3(): LpVec3 { +internal fun BytesBuffer.readLpVec3(): LpVec3 { val byte1 = readByte().toInt() and 0xFF if (byte1 == 0) return LpVec3.ZERO val byte2 = readByte().toInt() and 0xFF - val bytes3To6 = readInt(ByteOrder.BIG_ENDIAN).toLong() and 0xFFFFFFFFL + val bytes3To6 = readInt().toLong() and 0xFFFFFFFFL val packed = (bytes3To6 shl 16) or (byte2.toLong() shl 8) or byte1.toLong() var scaleFactor = byte1.toLong() and 0x03L if ((byte1.toLong() and 0x04L) != 0L) scaleFactor = scaleFactor or (readVarInt().toLong() shl 2) @@ -55,7 +55,7 @@ internal suspend fun BytesBuffer.readLpVec3(): LpVec3 { } // ref: https://minecraft.wiki/w/Java_Edition_protocol/Data_types#LpVec3 -internal suspend fun BytesBuffer.writeLpVec3(vec3: LpVec3) { +internal fun BytesBuffer.writeLpVec3(vec3: LpVec3) { val maxCoordinate = max(abs(vec3.x), max(abs(vec3.y), abs(vec3.z))) if (maxCoordinate.isNaN() || maxCoordinate < 1.0 / 32766.0) { writeByte(0x00) @@ -70,6 +70,6 @@ internal suspend fun BytesBuffer.writeLpVec3(vec3: LpVec3) { val packed = packedZ or packedY or packedX or packedScale writeByte(packed.toByte()) writeByte((packed shr 8).toByte()) - writeInt((packed shr 16).toInt(), ByteOrder.BIG_ENDIAN) + writeInt((packed shr 16).toInt()) if (needContinuation) writeVarInt((scaleFactor shr 2).toInt()) } \ No newline at end of file diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/math/Vec3d.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/math/Vec3d.kt index 9b3be09..193ae1c 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/math/Vec3d.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/math/Vec3d.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.protocol.game.math -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public data class Vec3d(val x: Double, val y: Double, val z: Double) { public companion object { @@ -15,7 +15,7 @@ public data class Vec3d(val x: Double, val y: Double, val z: Double) { } } -internal suspend fun BytesBuffer.readVec3d(optional: Boolean = false): Vec3d? { +internal fun BytesBuffer.readVec3d(optional: Boolean = false): Vec3d? { if (optional && !this.readBoolean()) return null val x = this.readDouble() val y = this.readDouble() @@ -23,7 +23,7 @@ internal suspend fun BytesBuffer.readVec3d(optional: Boolean = false): Vec3d? { return Vec3d(x, y, z) } -internal suspend fun BytesBuffer.writeVec3d(vec3d: Vec3d?, optional: Boolean = false) { +internal fun BytesBuffer.writeVec3d(vec3d: Vec3d?, optional: Boolean = false) { if (optional) { this.writeBoolean(vec3d != null) if (vec3d == null) return diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/registry/RegistryEntry.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/registry/RegistryEntry.kt index cd14a6f..766f7d6 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/registry/RegistryEntry.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/registry/RegistryEntry.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.protocol.game.registry -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.nbt.NBTCompound import cn.rtast.libmc.protocol.protocol.game.Identifier @@ -27,13 +27,13 @@ public data class RegistryEntry( val data: NBTCompound?, ) { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: RegistryEntry) { + override fun encode(buffer: BytesBuffer, value: RegistryEntry) { buffer.writeIdentifier(value.id) buffer.writeBoolean(value.data != null) if (value.data != null) buffer.writeNetworkNBTCompound(value.data) } - override suspend fun decode(buffer: BytesBuffer): RegistryEntry { + override fun decode(buffer: BytesBuffer): RegistryEntry { val id = buffer.readIdentifier() val hasData = buffer.readBoolean() val data = if (hasData) buffer.readNetworkNBTCompound() else null diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/registry/report/ServerLink.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/registry/report/ServerLink.kt index 5840b83..0a2790e 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/registry/report/ServerLink.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/registry/report/ServerLink.kt @@ -15,11 +15,11 @@ import cn.rtast.libmc.primitives.writeVarInt import cn.rtast.libmc.protocol.protocol.game.chat.TextComponent import cn.rtast.libmc.protocol.protocol.game.chat.readTextComponent import cn.rtast.libmc.protocol.protocol.game.chat.writeTextComponent -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer public data class ServerLink(val label: ServerLinkLabel, val url: String) { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ServerLink) { + override fun encode(buffer: BytesBuffer, value: ServerLink) { when (value.label) { is ServerLinkLabel.Builtin -> { buffer.writeBoolean(true) @@ -34,7 +34,7 @@ public data class ServerLink(val label: ServerLinkLabel, val url: String) { buffer.writeMcString(value.url) } - override suspend fun decode(buffer: BytesBuffer): ServerLink { + override fun decode(buffer: BytesBuffer): ServerLink { val isBuiltin = buffer.readBoolean() val label = if (isBuiltin) ServerLinkLabel.Builtin(BuiltinServerLinkType.fromID(buffer.readVarInt())) else ServerLinkLabel.Custom(buffer.readTextComponent()) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/session/GameProfile.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/session/GameProfile.kt index 894bcbd..67244ac 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/session/GameProfile.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/session/GameProfile.kt @@ -14,7 +14,7 @@ import cn.rtast.libmc.primitives.readVarInt import cn.rtast.libmc.primitives.writeMcString import cn.rtast.libmc.primitives.writeUuid import cn.rtast.libmc.primitives.writeVarInt -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import kotlin.uuid.Uuid public data class GameProfile( @@ -28,14 +28,14 @@ public data class GameProfile( val signature: String?, ) { internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: Property) { + override fun encode(buffer: BytesBuffer, value: Property) { buffer.writeMcString(value.name) buffer.writeMcString(value.value) buffer.writeBoolean(value.signature != null) value.signature?.let { buffer.writeMcString(it) } } - override suspend fun decode(buffer: BytesBuffer): Property { + override fun decode(buffer: BytesBuffer): Property { val name = buffer.readMcString() val value = buffer.readMcString() val hasSignature = buffer.readBoolean() @@ -46,14 +46,14 @@ public data class GameProfile( } internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: GameProfile) { + override fun encode(buffer: BytesBuffer, value: GameProfile) { buffer.writeUuid(value.uuid) buffer.writeMcString(value.username) buffer.writeVarInt(value.properties.size) // prefixed array value.properties.forEach { prop -> Property.encode(buffer, prop) } } - override suspend fun decode(buffer: BytesBuffer): GameProfile { + override fun decode(buffer: BytesBuffer): GameProfile { val uuid = buffer.readUuid() val username = buffer.readMcString() val propertyCount = buffer.readVarInt() diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/sound/SoundEvent.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/sound/SoundEvent.kt index a5d308c..442375c 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/sound/SoundEvent.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/game/sound/SoundEvent.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.protocol.game.sound -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.primitives.readOptional import cn.rtast.libmc.primitives.writeOptional import cn.rtast.libmc.protocol.protocol.game.Identifier @@ -16,14 +16,14 @@ import cn.rtast.libmc.protocol.protocol.game.writeIdentifier public data class SoundEvent(val name: Identifier, val hasFixedRange: Boolean, val fixedRange: Float?) -internal suspend fun BytesBuffer.readSoundEvent(): SoundEvent { +internal fun BytesBuffer.readSoundEvent(): SoundEvent { val name = readIdentifier() val hasFixedRange = readBoolean() val fixedRange = readOptional { readFloat() } return SoundEvent(name, hasFixedRange, fixedRange) } -internal suspend fun BytesBuffer.writeSoundEvent(event: SoundEvent) { +internal fun BytesBuffer.writeSoundEvent(event: SoundEvent) { writeIdentifier(event.name) writeBoolean(event.hasFixedRange) writeOptional(event.fixedRange) { writeFloat(it) } diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/signature/ArgumentSignature.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/signature/ArgumentSignature.kt index 259be21..83c7ecb 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/signature/ArgumentSignature.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/signature/ArgumentSignature.kt @@ -7,7 +7,7 @@ package cn.rtast.libmc.protocol.protocol.signature -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.packet.PacketCodec import cn.rtast.libmc.primitives.readMcString import cn.rtast.libmc.primitives.writeMcString @@ -18,12 +18,12 @@ public data class ArgumentSignature(val name: String, val signature: ByteArray) } internal companion object Codec : PacketCodec { - override suspend fun encode(buffer: BytesBuffer, value: ArgumentSignature) { + override fun encode(buffer: BytesBuffer, value: ArgumentSignature) { buffer.writeMcString(value.name) buffer.writeBytes(value.signature) } - override suspend fun decode(buffer: BytesBuffer): ArgumentSignature { + override fun decode(buffer: BytesBuffer): ArgumentSignature { val name = buffer.readMcString() val signature = buffer.readBytes(256) return ArgumentSignature(name, signature) diff --git a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/util/nbt.kt b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/util/nbt.kt index 26f0ceb..6626625 100644 --- a/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/util/nbt.kt +++ b/libmc-protocol/src/commonMain/kotlin/cn/rtast/libmc/protocol/protocol/util/nbt.kt @@ -7,14 +7,14 @@ package cn.rtast.libmc.protocol.protocol.util -import cn.rtast.libmc.stream.BytesBuffer +import cn.rtast.libmc.network.BytesBuffer import cn.rtast.libmc.nbt.* -internal suspend fun BytesBuffer.readNBTCompound(): NBTCompound = +internal fun BytesBuffer.readNBTCompound(): NBTCompound = this.toNBTInput().readRootCompound() -internal suspend fun BytesBuffer.readNetworkNBTCompound(): NBTCompound = +internal fun BytesBuffer.readNetworkNBTCompound(): NBTCompound = this.toNBTInput().readNetworkCompound() -internal suspend fun BytesBuffer.writeNetworkNBTCompound(value: NBTCompound) = +internal fun BytesBuffer.writeNetworkNBTCompound(value: NBTCompound) = this.toNBTOutput(NBTTag.CompoundTag(mutableMapOf("" to NBTTag.StringTag("")))).writeNetworkCompound(value) \ No newline at end of file diff --git a/libmc-protocol/src/jvmTest/kotlin/test/ClientChatTracker.kt b/libmc-protocol/src/jvmTest/kotlin/test/ClientChatTracker.kt index db4bef9..4ade903 100644 --- a/libmc-protocol/src/jvmTest/kotlin/test/ClientChatTracker.kt +++ b/libmc-protocol/src/jvmTest/kotlin/test/ClientChatTracker.kt @@ -9,8 +9,6 @@ package test import cn.rtast.libmc.primitives.FixedBitSet20 import cn.rtast.libmc.primitives.createFixedBitSet20 -import cn.rtast.libmc.stream.BytesBuffer -import kotlin.uuid.Uuid class ClientChatTracker { private val lastSeenQueue = ArrayDeque(20) diff --git a/libmc-protocol/src/jvmTest/kotlin/test/JvmAesCipher.kt b/libmc-protocol/src/jvmTest/kotlin/test/JvmAesCipher.kt index 9873e46..82172f8 100644 --- a/libmc-protocol/src/jvmTest/kotlin/test/JvmAesCipher.kt +++ b/libmc-protocol/src/jvmTest/kotlin/test/JvmAesCipher.kt @@ -21,11 +21,11 @@ class JvmAesCipher(sharedKey: ByteArray) : NetworkCipher { init(Cipher.DECRYPT_MODE, SecretKeySpec(sharedKey, "AES"), IvParameterSpec(sharedKey)) } - override suspend fun encrypt(buffer: ByteArray, offset: Int, length: Int) { + override fun encrypt(buffer: ByteArray, offset: Int, length: Int) { encryptCipher.update(buffer, offset, length, buffer, offset) } - override suspend fun decrypt(buffer: ByteArray, offset: Int, length: Int) { + override fun decrypt(buffer: ByteArray, offset: Int, length: Int) { decryptCipher.update(buffer, offset, length, buffer, offset) } } \ No newline at end of file diff --git a/libmc-protocol/src/jvmTest/kotlin/test/TestClientTestInJvm.kt b/libmc-protocol/src/jvmTest/kotlin/test/TestClientTestInJvm.kt index ed938e1..9d4933f 100644 --- a/libmc-protocol/src/jvmTest/kotlin/test/TestClientTestInJvm.kt +++ b/libmc-protocol/src/jvmTest/kotlin/test/TestClientTestInJvm.kt @@ -63,7 +63,7 @@ class TestClientTestInJvm { Uuid.parse("bb033844-e68e-4909-a636-1a5d1821ddc4"), // null, accessToken, - crypto = DefaultProtocolContext + contextBuilder = DefaultProtocolContext ) // cli.onPacket { println(it) } // cli.onPacket { println(it) } @@ -81,7 +81,7 @@ class TestClientTestInJvm { "11", generateOfflineUuid("11"), null, - crypto = DefaultProtocolContext + contextBuilder = DefaultProtocolContext ) // cli.on { packet, direction -> // if (packet !is ClientboundWaypointPacket) diff --git a/libmc-rconlib/build.gradle.kts b/libmc-rconlib/build.gradle.kts deleted file mode 100644 index 5418968..0000000 --- a/libmc-rconlib/build.gradle.kts +++ /dev/null @@ -1,27 +0,0 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget - -kotlin { - explicitApi() - withSourcesJar() - - linuxX64() - linuxArm64() - macosArm64() - mingwX64() - jvm { compilerOptions.jvmTarget = JvmTarget.JVM_1_8 } - - sourceSets { - commonMain.dependencies { - api(project(":common")) - } - - jvmMain.dependencies { - - } - - commonTest.dependencies { - implementation(kotlin("test")) - implementation(libs.kotlinx.coroutines.test) - } - } -} \ No newline at end of file diff --git a/libmc-rconlib/src/commonMain/kotlin/cn/rtast/libmc/mcping/rconlib/buffer_ext.kt b/libmc-rconlib/src/commonMain/kotlin/cn/rtast/libmc/mcping/rconlib/buffer_ext.kt deleted file mode 100644 index 237f6ca..0000000 --- a/libmc-rconlib/src/commonMain/kotlin/cn/rtast/libmc/mcping/rconlib/buffer_ext.kt +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/4 - */ - - -package cn.rtast.libmc.mcping.rconlib - -import cn.rtast.libmc.stream.BytesBuffer - -internal suspend fun BytesBuffer.writeNull() = writeByte(0x00) \ No newline at end of file diff --git a/libmc-rconlib/src/commonMain/kotlin/cn/rtast/libmc/mcping/rconlib/packet.kt b/libmc-rconlib/src/commonMain/kotlin/cn/rtast/libmc/mcping/rconlib/packet.kt deleted file mode 100644 index 0e89127..0000000 --- a/libmc-rconlib/src/commonMain/kotlin/cn/rtast/libmc/mcping/rconlib/packet.kt +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/4 - */ - - -package cn.rtast.libmc.mcping.rconlib - -import cn.rtast.libmc.stream.ByteOrder -import cn.rtast.libmc.stream.BytesBuffer -import cn.rtast.libmc.stream.ReadChannel -import cn.rtast.libmc.stream.WriteChannel - -internal abstract class Packet { - abstract val requestId: Int - abstract val type: Int - abstract val payload: String - - protected val payloadBytes: ByteArray by lazy { payload.encodeToByteArray() } - - val payloadLength: Int - get() = payloadBytes.size - - open val length: Int - get() = 4 + 4 + payloadLength + 2 - - suspend fun writePayload(buf: BytesBuffer) { - buf.writeInt(length, ByteOrder.LITTLE_ENDIAN) - buf.writeInt(requestId, ByteOrder.LITTLE_ENDIAN) - buf.writeInt(type, ByteOrder.LITTLE_ENDIAN) - buf.writeBytes(payloadBytes) - buf.writeNull() - buf.writeNull() - } - - companion object Codec { - suspend fun decode(channel: ReadChannel): ResponsePacket { - val length = channel.readInt(ByteOrder.LITTLE_ENDIAN) - val requestId = channel.readInt(ByteOrder.LITTLE_ENDIAN) - val type = channel.readInt(ByteOrder.LITTLE_ENDIAN) - val payloadBuffer = BytesBuffer() - while (true) { - val b = channel.readByte() - if (b == 0x00.toByte()) break - payloadBuffer.writeByte(b) - } - channel.readByte() // consume last null byte - return ResponsePacket(length, requestId, type, payloadBuffer.toByteArray().decodeToString()) - } - } -} - -internal data class AuthPacket( - override val payload: String, - override val requestId: Int = 1, -) : Packet() { - override val type: Int = PacketType.AUTH -} - -internal data class ExecCommandPacket( - override val payload: String, - override val requestId: Int, -) : Packet() { - override val type: Int = PacketType.EXEC_COMMAND -} - -internal data class ResponsePacket( - override val length: Int, - override val requestId: Int, - override val type: Int, - override val payload: String, -) : Packet() - - -internal suspend fun WriteChannel.sendPacket(packet: Packet) { - val buf = BytesBuffer() - packet.writePayload(buf) - writeFully(buf.toByteArray()) - flush() -} - -internal suspend fun ReadChannel.readPacket(): ResponsePacket = Packet.decode(this) \ No newline at end of file diff --git a/libmc-rconlib/src/commonMain/kotlin/cn/rtast/libmc/mcping/rconlib/packet_type.kt b/libmc-rconlib/src/commonMain/kotlin/cn/rtast/libmc/mcping/rconlib/packet_type.kt deleted file mode 100644 index a62f565..0000000 --- a/libmc-rconlib/src/commonMain/kotlin/cn/rtast/libmc/mcping/rconlib/packet_type.kt +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/4 - */ - - -package cn.rtast.libmc.mcping.rconlib - -internal object PacketType { - const val AUTH = 3 - const val EXEC_COMMAND = 2 - const val RESPONSE = 1 -} \ No newline at end of file diff --git a/libmc-rconlib/src/commonMain/kotlin/cn/rtast/libmc/mcping/rconlib/rconlib.kt b/libmc-rconlib/src/commonMain/kotlin/cn/rtast/libmc/mcping/rconlib/rconlib.kt deleted file mode 100644 index df29acc..0000000 --- a/libmc-rconlib/src/commonMain/kotlin/cn/rtast/libmc/mcping/rconlib/rconlib.kt +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/4 - */ - -@file:JvmName("Rconlib") - -package cn.rtast.libmc.mcping.rconlib - -import cn.rtast.libmc.LibMCContext -import cn.rtast.libmc.stream.ReadChannel -import cn.rtast.libmc.stream.Socket -import cn.rtast.libmc.stream.WriteChannel -import kotlin.jvm.JvmName -import kotlin.jvm.JvmOverloads - -public class RCONClient internal constructor( - private val host: String, - private val port: Int, - private val context: LibMCContext, -) : AutoCloseable { - private var socket: Socket? = null - private var readChannel: ReadChannel? = null - private var writeChannel: WriteChannel? = null - private var currentRequestId = 1 - - public suspend fun connect(password: String): Boolean { - socket = Socket(host, port, context) - readChannel = socket!!.openReadChannel() - writeChannel = socket!!.openWriteChannel() - val authPacket = AuthPacket(password, currentRequestId) - writeChannel!!.sendPacket(authPacket) - return readChannel!!.readPacket().requestId != -1 - } - - public suspend fun command(command: String): String { - val reqId = currentRequestId++ - val commandPacket = ExecCommandPacket(command, reqId) - writeChannel!!.sendPacket(commandPacket) - return readChannel!!.readPacket().payload - } - - public override fun close() { - socket?.close() - socket = null - readChannel = null - writeChannel = null - } -} - -@JvmOverloads -public fun rconClient(host: String, port: Int, context: LibMCContext = LibMCContext()): RCONClient = - RCONClient(host, port, context) \ No newline at end of file diff --git a/libmc-rconlib/src/commonTest/kotlin/test/TestRCON.kt b/libmc-rconlib/src/commonTest/kotlin/test/TestRCON.kt deleted file mode 100644 index 32aaf9d..0000000 --- a/libmc-rconlib/src/commonTest/kotlin/test/TestRCON.kt +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/4 - */ - - -package test - -import cn.rtast.libmc.mcping.rconlib.rconClient -import kotlin.test.Test - -class TestRCON { - - @Test - fun `test rcon client`() { - val host = "127.0.0.1" - val port = 25575 - val client = rconClient(host, port) - val authed = client.connect("123456") - if (authed) println(client.command("list")) else throw IllegalArgumentException("incorrect password") - } -} \ No newline at end of file diff --git a/libmc-rconlib/src/jvmTest/java/test/TestRconClientOnJava.java b/libmc-rconlib/src/jvmTest/java/test/TestRconClientOnJava.java deleted file mode 100644 index 5588425..0000000 --- a/libmc-rconlib/src/jvmTest/java/test/TestRconClientOnJava.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright © 2026 RTAkland - * Author: RTAkland - * Date: 2026/9/4 - */ - - -package test; - -import cn.rtast.libmc.mcping.rconlib.RCONClient; -import cn.rtast.libmc.mcping.rconlib.Rconlib; -import org.junit.Test; - -public class TestRconClientOnJava { - - @Test - public void testRconClient() { - String host = "127.0.0.1"; - int port = 25575; - String password = "123456"; - RCONClient rconClient = Rconlib.rconClient(host, port); - boolean authed = rconClient.connect(password); - if (authed) { - System.out.println(rconClient.command("list")); - } else { - throw new IllegalStateException("incorrect password"); - } - } -} diff --git a/settings.gradle.kts b/settings.gradle.kts index d197d81..e7b81d7 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -5,10 +5,8 @@ plugins { rootProject.name = "libmc" includeSubModule(":common") -includeSubModule(":mcping") -includeSubModule(":rconlib") includeSubModule(":protocol") -includeSubModule(":protocol-encrypt") +includeSubModule(":protocol-context") includeSubModule(":nbt") //includeSubModule(":snbt")