Rename package name of libmc-common

This commit is contained in:
2026-09-07 08:06:18 +08:00
parent 641df674e4
commit d7300451f8
290 files changed
+1071 -1074

No files matched your search

@@ -1,10 +0,0 @@
/*
* Copyright © 2026 RTAkland
* Author: RTAkland
* Date: 2026/9/4
*/
package cn.rtast.libmc.common.packet
public interface MinecraftPacket : PacketEvent
@@ -1,10 +0,0 @@
/*
* Copyright © 2026 RTAkland
* Author: RTAkland
* Date: 2026/9/5
*/
package cn.rtast.libmc.common.packet
public interface PacketEvent
@@ -5,7 +5,7 @@
*/
package cn.rtast.libmc.common
package cn.rtast.libmc
/**
* An object class used to pass some parameters
@@ -5,7 +5,7 @@
*/
package cn.rtast.libmc.common.crypto
package cn.rtast.libmc.crypto
public fun interface AuthenticationProvider {
public suspend fun joinServer(url: String, accessToken: String, uuid: String, serverIdHash: String)
@@ -5,7 +5,7 @@
*/
package cn.rtast.libmc.common.crypto
package cn.rtast.libmc.crypto
public interface NetworkCipher {
public suspend fun encrypt(buffer: ByteArray, offset: Int, length: Int)
@@ -5,7 +5,7 @@
*/
package cn.rtast.libmc.common.crypto
package cn.rtast.libmc.crypto
public data class ProtocolContext(
val rsaEncryptor: RSA1024Encryptor,
@@ -20,13 +20,14 @@ public class ProtocolContextBuilder(private val onlineMode: Boolean) {
public lateinit var cipherFactory: (sharedKey: ByteArray) -> NetworkCipher
public lateinit var authProvider: AuthenticationProvider
public fun build(): ProtocolContext = ProtocolContext(
rsaEncryptor = if (::rsaEncryptor.isInitialized) rsaEncryptor else error("rsaEncryptor is required"),
sha1Hasher = if (::sha1Hasher.isInitialized) sha1Hasher else error("sha1Hasher is required"),
cipherFactory = if (::cipherFactory.isInitialized) cipherFactory else error("cipherFactory is required"),
authProvider = if (::authProvider.isInitialized) if (onlineMode) authProvider
else error("authProvider is required") else error("authProvider is required")
)
public fun build(): ProtocolContext =
ProtocolContext(
rsaEncryptor = if (::rsaEncryptor.isInitialized) rsaEncryptor else error("rsaEncryptor is required"),
sha1Hasher = if (::sha1Hasher.isInitialized) sha1Hasher else error("sha1Hasher is required"),
cipherFactory = if (::cipherFactory.isInitialized) cipherFactory else error("cipherFactory is required"),
authProvider = if (::authProvider.isInitialized) if (onlineMode) authProvider
else error("authProvider is required") else error("authProvider is required")
)
}
public fun interface RSA1024Encryptor {
@@ -5,17 +5,17 @@
*/
package cn.rtast.libmc.common.packet
package cn.rtast.libmc.packet
/**
* reserved packet
*/
public data class UnknownPacket(val packetId: Int, val data: ByteArray) : MinecraftPacket {
public data class ClientboundUnknownPacket(val packetId: Int, val data: ByteArray) : MinecraftPacket {
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (other == null || this::class != other::class) return false
other as UnknownPacket
other as ClientboundUnknownPacket
if (packetId != other.packetId) return false
if (!data.contentEquals(other.data)) return false
@@ -0,0 +1,10 @@
/*
* Copyright © 2026 RTAkland
* Author: RTAkland
* Date: 2026/9/4
*/
package cn.rtast.libmc.packet
public interface MinecraftPacket
@@ -5,9 +5,9 @@
*/
package cn.rtast.libmc.common.packet
package cn.rtast.libmc.packet
import cn.rtast.libmc.common.stream.BytesBuffer
import cn.rtast.libmc.stream.BytesBuffer
public interface Encoder<in T> {
public suspend fun encode(buffer: BytesBuffer, value: T)
@@ -5,10 +5,10 @@
*/
package cn.rtast.libmc.common.packet
package cn.rtast.libmc.packet
import cn.rtast.libmc.common.stream.BytesBuffer
import cn.rtast.libmc.common.primitives.writeVarInt
import cn.rtast.libmc.primitives.writeVarInt
import cn.rtast.libmc.stream.BytesBuffer
import kotlin.reflect.KClass
public class PacketRegistry {
@@ -29,7 +29,7 @@ public class PacketRegistry {
}
public suspend fun decodePacket(packetId: Int, buffer: BytesBuffer): MinecraftPacket =
idToCodec[packetId]?.decode(buffer) ?: UnknownPacket(packetId, buffer.readBytes(buffer.remaining.toInt()))
idToCodec[packetId]?.decode(buffer) ?: ClientboundUnknownPacket(packetId, buffer.readRemainingBytes())
public suspend fun <T : MinecraftPacket> encodePacket(buffer: BytesBuffer, packet: T) {
@Suppress("UNCHECKED_CAST")
@@ -5,9 +5,9 @@
*/
package cn.rtast.libmc.common.primitives
package cn.rtast.libmc.primitives
import cn.rtast.libmc.common.stream.BytesBuffer
import cn.rtast.libmc.stream.BytesBuffer
public suspend fun BytesBuffer.readBitSet(): LongArray {
val count = this.readVarInt()
@@ -5,9 +5,9 @@
*/
package cn.rtast.libmc.common.primitives
package cn.rtast.libmc.primitives
import cn.rtast.libmc.common.stream.BytesBuffer
import cn.rtast.libmc.stream.BytesBuffer
public sealed interface IdOrX<out T> {
public data class Inline<T>(val value: T) : IdOrX<T>
@@ -5,9 +5,9 @@
*/
package cn.rtast.libmc.common.primitives
package cn.rtast.libmc.primitives
import cn.rtast.libmc.common.stream.BytesBuffer
import cn.rtast.libmc.stream.BytesBuffer
public sealed interface IdSet {
public data class Tag(val tagName: String) : IdSet
@@ -5,10 +5,10 @@
*/
package cn.rtast.libmc.common.primitives
package cn.rtast.libmc.primitives
import cn.rtast.libmc.common.stream.BytesBuffer
import cn.rtast.libmc.common.packet.PacketCodec
import cn.rtast.libmc.packet.PacketCodec
import cn.rtast.libmc.stream.BytesBuffer
public object McStringCodec : PacketCodec<String> {
override suspend fun encode(buffer: BytesBuffer, value: String) {
@@ -5,9 +5,9 @@
*/
package cn.rtast.libmc.common.primitives
package cn.rtast.libmc.primitives
import cn.rtast.libmc.common.stream.BytesBuffer
import cn.rtast.libmc.stream.BytesBuffer
public suspend inline fun <T> BytesBuffer.readOptional(block: BytesBuffer.() -> T): T? {
val hasData = this.readBoolean()
@@ -5,9 +5,9 @@
*/
package cn.rtast.libmc.common.primitives
package cn.rtast.libmc.primitives
import cn.rtast.libmc.common.stream.BytesBuffer
import cn.rtast.libmc.stream.BytesBuffer
public suspend fun BytesBuffer.readPrefixedByteArray(): ByteArray {
@@ -5,9 +5,9 @@
*/
package cn.rtast.libmc.common.primitives
package cn.rtast.libmc.primitives
import cn.rtast.libmc.common.stream.BytesBuffer
import cn.rtast.libmc.stream.BytesBuffer
import kotlin.uuid.Uuid
public suspend fun BytesBuffer.writeUuid(uuid: Uuid): Unit = uuid.toLongs { mostSignificantBits, leastSignificantBits ->
@@ -5,10 +5,10 @@
*/
package cn.rtast.libmc.common.primitives
package cn.rtast.libmc.primitives
import cn.rtast.libmc.common.stream.BytesBuffer
import cn.rtast.libmc.common.packet.PacketCodec
import cn.rtast.libmc.packet.PacketCodec
import cn.rtast.libmc.stream.BytesBuffer
public object VarIntCodec : PacketCodec<Int> {
override suspend fun encode(buffer: BytesBuffer, value: Int) {
@@ -5,10 +5,10 @@
*/
package cn.rtast.libmc.common.primitives
package cn.rtast.libmc.primitives
import cn.rtast.libmc.common.stream.BytesBuffer
import cn.rtast.libmc.common.packet.PacketCodec
import cn.rtast.libmc.packet.PacketCodec
import cn.rtast.libmc.stream.BytesBuffer
public object VarLongCodec : PacketCodec<Long> {
override suspend fun encode(buffer: BytesBuffer, value: Long) {
@@ -5,7 +5,7 @@
*/
package cn.rtast.libmc.common.stream
package cn.rtast.libmc.stream
public expect class BytesBuffer {
public constructor()
@@ -5,7 +5,7 @@
*/
package cn.rtast.libmc.common.stream
package cn.rtast.libmc.stream
public enum class ByteOrder {
BIG_ENDIAN, LITTLE_ENDIAN
@@ -5,7 +5,7 @@
*/
package cn.rtast.libmc.common.stream
package cn.rtast.libmc.stream
public expect open class ReadChannel() {
public open suspend fun readByte(): Byte
@@ -5,9 +5,10 @@
*/
package cn.rtast.libmc.common.stream
package cn.rtast.libmc.stream
import cn.rtast.libmc.LibMCContext
import cn.rtast.libmc.common.LibMCContext
public expect class Socket public constructor(host: String, port: Int, context: LibMCContext) {
public fun openReadChannel(): ReadChannel
@@ -5,7 +5,7 @@
*/
package cn.rtast.libmc.common
package cn.rtast.libmc
public expect fun ByteArray.zlibDecompress(): ByteArray
@@ -7,8 +7,8 @@
package test
import cn.rtast.libmc.common.zlibCompress
import cn.rtast.libmc.common.zlibDecompress
import cn.rtast.libmc.zlibCompress
import cn.rtast.libmc.zlibDecompress
import kotlin.test.Test
import kotlin.test.assertContentEquals
import kotlin.test.assertEquals
@@ -4,7 +4,7 @@
* Date: 2026/9/3
*/
package cn.rtast.libmc.common
package cn.rtast.libmc
/**
* No Context for jvm targets
@@ -4,7 +4,7 @@
* Date: 2026/9/3
*/
package cn.rtast.libmc.common.stream
package cn.rtast.libmc.stream
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
@@ -4,7 +4,7 @@
* Date: 2026/9/3
*/
package cn.rtast.libmc.common.stream
package cn.rtast.libmc.stream
import java.io.EOFException
import java.io.InputStream
@@ -5,7 +5,7 @@
*/
package cn.rtast.libmc.common.stream
package cn.rtast.libmc.stream
internal fun ByteArray.toShort(endian: ByteOrder = ByteOrder.BIG_ENDIAN): Short {
val b1 = this[0].toInt() and 0xFF
@@ -4,9 +4,9 @@
* Date: 2026/9/3
*/
package cn.rtast.libmc.common.stream
package cn.rtast.libmc.stream
import cn.rtast.libmc.common.LibMCContext
import cn.rtast.libmc.LibMCContext
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import java.net.DatagramPacket
@@ -4,7 +4,7 @@
* Date: 2026/9/4
*/
package cn.rtast.libmc.common
package cn.rtast.libmc
import java.io.ByteArrayInputStream
import java.io.ByteArrayOutputStream
@@ -6,7 +6,7 @@
@file:Suppress("PropertyName")
package cn.rtast.libmc.common
package cn.rtast.libmc
import io.ktor.network.selector.*
import kotlinx.coroutines.Dispatchers
@@ -4,7 +4,7 @@
* Date: 2026/9/3
*/
package cn.rtast.libmc.common.stream
package cn.rtast.libmc.stream
import io.ktor.utils.io.core.*
import kotlinx.io.*
@@ -4,7 +4,7 @@
* Date: 2026/9/3
*/
package cn.rtast.libmc.common.stream
package cn.rtast.libmc.stream
import io.ktor.utils.io.*
import io.ktor.utils.io.bits.*
@@ -4,7 +4,7 @@
* Date: 2026/9/3
*/
package cn.rtast.libmc.common.stream
package cn.rtast.libmc.stream
import cn.rtast.libmc.common.LibMCContext
import io.ktor.network.sockets.*
@@ -6,7 +6,7 @@
@file:OptIn(ExperimentalForeignApi::class)
package cn.rtast.libmc.common
package cn.rtast.libmc
import kotlinx.cinterop.*
import platform.zlib.*