Rename project
This commit is contained in:
37 files changed
+105
-91
No files matched your search
@@ -1,4 +1,4 @@
|
|||||||
# mcping
|
# libmc
|
||||||
|
|
||||||
A lightweight motd ping / rcon client library for kotlin multiplatform and java,
|
A lightweight motd ping / rcon client library for kotlin multiplatform and java,
|
||||||
no dependencies in `jvm` target except `kotlin-stdlib`
|
no dependencies in `jvm` target except `kotlin-stdlib`
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
allprojects {
|
allprojects {
|
||||||
group = "cn.rtast.mcping"
|
group = "cn.rtast.libmc"
|
||||||
version = providers.gradleProperty("libVersion").get()
|
version = providers.gradleProperty("libVersion").get()
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
|
|||||||
+2
-1
@@ -5,7 +5,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
package cn.rtast.mcping.platform
|
package cn.rtast.libmc.common
|
||||||
|
|
||||||
@Suppress("CLASSNAME")
|
@Suppress("CLASSNAME")
|
||||||
public expect class _Buffer {
|
public expect class _Buffer {
|
||||||
@@ -24,6 +24,7 @@ public expect class _Buffer {
|
|||||||
public fun readLong(endian: ByteOrder = ByteOrder.BIG_ENDIAN): Long
|
public fun readLong(endian: ByteOrder = ByteOrder.BIG_ENDIAN): Long
|
||||||
public fun readBytes(length: Int): ByteArray
|
public fun readBytes(length: Int): ByteArray
|
||||||
public fun toByteArray(): ByteArray
|
public fun toByteArray(): ByteArray
|
||||||
|
public fun hasRemaining(): Boolean
|
||||||
public fun close()
|
public fun close()
|
||||||
public val size: Int
|
public val size: Int
|
||||||
}
|
}
|
||||||
+1
-1
@@ -5,7 +5,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
package cn.rtast.mcping.platform
|
package cn.rtast.libmc.common
|
||||||
|
|
||||||
public enum class ByteOrder {
|
public enum class ByteOrder {
|
||||||
BIG_ENDIAN, LITTLE_ENDIAN
|
BIG_ENDIAN, LITTLE_ENDIAN
|
||||||
+1
-1
@@ -5,7 +5,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
package cn.rtast.mcping.platform
|
package cn.rtast.libmc.common
|
||||||
|
|
||||||
@Suppress("CLASSNAME")
|
@Suppress("CLASSNAME")
|
||||||
public expect class _ReadChannel {
|
public expect class _ReadChannel {
|
||||||
+2
-2
@@ -5,10 +5,10 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
package cn.rtast.mcping.platform
|
package cn.rtast.libmc.common
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An object class used to pass some parameters
|
* An object class used to pass some parameters
|
||||||
* that exists only on native targets
|
* that exists only on native targets
|
||||||
*/
|
*/
|
||||||
public expect class MCPingContext()
|
public expect class LibMCContext()
|
||||||
+3
-3
@@ -5,17 +5,17 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
package cn.rtast.mcping.platform
|
package cn.rtast.libmc.common
|
||||||
|
|
||||||
@Suppress("CLASSNAME")
|
@Suppress("CLASSNAME")
|
||||||
public expect class _Socket public constructor(host: String, port: Int, context: MCPingContext) {
|
public expect class _Socket public constructor(host: String, port: Int, context: LibMCContext) {
|
||||||
public fun openReadChannel(): _ReadChannel
|
public fun openReadChannel(): _ReadChannel
|
||||||
public fun openWriteChannel(): _WriteChannel
|
public fun openWriteChannel(): _WriteChannel
|
||||||
public fun close()
|
public fun close()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("CLASSNAME")
|
@Suppress("CLASSNAME")
|
||||||
public expect class _UdpSocket public constructor(host: String, port: Int, context: MCPingContext) {
|
public expect class _UdpSocket public constructor(host: String, port: Int, context: LibMCContext) {
|
||||||
public fun sendAndReceive(data: ByteArray): ByteArray
|
public fun sendAndReceive(data: ByteArray): ByteArray
|
||||||
public fun close()
|
public fun close()
|
||||||
}
|
}
|
||||||
+4
-1
@@ -4,7 +4,7 @@
|
|||||||
* Date: 2026/9/3
|
* Date: 2026/9/3
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.rtast.mcping.platform
|
package cn.rtast.libmc.common
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream
|
import java.io.ByteArrayOutputStream
|
||||||
|
|
||||||
@@ -21,6 +21,7 @@ public actual class _Buffer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public actual fun writeByte(value: Byte) {
|
public actual fun writeByte(value: Byte) {
|
||||||
|
readBuffer = null
|
||||||
outStream.write(value.toInt())
|
outStream.write(value.toInt())
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -58,6 +59,7 @@ public actual class _Buffer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public actual fun writeBytes(bytes: ByteArray) {
|
public actual fun writeBytes(bytes: ByteArray) {
|
||||||
|
readBuffer = null
|
||||||
outStream.write(bytes)
|
outStream.write(bytes)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -88,6 +90,7 @@ public actual class _Buffer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public actual fun toByteArray(): ByteArray = outStream.toByteArray()
|
public actual fun toByteArray(): ByteArray = outStream.toByteArray()
|
||||||
|
public actual fun hasRemaining(): Boolean = readOffset < ensureReadArray().size
|
||||||
|
|
||||||
public actual fun close(): Unit = outStream.close()
|
public actual fun close(): Unit = outStream.close()
|
||||||
public actual val size: Int get() = outStream.size()
|
public actual val size: Int get() = outStream.size()
|
||||||
+1
-1
@@ -5,7 +5,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
package cn.rtast.mcping.platform
|
package cn.rtast.libmc.common
|
||||||
|
|
||||||
import java.io.EOFException
|
import java.io.EOFException
|
||||||
import java.io.InputStream
|
import java.io.InputStream
|
||||||
+2
-2
@@ -4,9 +4,9 @@
|
|||||||
* Date: 2026/9/3
|
* Date: 2026/9/3
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.rtast.mcping.platform
|
package cn.rtast.libmc.common
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* No Context for jvm targets
|
* No Context for jvm targets
|
||||||
*/
|
*/
|
||||||
public actual class MCPingContext
|
public actual class LibMCContext
|
||||||
+1
-1
@@ -5,7 +5,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
package cn.rtast.mcping.platform
|
package cn.rtast.libmc.common
|
||||||
|
|
||||||
internal fun ByteArray.toShort(endian: ByteOrder = ByteOrder.BIG_ENDIAN): Short {
|
internal fun ByteArray.toShort(endian: ByteOrder = ByteOrder.BIG_ENDIAN): Short {
|
||||||
val b1 = this[0].toInt() and 0xFF
|
val b1 = this[0].toInt() and 0xFF
|
||||||
+3
-3
@@ -4,7 +4,7 @@
|
|||||||
* Date: 2026/9/3
|
* Date: 2026/9/3
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.rtast.mcping.platform
|
package cn.rtast.libmc.common
|
||||||
|
|
||||||
import java.net.DatagramPacket
|
import java.net.DatagramPacket
|
||||||
import java.net.DatagramSocket
|
import java.net.DatagramSocket
|
||||||
@@ -12,7 +12,7 @@ import java.net.InetSocketAddress
|
|||||||
import java.net.Socket as JvmSocket
|
import java.net.Socket as JvmSocket
|
||||||
|
|
||||||
@Suppress("CLASSNAME")
|
@Suppress("CLASSNAME")
|
||||||
public actual class _Socket public actual constructor(host: String, port: Int, context: MCPingContext) {
|
public actual class _Socket public actual constructor(host: String, port: Int, context: LibMCContext) {
|
||||||
private val socket = JvmSocket(host, port)
|
private val socket = JvmSocket(host, port)
|
||||||
|
|
||||||
public actual fun openReadChannel(): _ReadChannel = _ReadChannel(socket.getInputStream())
|
public actual fun openReadChannel(): _ReadChannel = _ReadChannel(socket.getInputStream())
|
||||||
@@ -21,7 +21,7 @@ public actual class _Socket public actual constructor(host: String, port: Int, c
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("CLASSNAME")
|
@Suppress("CLASSNAME")
|
||||||
public actual class _UdpSocket public actual constructor(host: String, port: Int, context: MCPingContext) {
|
public actual class _UdpSocket public actual constructor(host: String, port: Int, context: LibMCContext) {
|
||||||
private val socket = DatagramSocket().apply {
|
private val socket = DatagramSocket().apply {
|
||||||
soTimeout = 3000
|
soTimeout = 3000
|
||||||
connect(InetSocketAddress(host, port))
|
connect(InetSocketAddress(host, port))
|
||||||
+11
-2
@@ -4,7 +4,7 @@
|
|||||||
* Date: 2026/9/3
|
* Date: 2026/9/3
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.rtast.mcping.platform
|
package cn.rtast.libmc.common
|
||||||
|
|
||||||
import io.ktor.utils.io.bits.*
|
import io.ktor.utils.io.bits.*
|
||||||
import kotlinx.io.Buffer
|
import kotlinx.io.Buffer
|
||||||
@@ -56,7 +56,16 @@ public actual class _Buffer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public actual fun readBytes(length: Int): ByteArray = _delegateBuf.readByteArray(length)
|
public actual fun readBytes(length: Int): ByteArray = _delegateBuf.readByteArray(length)
|
||||||
public actual fun toByteArray(): ByteArray = _delegateBuf.peek().readByteArray()
|
public actual fun toByteArray(): ByteArray {
|
||||||
|
val copy = _delegateBuf.peek()
|
||||||
|
return try {
|
||||||
|
copy.readByteArray()
|
||||||
|
} finally {
|
||||||
|
copy.close()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public actual fun hasRemaining(): Boolean = !_delegateBuf.exhausted()
|
||||||
public actual fun close(): Unit = _delegateBuf.close()
|
public actual fun close(): Unit = _delegateBuf.close()
|
||||||
|
|
||||||
public actual val size: Int
|
public actual val size: Int
|
||||||
+1
-1
@@ -4,7 +4,7 @@
|
|||||||
* Date: 2026/9/3
|
* Date: 2026/9/3
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.rtast.mcping.platform
|
package cn.rtast.libmc.common
|
||||||
|
|
||||||
import io.ktor.utils.io.*
|
import io.ktor.utils.io.*
|
||||||
import io.ktor.utils.io.bits.reverseByteOrder
|
import io.ktor.utils.io.bits.reverseByteOrder
|
||||||
+2
-2
@@ -6,13 +6,13 @@
|
|||||||
|
|
||||||
@file:Suppress("PropertyName")
|
@file:Suppress("PropertyName")
|
||||||
|
|
||||||
package cn.rtast.mcping.platform
|
package cn.rtast.libmc.common
|
||||||
|
|
||||||
import io.ktor.network.selector.*
|
import io.ktor.network.selector.*
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.IO
|
import kotlinx.coroutines.IO
|
||||||
|
|
||||||
public actual class MCPingContext actual constructor() {
|
public actual class LibMCContext actual constructor() {
|
||||||
internal var _selectorManager: SelectorManager = SelectorManager(Dispatchers.IO)
|
internal var _selectorManager: SelectorManager = SelectorManager(Dispatchers.IO)
|
||||||
internal var _autoCloseSelectorManager: Boolean = false
|
internal var _autoCloseSelectorManager: Boolean = false
|
||||||
|
|
||||||
+3
-3
@@ -4,7 +4,7 @@
|
|||||||
* Date: 2026/9/3
|
* Date: 2026/9/3
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.rtast.mcping.platform
|
package cn.rtast.libmc.common
|
||||||
|
|
||||||
import io.ktor.network.sockets.*
|
import io.ktor.network.sockets.*
|
||||||
import io.ktor.utils.io.core.*
|
import io.ktor.utils.io.core.*
|
||||||
@@ -12,7 +12,7 @@ import kotlinx.coroutines.runBlocking
|
|||||||
import kotlinx.io.readByteArray
|
import kotlinx.io.readByteArray
|
||||||
|
|
||||||
@Suppress("CLASSNAME")
|
@Suppress("CLASSNAME")
|
||||||
public actual class _Socket public actual constructor(host: String, port: Int, context: MCPingContext) {
|
public actual class _Socket public actual constructor(host: String, port: Int, context: LibMCContext) {
|
||||||
private val ctx = context
|
private val ctx = context
|
||||||
private val socket = runBlocking { aSocket(ctx._selectorManager).tcp().connect(host, port) }
|
private val socket = runBlocking { aSocket(ctx._selectorManager).tcp().connect(host, port) }
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ public actual class _Socket public actual constructor(host: String, port: Int, c
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("CLASSNAME")
|
@Suppress("CLASSNAME")
|
||||||
public actual class _UdpSocket public actual constructor(host: String, port: Int, context: MCPingContext) {
|
public actual class _UdpSocket public actual constructor(host: String, port: Int, context: LibMCContext) {
|
||||||
private val ctx = context
|
private val ctx = context
|
||||||
|
|
||||||
// use bind to create an unconnected socket
|
// use bind to create an unconnected socket
|
||||||
+2
-2
@@ -5,9 +5,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
package cn.rtast.mcping.bedrock
|
package cn.rtast.libmc.mcping.bedrock
|
||||||
|
|
||||||
import cn.rtast.mcping.platform._Buffer
|
import cn.rtast.libmc.common._Buffer
|
||||||
import kotlin.random.Random
|
import kotlin.random.Random
|
||||||
|
|
||||||
private val rakNetMagic = byteArrayOf(
|
private val rakNetMagic = byteArrayOf(
|
||||||
+4
-3
@@ -5,10 +5,11 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
package cn.rtast.mcping.bedrock
|
package cn.rtast.libmc.mcping.bedrock
|
||||||
|
|
||||||
|
import cn.rtast.libmc.common._Buffer
|
||||||
|
import cn.rtast.libmc.common._UdpSocket
|
||||||
|
|
||||||
import cn.rtast.mcping.platform._Buffer
|
|
||||||
import cn.rtast.mcping.platform._UdpSocket
|
|
||||||
|
|
||||||
internal fun _UdpSocket.sendPacket(packet: MinecraftBedrockPacket): ByteArray {
|
internal fun _UdpSocket.sendPacket(packet: MinecraftBedrockPacket): ByteArray {
|
||||||
val buf = _Buffer()
|
val buf = _Buffer()
|
||||||
+6
-6
@@ -5,15 +5,15 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
package cn.rtast.mcping.bedrock
|
package cn.rtast.libmc.mcping.bedrock
|
||||||
|
|
||||||
import cn.rtast.mcping.PingResponse
|
import cn.rtast.libmc.common.LibMCContext
|
||||||
import cn.rtast.mcping.platform.MCPingContext
|
import cn.rtast.libmc.common._UdpSocket
|
||||||
import cn.rtast.mcping.platform._UdpSocket
|
import cn.rtast.libmc.common.wrap
|
||||||
import cn.rtast.mcping.platform.wrap
|
import cn.rtast.libmc.mcping.PingResponse
|
||||||
import kotlin.time.Clock
|
import kotlin.time.Clock
|
||||||
|
|
||||||
internal fun pingBedrockServer(host: String, port: Int, context: MCPingContext): PingResponse {
|
internal fun pingBedrockServer(host: String, port: Int, context: LibMCContext): PingResponse {
|
||||||
val socket = _UdpSocket(host, port, context)
|
val socket = _UdpSocket(host, port, context)
|
||||||
return try {
|
return try {
|
||||||
val sendTime = Clock.System.now().toEpochMilliseconds()
|
val sendTime = Clock.System.now().toEpochMilliseconds()
|
||||||
+2
-2
@@ -5,9 +5,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
package cn.rtast.mcping.bedrock
|
package cn.rtast.libmc.mcping.bedrock
|
||||||
|
|
||||||
import cn.rtast.mcping.PingResponse
|
import cn.rtast.libmc.mcping.PingResponse
|
||||||
|
|
||||||
public enum class BedrockGameMode(public val gameMode: String) {
|
public enum class BedrockGameMode(public val gameMode: String) {
|
||||||
Survival("Survival"),
|
Survival("Survival"),
|
||||||
+3
-3
@@ -4,10 +4,10 @@
|
|||||||
* Date: 2026/9/3
|
* Date: 2026/9/3
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.rtast.mcping.java
|
package cn.rtast.libmc.mcping.java
|
||||||
|
|
||||||
import cn.rtast.mcping.platform._Buffer
|
import cn.rtast.libmc.common._Buffer
|
||||||
import cn.rtast.mcping.platform._ReadChannel
|
import cn.rtast.libmc.common._ReadChannel
|
||||||
|
|
||||||
|
|
||||||
internal fun _Buffer.writeVarInt(value: Int) {
|
internal fun _Buffer.writeVarInt(value: Int) {
|
||||||
+2
-2
@@ -5,9 +5,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
package cn.rtast.mcping.java
|
package cn.rtast.libmc.mcping.java
|
||||||
|
|
||||||
import cn.rtast.mcping.platform._Buffer
|
import cn.rtast.libmc.common._Buffer
|
||||||
|
|
||||||
internal interface MinecraftPacket {
|
internal interface MinecraftPacket {
|
||||||
val packetId: Int
|
val packetId: Int
|
||||||
+3
-3
@@ -5,10 +5,10 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
package cn.rtast.mcping.java
|
package cn.rtast.libmc.mcping.java
|
||||||
|
|
||||||
import cn.rtast.mcping.platform._Buffer
|
import cn.rtast.libmc.common._Buffer
|
||||||
import cn.rtast.mcping.platform._WriteChannel
|
import cn.rtast.libmc.common._WriteChannel
|
||||||
|
|
||||||
internal fun _WriteChannel.sendPacket(packet: MinecraftPacket) {
|
internal fun _WriteChannel.sendPacket(packet: MinecraftPacket) {
|
||||||
val bodyBuffer = _Buffer()
|
val bodyBuffer = _Buffer()
|
||||||
+5
-5
@@ -5,14 +5,14 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
package cn.rtast.mcping.java
|
package cn.rtast.libmc.mcping.java
|
||||||
|
|
||||||
import cn.rtast.mcping.PingResponse
|
import cn.rtast.libmc.common.LibMCContext
|
||||||
import cn.rtast.mcping.platform.MCPingContext
|
import cn.rtast.libmc.common._Socket
|
||||||
import cn.rtast.mcping.platform._Socket
|
import cn.rtast.libmc.mcping.PingResponse
|
||||||
import kotlin.time.Clock
|
import kotlin.time.Clock
|
||||||
|
|
||||||
internal fun pingJavaServer(host: String, port: Int, context: MCPingContext): PingResponse {
|
internal fun pingJavaServer(host: String, port: Int, context: LibMCContext): PingResponse {
|
||||||
val socket = _Socket(host, port, context)
|
val socket = _Socket(host, port, context)
|
||||||
val receiveChannel = socket.openReadChannel()
|
val receiveChannel = socket.openReadChannel()
|
||||||
val sendChannel = socket.openWriteChannel()
|
val sendChannel = socket.openWriteChannel()
|
||||||
+5
-5
@@ -7,11 +7,11 @@
|
|||||||
@file:JvmName("McPing")
|
@file:JvmName("McPing")
|
||||||
|
|
||||||
|
|
||||||
package cn.rtast.mcping
|
package cn.rtast.libmc.mcping
|
||||||
|
|
||||||
import cn.rtast.mcping.bedrock.pingBedrockServer
|
import cn.rtast.libmc.common.LibMCContext
|
||||||
import cn.rtast.mcping.java.pingJavaServer
|
import cn.rtast.libmc.mcping.bedrock.pingBedrockServer
|
||||||
import cn.rtast.mcping.platform.MCPingContext
|
import cn.rtast.libmc.mcping.java.pingJavaServer
|
||||||
import kotlin.jvm.JvmName
|
import kotlin.jvm.JvmName
|
||||||
import kotlin.jvm.JvmOverloads
|
import kotlin.jvm.JvmOverloads
|
||||||
|
|
||||||
@@ -20,7 +20,7 @@ public fun mcping(
|
|||||||
host: String,
|
host: String,
|
||||||
port: Int,
|
port: Int,
|
||||||
type: ServerType = ServerType.Java,
|
type: ServerType = ServerType.Java,
|
||||||
context: MCPingContext = MCPingContext(),
|
context: LibMCContext = LibMCContext(),
|
||||||
): PingResponse = when (type) {
|
): PingResponse = when (type) {
|
||||||
ServerType.Java -> pingJavaServer(host, port, context)
|
ServerType.Java -> pingJavaServer(host, port, context)
|
||||||
ServerType.Bedrock -> pingBedrockServer(host, port, context)
|
ServerType.Bedrock -> pingBedrockServer(host, port, context)
|
||||||
+3
-3
@@ -5,10 +5,10 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
package cn.rtast.mcping
|
package cn.rtast.libmc.mcping
|
||||||
|
|
||||||
import cn.rtast.mcping.bedrock.BedrockPingResponse
|
import cn.rtast.libmc.mcping.bedrock.BedrockPingResponse
|
||||||
import cn.rtast.mcping.bedrock.parseBedrockPingResponse
|
import cn.rtast.libmc.mcping.bedrock.parseBedrockPingResponse
|
||||||
|
|
||||||
public data class PingResponse(
|
public data class PingResponse(
|
||||||
/**
|
/**
|
||||||
+1
-1
@@ -5,7 +5,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
package cn.rtast.mcping
|
package cn.rtast.libmc.mcping
|
||||||
|
|
||||||
public enum class ServerType {
|
public enum class ServerType {
|
||||||
Java, Bedrock
|
Java, Bedrock
|
||||||
@@ -7,8 +7,8 @@
|
|||||||
|
|
||||||
package test
|
package test
|
||||||
|
|
||||||
import cn.rtast.mcping.ServerType
|
import cn.rtast.libmc.mcping.ServerType
|
||||||
import cn.rtast.mcping.mcping
|
import cn.rtast.libmc.mcping.mcping
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import kotlin.test.Test
|
import kotlin.test.Test
|
||||||
|
|
||||||
|
|||||||
@@ -7,9 +7,9 @@
|
|||||||
|
|
||||||
package test;
|
package test;
|
||||||
|
|
||||||
import cn.rtast.mcping.McPing;
|
import cn.rtast.libmc.mcping.McPing;
|
||||||
import cn.rtast.mcping.PingResponse;
|
import cn.rtast.libmc.mcping.PingResponse;
|
||||||
import cn.rtast.mcping.ServerType;
|
import cn.rtast.libmc.mcping.ServerType;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -7,9 +7,9 @@
|
|||||||
|
|
||||||
package test
|
package test
|
||||||
|
|
||||||
import cn.rtast.mcping.ServerType
|
import cn.rtast.libmc.common.LibMCContext
|
||||||
import cn.rtast.mcping.mcping
|
import cn.rtast.libmc.mcping.ServerType
|
||||||
import cn.rtast.mcping.platform.MCPingContext
|
import cn.rtast.libmc.mcping.mcping
|
||||||
import io.ktor.network.selector.*
|
import io.ktor.network.selector.*
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.IO
|
import kotlinx.coroutines.IO
|
||||||
@@ -22,7 +22,7 @@ class TestMingwPing {
|
|||||||
fun `test ping java on mingw with selectorManager`() = runTest {
|
fun `test ping java on mingw with selectorManager`() = runTest {
|
||||||
val sm = SelectorManager(Dispatchers.IO)
|
val sm = SelectorManager(Dispatchers.IO)
|
||||||
val response =
|
val response =
|
||||||
mcping(host = "org.mc-complex.com", port = 25565, type = ServerType.Java, context = MCPingContext(sm))
|
mcping(host = "org.mc-complex.com", port = 25565, type = ServerType.Java, context = LibMCContext(sm))
|
||||||
println(response)
|
println(response)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -30,7 +30,7 @@ class TestMingwPing {
|
|||||||
fun `test ping bedrock on mingw with selectorManager`() = runTest {
|
fun `test ping bedrock on mingw with selectorManager`() = runTest {
|
||||||
val sm = SelectorManager(Dispatchers.IO)
|
val sm = SelectorManager(Dispatchers.IO)
|
||||||
val response =
|
val response =
|
||||||
mcping(host = "play.wildnetwork.net", port = 19132, type = ServerType.Bedrock, context = MCPingContext(sm))
|
mcping(host = "play.wildnetwork.net", port = 19132, type = ServerType.Bedrock, context = LibMCContext(sm))
|
||||||
println(response)
|
println(response)
|
||||||
println(response.toBedrockResponse())
|
println(response.toBedrockResponse())
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -5,8 +5,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
package cn.rtast.mcping.rconlib
|
package cn.rtast.libmc.mcping.rconlib
|
||||||
|
|
||||||
import cn.rtast.mcping.platform._Buffer
|
import cn.rtast.libmc.common._Buffer
|
||||||
|
|
||||||
internal fun _Buffer.writeNull() = writeByte(0x00)
|
internal fun _Buffer.writeNull() = writeByte(0x00)
|
||||||
+5
-5
@@ -5,12 +5,12 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
package cn.rtast.mcping.rconlib
|
package cn.rtast.libmc.mcping.rconlib
|
||||||
|
|
||||||
import cn.rtast.mcping.platform.ByteOrder
|
import cn.rtast.libmc.common.ByteOrder
|
||||||
import cn.rtast.mcping.platform._Buffer
|
import cn.rtast.libmc.common._Buffer
|
||||||
import cn.rtast.mcping.platform._ReadChannel
|
import cn.rtast.libmc.common._ReadChannel
|
||||||
import cn.rtast.mcping.platform._WriteChannel
|
import cn.rtast.libmc.common._WriteChannel
|
||||||
|
|
||||||
internal abstract class Packet {
|
internal abstract class Packet {
|
||||||
abstract val requestId: Int
|
abstract val requestId: Int
|
||||||
+1
-1
@@ -5,7 +5,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
package cn.rtast.mcping.rconlib
|
package cn.rtast.libmc.mcping.rconlib
|
||||||
|
|
||||||
internal object PacketType {
|
internal object PacketType {
|
||||||
const val AUTH = 3
|
const val AUTH = 3
|
||||||
+7
-7
@@ -6,19 +6,19 @@
|
|||||||
|
|
||||||
@file:JvmName("Rconlib")
|
@file:JvmName("Rconlib")
|
||||||
|
|
||||||
package cn.rtast.mcping.rconlib
|
package cn.rtast.libmc.mcping.rconlib
|
||||||
|
|
||||||
import cn.rtast.mcping.platform.MCPingContext
|
import cn.rtast.libmc.common.LibMCContext
|
||||||
import cn.rtast.mcping.platform._ReadChannel
|
import cn.rtast.libmc.common._ReadChannel
|
||||||
import cn.rtast.mcping.platform._Socket
|
import cn.rtast.libmc.common._Socket
|
||||||
import cn.rtast.mcping.platform._WriteChannel
|
import cn.rtast.libmc.common._WriteChannel
|
||||||
import kotlin.jvm.JvmName
|
import kotlin.jvm.JvmName
|
||||||
import kotlin.jvm.JvmOverloads
|
import kotlin.jvm.JvmOverloads
|
||||||
|
|
||||||
public class RCONClient internal constructor(
|
public class RCONClient internal constructor(
|
||||||
private val host: String,
|
private val host: String,
|
||||||
private val port: Int,
|
private val port: Int,
|
||||||
private val context: MCPingContext,
|
private val context: LibMCContext,
|
||||||
) : AutoCloseable {
|
) : AutoCloseable {
|
||||||
private var socket: _Socket? = null
|
private var socket: _Socket? = null
|
||||||
private var readChannel: _ReadChannel? = null
|
private var readChannel: _ReadChannel? = null
|
||||||
@@ -50,5 +50,5 @@ public class RCONClient internal constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
@JvmOverloads
|
@JvmOverloads
|
||||||
public fun rconClient(host: String, port: Int, context: MCPingContext = MCPingContext()): RCONClient =
|
public fun rconClient(host: String, port: Int, context: LibMCContext = LibMCContext()): RCONClient =
|
||||||
RCONClient(host, port, context)
|
RCONClient(host, port, context)
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
package test
|
package test
|
||||||
|
|
||||||
import cn.rtast.mcping.rconlib.rconClient
|
import cn.rtast.libmc.mcping.rconlib.rconClient
|
||||||
import kotlin.test.Test
|
import kotlin.test.Test
|
||||||
|
|
||||||
class TestRCON {
|
class TestRCON {
|
||||||
|
|||||||
@@ -7,8 +7,8 @@
|
|||||||
|
|
||||||
package test;
|
package test;
|
||||||
|
|
||||||
import cn.rtast.mcping.rconlib.RCONClient;
|
import cn.rtast.libmc.mcping.rconlib.RCONClient;
|
||||||
import cn.rtast.mcping.rconlib.Rconlib;
|
import cn.rtast.libmc.mcping.rconlib.Rconlib;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
public class TestRconClientOnJava {
|
public class TestRconClientOnJava {
|
||||||
|
|||||||
+2
-2
@@ -1,8 +1,8 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0"
|
id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0"
|
||||||
}
|
}
|
||||||
rootProject.name = "mcping"
|
rootProject.name = "libmc"
|
||||||
|
|
||||||
|
include(":common")
|
||||||
include(":mcping")
|
include(":mcping")
|
||||||
include(":rconlib")
|
include(":rconlib")
|
||||||
include(":common")
|
|
||||||
Reference in New Issue
Block a user