complete child side api
This commit is contained in:
parent
32bb9628d3
commit
aa4a229b7d
|
|
@ -2,26 +2,46 @@ package cc.maxmc.msm.child.api
|
|||
|
||||
import cc.maxmc.msm.api.MultiServerManAPI
|
||||
import cc.maxmc.msm.api.misc.ServerInfo
|
||||
import cc.maxmc.msm.child.netty.NetClient
|
||||
import cc.maxmc.msm.common.network.packet.PPacketAPICall
|
||||
import net.md_5.bungee.api.connection.ProxiedPlayer
|
||||
import java.util.UUID
|
||||
import java.util.concurrent.Future
|
||||
import java.util.*
|
||||
import java.util.concurrent.CompletableFuture
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
object APIImpl: MultiServerManAPI {
|
||||
val apiCallCache = HashMap<UUID, Future<Any>>()
|
||||
object APIImpl : MultiServerManAPI {
|
||||
val apiCallCache = HashMap<UUID, CompletableFuture<out Any>>()
|
||||
|
||||
override fun getServer(type: String, players: MutableList<ProxiedPlayer>): ServerInfo {
|
||||
TODO("Not yet implemented")
|
||||
val packet = PPacketAPICall.PPacketCallGetServer(type, players.map { it.name })
|
||||
NetClient.sendPacket(packet)
|
||||
val future = CompletableFuture<ServerInfo>()
|
||||
apiCallCache[UUID.randomUUID()] = future
|
||||
return future.get(1, TimeUnit.SECONDS)
|
||||
}
|
||||
|
||||
override fun informEnd(id: Int) {
|
||||
TODO("Not yet implemented")
|
||||
val packet = PPacketAPICall.PPacketCallInformEnd(id)
|
||||
NetClient.sendPacket(packet)
|
||||
val future = CompletableFuture<Unit>()
|
||||
apiCallCache[UUID.randomUUID()] = future
|
||||
future.get(1, TimeUnit.SECONDS)
|
||||
return
|
||||
}
|
||||
|
||||
override fun getPlayerServer(player: ProxiedPlayer): ServerInfo {
|
||||
TODO("Not yet implemented")
|
||||
val packet = PPacketAPICall.PPacketCallGetPlayerServer(player.name)
|
||||
NetClient.sendPacket(packet)
|
||||
val future = CompletableFuture<ServerInfo>()
|
||||
apiCallCache[UUID.randomUUID()] = future
|
||||
return future.get(1, TimeUnit.SECONDS)
|
||||
}
|
||||
|
||||
override fun containPlayer(player: ProxiedPlayer): Boolean {
|
||||
TODO("Not yet implemented")
|
||||
val packet = PPacketAPICall.PPacketCallContainPlayer(player.name)
|
||||
NetClient.sendPacket(packet)
|
||||
val future = CompletableFuture<Boolean>()
|
||||
apiCallCache[UUID.randomUUID()] = future
|
||||
return future.get(1, TimeUnit.SECONDS)
|
||||
}
|
||||
}
|
||||
|
|
@ -1,10 +1,7 @@
|
|||
package cc.maxmc.msm.common.network.packet
|
||||
|
||||
import cc.maxmc.msm.api.misc.EnumAPI
|
||||
import cc.maxmc.msm.api.misc.ServerInfo
|
||||
import cc.maxmc.msm.common.network.BungeePacket
|
||||
import cc.maxmc.msm.common.utils.readServerInfo
|
||||
import cc.maxmc.msm.common.utils.writeServerInfo
|
||||
import io.netty.buffer.ByteBuf
|
||||
import net.md_5.bungee.protocol.DefinedPacket
|
||||
import java.util.*
|
||||
|
|
@ -15,10 +12,12 @@ sealed class PPacketAPICall(
|
|||
) : BungeePacket() {
|
||||
override fun encode(buf: ByteBuf) {
|
||||
DefinedPacket.writeVarInt(api.ordinal, buf)
|
||||
DefinedPacket.writeUUID(uid, buf)
|
||||
}
|
||||
|
||||
override fun decode(buf: ByteBuf) {
|
||||
api = EnumAPI.values()[buf.readByte().toInt()]
|
||||
uid = DefinedPacket.readUUID(buf)
|
||||
}
|
||||
|
||||
class PPacketCallGetServer(
|
||||
|
|
@ -53,16 +52,16 @@ sealed class PPacketAPICall(
|
|||
}
|
||||
|
||||
class PPacketCallGetPlayerServer(
|
||||
var serverInfo: ServerInfo = ServerInfo()
|
||||
var player: String = ""
|
||||
) : PPacketAPICall() {
|
||||
override fun encode(buf: ByteBuf) {
|
||||
super.encode(buf)
|
||||
buf.writeServerInfo(serverInfo)
|
||||
DefinedPacket.writeString(player, buf)
|
||||
}
|
||||
|
||||
override fun decode(buf: ByteBuf) {
|
||||
super.decode(buf)
|
||||
serverInfo = buf.readServerInfo()
|
||||
player = DefinedPacket.readString(buf)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue