repackage
This commit is contained in:
parent
de1ad1d31b
commit
4db42f957c
|
|
@ -3,7 +3,7 @@ plugins {
|
|||
id("com.github.johnrengelman.shadow")
|
||||
}
|
||||
|
||||
group = "cc.maxmc.msm.controlled"
|
||||
group = "com.mohist.mistyrain.controlled"
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
|
|
@ -20,7 +20,7 @@ dependencies {
|
|||
|
||||
tasks.shadowJar {
|
||||
archiveClassifier.set(null as? String?)
|
||||
relocate("kotlin", "cc.maxmc.msm.lib.kotlin")
|
||||
relocate("kotlin", "com.mohist.mistyrain.lib.kotlin")
|
||||
}
|
||||
|
||||
tasks.build {
|
||||
|
|
|
|||
|
|
@ -1,15 +1,15 @@
|
|||
package cc.maxmc.msm.controlled
|
||||
package com.mohist.mistyrain.controlled
|
||||
|
||||
import cc.maxmc.msm.api.MultiServerManAPIProvider
|
||||
import cc.maxmc.msm.controlled.api.APIImpl
|
||||
import cc.maxmc.msm.controlled.listener.APIPacketListener
|
||||
import cc.maxmc.msm.controlled.command.Api
|
||||
import cc.maxmc.msm.controlled.command.Send
|
||||
import cc.maxmc.msm.controlled.listener.ProtocolListener
|
||||
import cc.maxmc.msm.controlled.netty.NetClient
|
||||
import cc.maxmc.msm.controlled.settings.Settings
|
||||
import cc.maxmc.msm.controlled.settings.SettingsReader
|
||||
import cc.maxmc.msm.common.network.netty.NetworkRegistry
|
||||
import com.mohist.mistyrain.api.MultiServerManAPIProvider
|
||||
import com.mohist.mistyrain.common.network.netty.NetworkRegistry
|
||||
import com.mohist.mistyrain.controlled.api.APIImpl
|
||||
import com.mohist.mistyrain.controlled.command.Api
|
||||
import com.mohist.mistyrain.controlled.command.Send
|
||||
import com.mohist.mistyrain.controlled.listener.APIPacketListener
|
||||
import com.mohist.mistyrain.controlled.listener.ProtocolListener
|
||||
import com.mohist.mistyrain.controlled.netty.NetClient
|
||||
import com.mohist.mistyrain.controlled.settings.Settings
|
||||
import com.mohist.mistyrain.controlled.settings.SettingsReader
|
||||
import net.md_5.bungee.api.ProxyServer
|
||||
import net.md_5.bungee.api.plugin.Plugin
|
||||
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
package cc.maxmc.msm.controlled.api
|
||||
package com.mohist.mistyrain.controlled.api
|
||||
|
||||
import cc.maxmc.msm.api.MultiServerManAPI
|
||||
import cc.maxmc.msm.api.misc.MatchInfo
|
||||
import cc.maxmc.msm.controlled.netty.NetClient
|
||||
import cc.maxmc.msm.common.network.packet.PPacketAPICall
|
||||
import com.mohist.mistyrain.api.MultiServerManAPI
|
||||
import com.mohist.mistyrain.api.misc.MatchInfo
|
||||
import com.mohist.mistyrain.common.network.packet.PPacketAPICall
|
||||
import com.mohist.mistyrain.controlled.netty.NetClient
|
||||
import java.util.*
|
||||
import java.util.concurrent.CompletableFuture
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package cc.maxmc.msm.controlled.command
|
||||
package com.mohist.mistyrain.controlled.command
|
||||
|
||||
import cc.maxmc.msm.api.MultiServerManAPIProvider
|
||||
import com.mohist.mistyrain.api.MultiServerManAPIProvider
|
||||
import net.md_5.bungee.api.CommandSender
|
||||
import net.md_5.bungee.api.chat.TextComponent
|
||||
import net.md_5.bungee.api.plugin.Command
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
package cc.maxmc.msm.controlled.command
|
||||
package com.mohist.mistyrain.controlled.command
|
||||
|
||||
import cc.maxmc.msm.controlled.netty.NetClient
|
||||
import cc.maxmc.msm.common.network.packet.PPacketDebug
|
||||
import com.mohist.mistyrain.common.network.packet.PPacketDebug
|
||||
import com.mohist.mistyrain.controlled.netty.NetClient
|
||||
import net.md_5.bungee.api.CommandSender
|
||||
import net.md_5.bungee.api.chat.TextComponent
|
||||
import net.md_5.bungee.api.plugin.Command
|
||||
|
|
@ -1,14 +1,13 @@
|
|||
package cc.maxmc.msm.controlled.listener
|
||||
package com.mohist.mistyrain.controlled.listener
|
||||
|
||||
import cc.maxmc.msm.controlled.api.APIImpl
|
||||
import cc.maxmc.msm.common.event.PacketReceiveEvent
|
||||
import cc.maxmc.msm.common.network.packet.CPacketAPICallback
|
||||
import com.mohist.mistyrain.common.network.packet.CPacketAPICallback
|
||||
import com.mohist.mistyrain.controlled.api.APIImpl
|
||||
import net.md_5.bungee.api.plugin.Listener
|
||||
import net.md_5.bungee.event.EventHandler
|
||||
|
||||
object APIPacketListener : Listener {
|
||||
@EventHandler
|
||||
fun onPacket(packetEvent: PacketReceiveEvent) {
|
||||
fun onPacket(packetEvent: com.mohist.mistyrain.common.event.PacketReceiveEvent) {
|
||||
val packet = packetEvent.packet
|
||||
if (packet !is CPacketAPICallback) {
|
||||
return
|
||||
|
|
@ -1,14 +1,12 @@
|
|||
package cc.maxmc.msm.controlled.listener
|
||||
package com.mohist.mistyrain.controlled.listener
|
||||
|
||||
import cc.maxmc.msm.controlled.Controlled
|
||||
import cc.maxmc.msm.controlled.misc.SubServer
|
||||
import cc.maxmc.msm.controlled.netty.NetClient
|
||||
import cc.maxmc.msm.controlled.settings.Settings
|
||||
import cc.maxmc.msm.common.event.ChannelInactiveEvent
|
||||
import cc.maxmc.msm.common.event.PacketReceiveEvent
|
||||
import cc.maxmc.msm.common.network.packet.*
|
||||
import cc.maxmc.msm.common.utils.log
|
||||
import cc.maxmc.msm.common.utils.pluginScope
|
||||
import com.mohist.mistyrain.common.network.packet.*
|
||||
import com.mohist.mistyrain.common.utils.log
|
||||
import com.mohist.mistyrain.common.utils.pluginScope
|
||||
import com.mohist.mistyrain.controlled.Controlled
|
||||
import com.mohist.mistyrain.controlled.misc.SubServer
|
||||
import com.mohist.mistyrain.controlled.netty.NetClient
|
||||
import com.mohist.mistyrain.controlled.settings.Settings
|
||||
import kotlinx.coroutines.launch
|
||||
import net.md_5.bungee.api.plugin.Listener
|
||||
import net.md_5.bungee.event.EventHandler
|
||||
|
|
@ -21,7 +19,7 @@ object ProtocolListener : Listener {
|
|||
private val serverCache = HashMap<UUID, SubServer>()
|
||||
|
||||
@EventHandler
|
||||
fun onGetInfo(packetE: PacketReceiveEvent) {
|
||||
fun onGetInfo(packetE: com.mohist.mistyrain.common.event.PacketReceiveEvent) {
|
||||
if (packetE.packet !is CPacketGetInfo) return
|
||||
val types = Controlled.instance.dataFolder.toPath().resolve("patterns").listDirectoryEntries()
|
||||
.filter { it.isDirectory() }.map { it.name }.toMutableSet()
|
||||
|
|
@ -30,7 +28,7 @@ object ProtocolListener : Listener {
|
|||
}
|
||||
|
||||
@EventHandler
|
||||
fun onRequestServer(packetE: PacketReceiveEvent) {
|
||||
fun onRequestServer(packetE: com.mohist.mistyrain.common.event.PacketReceiveEvent) {
|
||||
val packet = packetE.packet as? CPacketRequestServer ?: return
|
||||
val serverInfo = packet.serverInfo
|
||||
log("§a| §7正在启动服务器 ${serverInfo.server}")
|
||||
|
|
@ -47,12 +45,12 @@ object ProtocolListener : Listener {
|
|||
}
|
||||
|
||||
@EventHandler
|
||||
fun onDisconnect(evt: ChannelInactiveEvent) {
|
||||
fun onDisconnect(evt: com.mohist.mistyrain.common.event.ChannelInactiveEvent) {
|
||||
log("§c| §7与远程服务器断开连接.")
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
fun onServerEnd(evt: PacketReceiveEvent) {
|
||||
fun onServerEnd(evt: com.mohist.mistyrain.common.event.PacketReceiveEvent) {
|
||||
val packet = evt.packet as? CPacketEndServer ?: return
|
||||
val serverInfo = packet.server
|
||||
val server =
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
package cc.maxmc.msm.controlled.misc
|
||||
package com.mohist.mistyrain.controlled.misc
|
||||
|
||||
import cc.maxmc.msm.controlled.Controlled
|
||||
import cc.maxmc.msm.controlled.settings.Settings
|
||||
import cc.maxmc.msm.controlled.utils.ScriptRunner
|
||||
import com.mohist.mistyrain.controlled.Controlled
|
||||
import com.mohist.mistyrain.controlled.settings.Settings
|
||||
import com.mohist.mistyrain.controlled.utils.ScriptRunner
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
import java.nio.file.Path
|
||||
|
|
@ -1,9 +1,8 @@
|
|||
package cc.maxmc.msm.controlled.netty
|
||||
package com.mohist.mistyrain.controlled.netty
|
||||
|
||||
import cc.maxmc.msm.common.network.BungeePacket
|
||||
import cc.maxmc.msm.common.network.netty.NetworkRegistry
|
||||
import cc.maxmc.msm.common.utils.log
|
||||
import cc.maxmc.msm.common.utils.pipelineInit
|
||||
import com.mohist.mistyrain.common.network.netty.NetworkRegistry
|
||||
import com.mohist.mistyrain.common.utils.log
|
||||
import com.mohist.mistyrain.common.utils.pipelineInit
|
||||
import io.netty.bootstrap.Bootstrap
|
||||
import io.netty.channel.Channel
|
||||
import io.netty.channel.ChannelOption
|
||||
|
|
@ -44,7 +43,7 @@ object NetClient {
|
|||
}
|
||||
}
|
||||
|
||||
fun sendPacket(packet: BungeePacket) {
|
||||
fun sendPacket(packet: com.mohist.mistyrain.common.network.BungeePacket) {
|
||||
channel.writeAndFlush(packet)
|
||||
}
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package cc.maxmc.msm.controlled.settings
|
||||
package com.mohist.mistyrain.controlled.settings
|
||||
|
||||
import cc.maxmc.msm.controlled.settings.SettingsReader.config
|
||||
import com.mohist.mistyrain.controlled.settings.SettingsReader.config
|
||||
|
||||
object Settings {
|
||||
val name
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package cc.maxmc.msm.controlled.settings
|
||||
package com.mohist.mistyrain.controlled.settings
|
||||
|
||||
import cc.maxmc.msm.controlled.Controlled
|
||||
import com.mohist.mistyrain.controlled.Controlled
|
||||
import net.md_5.bungee.api.ProxyServer
|
||||
import net.md_5.bungee.api.chat.TextComponent
|
||||
import net.md_5.bungee.config.Configuration
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package cc.maxmc.msm.controlled.utils
|
||||
package com.mohist.mistyrain.controlled.utils
|
||||
|
||||
import cc.maxmc.msm.common.utils.log
|
||||
import com.mohist.mistyrain.common.utils.log
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
import java.nio.file.Path
|
||||
|
|
@ -1,3 +1,3 @@
|
|||
name: Controlled
|
||||
main: cc.maxmc.msm.controlled.Controlled
|
||||
main: com.mohist.mistyrain.controlled.Controlled
|
||||
author: MistyRain
|
||||
|
|
@ -3,7 +3,7 @@ plugins {
|
|||
id("com.github.johnrengelman.shadow")
|
||||
}
|
||||
|
||||
group = "cc.maxmc.msm.mastercontrol"
|
||||
group = "com.mohist.mistyrain.mastercontrol"
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
|
|
@ -21,7 +21,7 @@ dependencies {
|
|||
|
||||
tasks.shadowJar {
|
||||
archiveClassifier.set(null as? String?)
|
||||
relocate("kotlin", "cc.maxmc.msm.lib.kotlin")
|
||||
relocate("kotlin", "com.mohist.mistyrain.lib.kotlin")
|
||||
}
|
||||
|
||||
tasks.build {
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
package cc.maxmc.msm.mastercontrol
|
||||
package com.mohist.mistyrain.mastercontrol
|
||||
|
||||
import cc.maxmc.msm.api.MultiServerManAPIProvider
|
||||
import cc.maxmc.msm.mastercontrol.api.APIImpl
|
||||
import cc.maxmc.msm.mastercontrol.listener.PacketListener
|
||||
import cc.maxmc.msm.mastercontrol.manager.MatchManager
|
||||
import cc.maxmc.msm.mastercontrol.manager.ServerManager
|
||||
import cc.maxmc.msm.mastercontrol.netty.NetManager
|
||||
import com.mohist.mistyrain.api.MultiServerManAPIProvider
|
||||
import com.mohist.mistyrain.mastercontrol.api.APIImpl
|
||||
import com.mohist.mistyrain.mastercontrol.listener.PacketListener
|
||||
import com.mohist.mistyrain.mastercontrol.manager.MatchManager
|
||||
import com.mohist.mistyrain.mastercontrol.manager.ServerManager
|
||||
import com.mohist.mistyrain.mastercontrol.netty.NetManager
|
||||
import net.md_5.bungee.api.ProxyServer
|
||||
import net.md_5.bungee.api.plugin.Plugin
|
||||
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
package cc.maxmc.msm.mastercontrol.api
|
||||
package com.mohist.mistyrain.mastercontrol.api
|
||||
|
||||
import cc.maxmc.msm.api.MultiServerManAPI
|
||||
import cc.maxmc.msm.api.misc.MatchInfo
|
||||
import cc.maxmc.msm.mastercontrol.database.SQLDatabase
|
||||
import cc.maxmc.msm.mastercontrol.manager.MatchManager
|
||||
import com.mohist.mistyrain.api.MultiServerManAPI
|
||||
import com.mohist.mistyrain.api.misc.MatchInfo
|
||||
import com.mohist.mistyrain.mastercontrol.database.SQLDatabase
|
||||
import com.mohist.mistyrain.mastercontrol.manager.MatchManager
|
||||
|
||||
object APIImpl : MultiServerManAPI {
|
||||
override fun getServer(type: String, players: List<String>): MatchInfo {
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
package cc.maxmc.msm.mastercontrol.database
|
||||
package com.mohist.mistyrain.mastercontrol.database
|
||||
|
||||
import cc.maxmc.msm.api.misc.MatchInfo
|
||||
import cc.maxmc.msm.mastercontrol.manager.MatchManager
|
||||
import cc.maxmc.msm.mastercontrol.settings.Settings
|
||||
import com.mohist.mistyrain.api.misc.MatchInfo
|
||||
import com.mohist.mistyrain.mastercontrol.manager.MatchManager
|
||||
import com.mohist.mistyrain.mastercontrol.settings.Settings
|
||||
import com.zaxxer.hikari.HikariConfig
|
||||
import com.zaxxer.hikari.pool.HikariPool
|
||||
import java.sql.Timestamp
|
||||
|
|
@ -1,15 +1,12 @@
|
|||
package cc.maxmc.msm.mastercontrol.listener
|
||||
package com.mohist.mistyrain.mastercontrol.listener
|
||||
|
||||
import cc.maxmc.msm.api.MultiServerManAPIProvider
|
||||
import cc.maxmc.msm.common.event.ChannelActiveEvent
|
||||
import cc.maxmc.msm.common.event.ChannelInactiveEvent
|
||||
import cc.maxmc.msm.common.event.PacketReceiveEvent
|
||||
import cc.maxmc.msm.common.network.packet.CPacketAPICallback
|
||||
import cc.maxmc.msm.common.network.packet.CPacketDebug
|
||||
import cc.maxmc.msm.common.network.packet.PPacketAPICall
|
||||
import cc.maxmc.msm.common.network.packet.PPacketDebug
|
||||
import cc.maxmc.msm.common.utils.log
|
||||
import cc.maxmc.msm.mastercontrol.manager.ChildManager
|
||||
import com.mohist.mistyrain.api.MultiServerManAPIProvider
|
||||
import com.mohist.mistyrain.common.network.packet.CPacketAPICallback
|
||||
import com.mohist.mistyrain.common.network.packet.CPacketDebug
|
||||
import com.mohist.mistyrain.common.network.packet.PPacketAPICall
|
||||
import com.mohist.mistyrain.common.network.packet.PPacketDebug
|
||||
import com.mohist.mistyrain.common.utils.log
|
||||
import com.mohist.mistyrain.mastercontrol.manager.ChildManager
|
||||
import net.md_5.bungee.api.plugin.Listener
|
||||
import net.md_5.bungee.event.EventHandler
|
||||
|
||||
|
|
@ -17,7 +14,7 @@ object PacketListener : Listener {
|
|||
val api = MultiServerManAPIProvider.getAPI()
|
||||
|
||||
@EventHandler
|
||||
fun onAPICall(evt: PacketReceiveEvent) {
|
||||
fun onAPICall(evt: com.mohist.mistyrain.common.event.PacketReceiveEvent) {
|
||||
val packet = evt.packet
|
||||
if (packet !is PPacketAPICall) return
|
||||
val callback = when (packet) {
|
||||
|
|
@ -42,7 +39,7 @@ object PacketListener : Listener {
|
|||
}
|
||||
|
||||
@EventHandler
|
||||
fun onPacket(evt: PacketReceiveEvent) {
|
||||
fun onPacket(evt: com.mohist.mistyrain.common.event.PacketReceiveEvent) {
|
||||
val packet = evt.packet
|
||||
if (packet !is PPacketDebug) {
|
||||
return
|
||||
|
|
@ -52,13 +49,13 @@ object PacketListener : Listener {
|
|||
}
|
||||
|
||||
@EventHandler
|
||||
fun onChannelActive(evt: ChannelActiveEvent) {
|
||||
fun onChannelActive(evt: com.mohist.mistyrain.common.event.ChannelActiveEvent) {
|
||||
log("§a| §7子BC ${evt.channel.remoteAddress()} 成功连接.")
|
||||
ChildManager.registerChild(evt.channel)
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
fun onChannelInactive(evt: ChannelInactiveEvent) {
|
||||
fun onChannelInactive(evt: com.mohist.mistyrain.common.event.ChannelInactiveEvent) {
|
||||
log("§c| §7子BC ${evt.channel.remoteAddress()} 断开连接.")
|
||||
ChildManager.unregisterChild(evt.channel)
|
||||
}
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
package cc.maxmc.msm.mastercontrol.manager
|
||||
package com.mohist.mistyrain.mastercontrol.manager
|
||||
|
||||
import cc.maxmc.msm.common.network.packet.CPacketGetInfo
|
||||
import cc.maxmc.msm.common.network.packet.PPacketChildInfo
|
||||
import cc.maxmc.msm.common.utils.awaitPacket
|
||||
import cc.maxmc.msm.common.utils.log
|
||||
import cc.maxmc.msm.common.utils.pluginScope
|
||||
import cc.maxmc.msm.mastercontrol.misc.ChildBungee
|
||||
import com.mohist.mistyrain.common.network.packet.CPacketGetInfo
|
||||
import com.mohist.mistyrain.common.network.packet.PPacketChildInfo
|
||||
import com.mohist.mistyrain.common.utils.awaitPacket
|
||||
import com.mohist.mistyrain.common.utils.log
|
||||
import com.mohist.mistyrain.common.utils.pluginScope
|
||||
import com.mohist.mistyrain.mastercontrol.misc.ChildBungee
|
||||
import io.netty.channel.Channel
|
||||
import kotlinx.coroutines.launch
|
||||
import java.util.*
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
package cc.maxmc.msm.mastercontrol.manager
|
||||
package com.mohist.mistyrain.mastercontrol.manager
|
||||
|
||||
import cc.maxmc.msm.api.misc.MatchInfo
|
||||
import cc.maxmc.msm.mastercontrol.database.SQLDatabase
|
||||
import com.mohist.mistyrain.api.misc.MatchInfo
|
||||
import com.mohist.mistyrain.mastercontrol.database.SQLDatabase
|
||||
import java.util.concurrent.ConcurrentHashMap
|
||||
|
||||
object MatchManager {
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
package cc.maxmc.msm.mastercontrol.manager
|
||||
package com.mohist.mistyrain.mastercontrol.manager
|
||||
|
||||
import cc.maxmc.msm.api.misc.ServerInfo
|
||||
import cc.maxmc.msm.common.network.packet.CPacketEndServer
|
||||
import cc.maxmc.msm.common.utils.log
|
||||
import cc.maxmc.msm.common.utils.pluginScope
|
||||
import cc.maxmc.msm.mastercontrol.misc.ChildBungee
|
||||
import com.mohist.mistyrain.api.misc.ServerInfo
|
||||
import com.mohist.mistyrain.common.network.packet.CPacketEndServer
|
||||
import com.mohist.mistyrain.common.utils.log
|
||||
import com.mohist.mistyrain.common.utils.pluginScope
|
||||
import com.mohist.mistyrain.mastercontrol.misc.ChildBungee
|
||||
import kotlinx.coroutines.channels.Channel
|
||||
import kotlinx.coroutines.launch
|
||||
import java.util.*
|
||||
|
|
@ -82,7 +82,7 @@ object ServerManager {
|
|||
val server = child.requestServer(type)
|
||||
if (server.uid == ServerInfo.NULL_UID)
|
||||
|
||||
list.add(server)
|
||||
list.add(server)
|
||||
childMap[server] = child
|
||||
return server
|
||||
}
|
||||
|
|
@ -1,11 +1,10 @@
|
|||
package cc.maxmc.msm.mastercontrol.misc
|
||||
package com.mohist.mistyrain.mastercontrol.misc
|
||||
|
||||
import cc.maxmc.msm.api.misc.ServerInfo
|
||||
import cc.maxmc.msm.common.network.BungeePacket
|
||||
import cc.maxmc.msm.common.network.packet.CPacketRequestServer
|
||||
import cc.maxmc.msm.common.network.packet.PPacketServerStarted
|
||||
import cc.maxmc.msm.common.utils.awaitPacket
|
||||
import cc.maxmc.msm.common.utils.log
|
||||
import com.mohist.mistyrain.api.misc.ServerInfo
|
||||
import com.mohist.mistyrain.common.network.packet.CPacketRequestServer
|
||||
import com.mohist.mistyrain.common.network.packet.PPacketServerStarted
|
||||
import com.mohist.mistyrain.common.utils.awaitPacket
|
||||
import com.mohist.mistyrain.common.utils.log
|
||||
import io.netty.channel.Channel
|
||||
import java.net.InetSocketAddress
|
||||
import java.util.*
|
||||
|
|
@ -13,7 +12,7 @@ import java.util.*
|
|||
class ChildBungee(
|
||||
val channel: Channel, val ports: Set<Int>, val types: Set<String>, val usedPorts: MutableSet<Int> = HashSet()
|
||||
) {
|
||||
fun sendPacket(packet: BungeePacket) {
|
||||
fun sendPacket(packet: com.mohist.mistyrain.common.network.BungeePacket) {
|
||||
channel.writeAndFlush(packet)
|
||||
}
|
||||
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
package cc.maxmc.msm.mastercontrol.netty
|
||||
package com.mohist.mistyrain.mastercontrol.netty
|
||||
|
||||
import cc.maxmc.msm.common.network.netty.NetworkRegistry
|
||||
import cc.maxmc.msm.common.utils.log
|
||||
import cc.maxmc.msm.common.utils.pipelineInit
|
||||
import cc.maxmc.msm.mastercontrol.settings.Settings
|
||||
import com.mohist.mistyrain.common.network.netty.NetworkRegistry
|
||||
import com.mohist.mistyrain.common.utils.log
|
||||
import com.mohist.mistyrain.common.utils.pipelineInit
|
||||
import com.mohist.mistyrain.mastercontrol.settings.Settings
|
||||
import io.netty.bootstrap.ServerBootstrap
|
||||
import io.netty.channel.ChannelFutureListener
|
||||
import io.netty.channel.nio.NioEventLoopGroup
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package cc.maxmc.msm.mastercontrol.settings
|
||||
package com.mohist.mistyrain.mastercontrol.settings
|
||||
|
||||
import cc.maxmc.msm.mastercontrol.settings.SettingsReader.config
|
||||
import com.mohist.mistyrain.mastercontrol.settings.SettingsReader.config
|
||||
|
||||
object Settings {
|
||||
val serverPort
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package cc.maxmc.msm.mastercontrol.settings
|
||||
package com.mohist.mistyrain.mastercontrol.settings
|
||||
|
||||
import cc.maxmc.msm.mastercontrol.MasterControl
|
||||
import com.mohist.mistyrain.mastercontrol.MasterControl
|
||||
import net.md_5.bungee.api.ProxyServer
|
||||
import net.md_5.bungee.api.chat.TextComponent
|
||||
import net.md_5.bungee.config.Configuration
|
||||
|
|
@ -1,3 +1,3 @@
|
|||
name: MasterControl
|
||||
main: cc.maxmc.msm.mastercontrol.MasterControl
|
||||
main: com.mohist.mistyrain.mastercontrol.MasterControl
|
||||
author: MistyRain
|
||||
35
README.md
35
README.md
|
|
@ -33,13 +33,13 @@
|
|||
|
||||
- 返回值:
|
||||
|
||||
- String类型的ip地址(带端口)
|
||||
- String类型的ip地址(带端口)
|
||||
|
||||
- Int类型的对局id
|
||||
- Int类型的对局id
|
||||
|
||||
- 参数列表:
|
||||
- `List<Player> players`
|
||||
- `String type`
|
||||
- `List<Player> players`
|
||||
- `String type`
|
||||
|
||||
### `func informEnd()`
|
||||
|
||||
|
|
@ -48,51 +48,52 @@
|
|||
- 返回值:无
|
||||
|
||||
- 参数列表:
|
||||
- `int id`
|
||||
- `int id`
|
||||
|
||||
### `func getPlayerServer()`
|
||||
|
||||
- 接口描述:获取某个玩家还在进行中的对局的服务器的ip地址
|
||||
|
||||
- 返回值:
|
||||
- String 类型的ip地址(带端口),未在对局中返回null
|
||||
- Int 类型的对局id,未在对局中返回-1
|
||||
- String 类型的ip地址(带端口),未在对局中返回null
|
||||
- Int 类型的对局id,未在对局中返回-1
|
||||
|
||||
- 参数列表:
|
||||
- `Player player`
|
||||
- `Player player`
|
||||
|
||||
### `func containPlayer()`
|
||||
|
||||
- 接口描述:查询某个玩家是否在对局中。
|
||||
- 返回值:
|
||||
- bool
|
||||
- bool
|
||||
- 参数列表:
|
||||
- `Player player`
|
||||
- `Player player`
|
||||
|
||||
## 数据库结构
|
||||
|
||||
- `match`
|
||||
|
||||
| id(int) | start(datetime) | end(datetime) | players(text) | type(varchar) |
|
||||
| ------- | --------------- | ------------- | ------------------------------------ | ------------- |
|
||||
|---------|-----------------|---------------|--------------------------------------|---------------|
|
||||
| 1 | 1678554776 | 1678554784 | TONY_All,Sanseyooyea,PlayerA,PlayerB | bedwars |
|
||||
|
||||
## API 使用
|
||||
|
||||
依赖:
|
||||
依赖:
|
||||
|
||||
```kotlin
|
||||
dependencies {
|
||||
compileOnly("cc.maxmc.msm:MultiServerMan-API:${version}")
|
||||
compileOnly("com.mohist.mistyrain:MultiServerMan-API:${version}")
|
||||
}
|
||||
```
|
||||
|
||||
使用:
|
||||
使用:
|
||||
|
||||
```java
|
||||
List<ProxyPlayer> players;
|
||||
|
||||
MultiServerManAPI api = MultiServerManAPIProvider.getAPI();
|
||||
api.getServer("default", players);
|
||||
MultiServerManAPI api=MultiServerManAPIProvider.getAPI();
|
||||
api.getServer("default",players);
|
||||
```
|
||||
|
||||
## Q&A
|
||||
|
|
@ -110,5 +111,5 @@ api.getServer("default", players);
|
|||
A: 只提供服务器并记录玩家
|
||||
|
||||
4. Q: 服务端启动方式
|
||||
|
||||
|
||||
A: 启动脚本,参数为端口+自定义参数
|
||||
|
|
@ -2,7 +2,7 @@ plugins {
|
|||
kotlin("jvm")
|
||||
}
|
||||
|
||||
group = "cc.maxmc.msm.api"
|
||||
group = "com.mohist.mistyrain.api"
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
package cc.maxmc.msm.api;
|
||||
package com.mohist.mistyrain.api;
|
||||
|
||||
import cc.maxmc.msm.api.misc.MatchInfo;
|
||||
import com.mohist.mistyrain.api.misc.MatchInfo;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package cc.maxmc.msm.api;
|
||||
package com.mohist.mistyrain.api;
|
||||
|
||||
@SuppressWarnings("unused") // API
|
||||
public class MultiServerManAPIProvider {
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package cc.maxmc.msm.api.misc
|
||||
package com.mohist.mistyrain.api.misc
|
||||
|
||||
enum class EnumAPI {
|
||||
GET_SERVER,
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package cc.maxmc.msm.api.misc;
|
||||
package com.mohist.mistyrain.api.misc;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package cc.maxmc.msm.api.misc;
|
||||
package com.mohist.mistyrain.api.misc;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
|
@ -2,7 +2,7 @@ plugins {
|
|||
`maven-publish`
|
||||
}
|
||||
|
||||
group = "cc.maxmc.msm"
|
||||
group = "com.mohist.mistyrain"
|
||||
version = "1.1.0"
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ plugins {
|
|||
kotlin("jvm")
|
||||
}
|
||||
|
||||
group = "cc.maxmc.msm.common"
|
||||
group = "com.mohist.mistyrain.common"
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
|
|
|
|||
|
|
@ -1,3 +0,0 @@
|
|||
package cc.maxmc.msm.common
|
||||
|
||||
object Placeholder
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
package cc.maxmc.msm.common.event
|
||||
|
||||
import io.netty.channel.Channel
|
||||
import net.md_5.bungee.api.plugin.Event
|
||||
|
||||
class ChannelActiveEvent(val channel: Channel): Event()
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
package cc.maxmc.msm.common.event
|
||||
|
||||
import io.netty.channel.Channel
|
||||
import net.md_5.bungee.api.plugin.Event
|
||||
|
||||
class ChannelInactiveEvent(val channel: Channel): Event()
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
package cc.maxmc.msm.common.network.packet
|
||||
|
||||
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
|
||||
|
||||
class CPacketEndServer(
|
||||
var server: ServerInfo
|
||||
) : BungeePacket() {
|
||||
override fun encode(buf: ByteBuf) {
|
||||
buf.writeServerInfo(server)
|
||||
}
|
||||
|
||||
override fun decode(buf: ByteBuf) {
|
||||
server = buf.readServerInfo()
|
||||
}
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
package cc.maxmc.msm.common.network.packet
|
||||
|
||||
import cc.maxmc.msm.common.network.BungeePacket
|
||||
import io.netty.buffer.ByteBuf
|
||||
|
||||
class CPacketGetInfo : BungeePacket() {
|
||||
override fun encode(buf: ByteBuf) {}
|
||||
|
||||
override fun decode(buf: ByteBuf) {}
|
||||
|
||||
}
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
package cc.maxmc.msm.common.utils
|
||||
|
||||
import cc.maxmc.msm.common.network.BungeePacket
|
||||
import io.netty.channel.Channel
|
||||
import kotlinx.coroutines.CoroutineExceptionHandler
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.SupervisorJob
|
||||
import kotlin.coroutines.Continuation
|
||||
import kotlin.coroutines.suspendCoroutine
|
||||
|
||||
val pluginScope = CoroutineScope(SupervisorJob() + CoroutineExceptionHandler { _, except ->
|
||||
log("§c执行异步操作时出现异常 ${except.message}")
|
||||
except.printStackTrace()
|
||||
})
|
||||
|
||||
val awaiting =
|
||||
ArrayList<Triple<Class<out BungeePacket>, (Channel, BungeePacket) -> Boolean, Continuation<BungeePacket>>>()
|
||||
|
||||
suspend inline fun <T : BungeePacket> awaitPacket(packetClass: Class<T>, noinline filter: (Channel, T) -> Boolean) =
|
||||
suspendCoroutine<T> {
|
||||
val triple = Triple(packetClass, filter, it)
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
awaiting.add(triple as Triple<Class<out BungeePacket>, (Channel, BungeePacket) -> Boolean, Continuation<BungeePacket>>)
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
package com.mohist.mistyrain.common
|
||||
|
||||
object Placeholder
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
package com.mohist.mistyrain.common.event
|
||||
|
||||
import io.netty.channel.Channel
|
||||
import net.md_5.bungee.api.plugin.Event
|
||||
|
||||
class ChannelActiveEvent(val channel: Channel) : Event()
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
package com.mohist.mistyrain.common.event
|
||||
|
||||
import io.netty.channel.Channel
|
||||
import net.md_5.bungee.api.plugin.Event
|
||||
|
||||
class ChannelInactiveEvent(val channel: Channel) : Event()
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
package cc.maxmc.msm.common.event
|
||||
package com.mohist.mistyrain.common.event
|
||||
|
||||
import cc.maxmc.msm.common.network.BungeePacket
|
||||
import io.netty.channel.Channel
|
||||
import net.md_5.bungee.api.plugin.Event
|
||||
|
||||
data class PacketReceiveEvent(val channel: Channel, val packet: BungeePacket) : Event()
|
||||
data class PacketReceiveEvent(val channel: Channel, val packet: com.mohist.mistyrain.common.network.BungeePacket) :
|
||||
Event()
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
package cc.maxmc.msm.common.network
|
||||
package com.mohist.mistyrain.common.network
|
||||
|
||||
import io.netty.buffer.ByteBuf
|
||||
|
||||
abstract class BungeePacket: Cloneable {
|
||||
abstract class BungeePacket : Cloneable {
|
||||
abstract fun encode(buf: ByteBuf)
|
||||
|
||||
abstract fun decode(buf: ByteBuf)
|
||||
|
|
@ -1,10 +1,9 @@
|
|||
package cc.maxmc.msm.common.network
|
||||
package com.mohist.mistyrain.common.network
|
||||
|
||||
import cc.maxmc.msm.common.event.ChannelActiveEvent
|
||||
import cc.maxmc.msm.common.event.ChannelInactiveEvent
|
||||
import cc.maxmc.msm.common.event.PacketReceiveEvent
|
||||
import cc.maxmc.msm.common.utils.awaiting
|
||||
import cc.maxmc.msm.common.utils.log
|
||||
import com.mohist.mistyrain.common.event.ChannelActiveEvent
|
||||
import com.mohist.mistyrain.common.event.ChannelInactiveEvent
|
||||
import com.mohist.mistyrain.common.event.PacketReceiveEvent
|
||||
import com.mohist.mistyrain.common.utils.awaiting
|
||||
import io.netty.channel.ChannelHandler.Sharable
|
||||
import io.netty.channel.ChannelHandlerContext
|
||||
import io.netty.channel.SimpleChannelInboundHandler
|
||||
|
|
@ -14,8 +13,8 @@ import kotlin.coroutines.resume
|
|||
object ClusterPacketHandler : SimpleChannelInboundHandler<BungeePacket>() {
|
||||
override fun channelRead0(ctx: ChannelHandlerContext, msg: BungeePacket) {
|
||||
awaiting.filter { it.first == msg::class.java }.filter { it.second(ctx.channel(), msg) }.forEach {
|
||||
it.third.resume(msg)
|
||||
}
|
||||
it.third.resume(msg)
|
||||
}
|
||||
PacketReceiveEvent(ctx.channel(), msg).callEvent()
|
||||
}
|
||||
|
||||
|
|
@ -1,13 +1,16 @@
|
|||
package cc.maxmc.msm.common.network.netty
|
||||
package com.mohist.mistyrain.common.network.netty
|
||||
|
||||
import cc.maxmc.msm.common.network.BungeePacket
|
||||
import cc.maxmc.msm.common.utils.debug
|
||||
import io.netty.buffer.ByteBuf
|
||||
import io.netty.channel.ChannelHandlerContext
|
||||
import io.netty.handler.codec.ByteToMessageCodec
|
||||
|
||||
class ClusterMsgCodec(private val current: NetworkRegistry.PacketDirection) : ByteToMessageCodec<BungeePacket>() {
|
||||
override fun encode(ctx: ChannelHandlerContext, msg: BungeePacket, out: ByteBuf) {
|
||||
class ClusterMsgCodec(private val current: NetworkRegistry.PacketDirection) :
|
||||
ByteToMessageCodec<com.mohist.mistyrain.common.network.BungeePacket>() {
|
||||
override fun encode(
|
||||
ctx: ChannelHandlerContext,
|
||||
msg: com.mohist.mistyrain.common.network.BungeePacket,
|
||||
out: ByteBuf
|
||||
) {
|
||||
val id = NetworkRegistry.getPacketID(current, msg)
|
||||
out.writeInt(id)
|
||||
msg.encode(out)
|
||||
|
|
@ -1,12 +1,11 @@
|
|||
package cc.maxmc.msm.common.network.netty
|
||||
package com.mohist.mistyrain.common.network.netty
|
||||
|
||||
import cc.maxmc.msm.common.network.BungeePacket
|
||||
import cc.maxmc.msm.common.network.packet.*
|
||||
import com.google.common.collect.HashBiMap
|
||||
import com.mohist.mistyrain.common.network.packet.*
|
||||
|
||||
object NetworkRegistry {
|
||||
private val parentBoundMap = HashBiMap.create<Int, Class<out BungeePacket>>()
|
||||
private val childBoundMap = HashBiMap.create<Int, Class<out BungeePacket>>()
|
||||
private val parentBoundMap = HashBiMap.create<Int, Class<out com.mohist.mistyrain.common.network.BungeePacket>>()
|
||||
private val childBoundMap = HashBiMap.create<Int, Class<out com.mohist.mistyrain.common.network.BungeePacket>>()
|
||||
|
||||
init {
|
||||
registerPacket(PacketDirection.PARENT_BOUND, PPacketDebug::class.java)
|
||||
|
|
@ -27,7 +26,10 @@ object NetworkRegistry {
|
|||
|
||||
}
|
||||
|
||||
private fun registerPacket(direction: PacketDirection, packet: Class<out BungeePacket>) {
|
||||
private fun registerPacket(
|
||||
direction: PacketDirection,
|
||||
packet: Class<out com.mohist.mistyrain.common.network.BungeePacket>
|
||||
) {
|
||||
if (direction == PacketDirection.PARENT_BOUND) {
|
||||
parentBoundMap
|
||||
} else {
|
||||
|
|
@ -37,12 +39,12 @@ object NetworkRegistry {
|
|||
}
|
||||
}
|
||||
|
||||
fun getPacketID(side: PacketDirection, packet: BungeePacket): Int {
|
||||
fun getPacketID(side: PacketDirection, packet: com.mohist.mistyrain.common.network.BungeePacket): Int {
|
||||
val map = if (side == PacketDirection.PARENT_BOUND) childBoundMap else parentBoundMap
|
||||
return map.inverse()[packet::class.java] ?: throw IllegalStateException("Packet does not in registry.")
|
||||
}
|
||||
|
||||
fun getPacketByID(side: PacketDirection, id: Int): BungeePacket {
|
||||
fun getPacketByID(side: PacketDirection, id: Int): com.mohist.mistyrain.common.network.BungeePacket {
|
||||
val map = if (side == PacketDirection.PARENT_BOUND) parentBoundMap else childBoundMap
|
||||
return map[id]?.newInstance() ?: throw IllegalStateException("Packet does not in registry.")
|
||||
}
|
||||
|
|
@ -1,16 +1,15 @@
|
|||
package cc.maxmc.msm.common.network.packet
|
||||
package com.mohist.mistyrain.common.network.packet
|
||||
|
||||
import cc.maxmc.msm.api.misc.MatchInfo
|
||||
import cc.maxmc.msm.common.network.BungeePacket
|
||||
import cc.maxmc.msm.common.utils.readMatchInfo
|
||||
import cc.maxmc.msm.common.utils.writeMatchInfo
|
||||
import com.mohist.mistyrain.api.misc.MatchInfo
|
||||
import com.mohist.mistyrain.common.utils.readMatchInfo
|
||||
import com.mohist.mistyrain.common.utils.writeMatchInfo
|
||||
import io.netty.buffer.ByteBuf
|
||||
import net.md_5.bungee.protocol.DefinedPacket
|
||||
import java.util.*
|
||||
|
||||
sealed class CPacketAPICallback(
|
||||
var uid: UUID
|
||||
) : BungeePacket() {
|
||||
) : com.mohist.mistyrain.common.network.BungeePacket() {
|
||||
override fun encode(buf: ByteBuf) {
|
||||
DefinedPacket.writeUUID(uid, buf)
|
||||
}
|
||||
|
|
@ -1,11 +1,10 @@
|
|||
package cc.maxmc.msm.common.network.packet
|
||||
package com.mohist.mistyrain.common.network.packet
|
||||
|
||||
import cc.maxmc.msm.common.network.BungeePacket
|
||||
import io.netty.buffer.ByteBuf
|
||||
|
||||
data class CPacketDebug(
|
||||
var content: String = ""
|
||||
) : BungeePacket() {
|
||||
) : com.mohist.mistyrain.common.network.BungeePacket() {
|
||||
|
||||
override fun encode(buf: ByteBuf) {
|
||||
val array = content.encodeToByteArray()
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
package com.mohist.mistyrain.common.network.packet
|
||||
|
||||
import com.mohist.mistyrain.api.misc.ServerInfo
|
||||
import com.mohist.mistyrain.common.utils.readServerInfo
|
||||
import com.mohist.mistyrain.common.utils.writeServerInfo
|
||||
import io.netty.buffer.ByteBuf
|
||||
|
||||
class CPacketEndServer(
|
||||
var server: ServerInfo
|
||||
) : com.mohist.mistyrain.common.network.BungeePacket() {
|
||||
override fun encode(buf: ByteBuf) {
|
||||
buf.writeServerInfo(server)
|
||||
}
|
||||
|
||||
override fun decode(buf: ByteBuf) {
|
||||
server = buf.readServerInfo()
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
package com.mohist.mistyrain.common.network.packet
|
||||
|
||||
import io.netty.buffer.ByteBuf
|
||||
|
||||
class CPacketGetInfo : com.mohist.mistyrain.common.network.BungeePacket() {
|
||||
override fun encode(buf: ByteBuf) {}
|
||||
|
||||
override fun decode(buf: ByteBuf) {}
|
||||
|
||||
}
|
||||
|
|
@ -1,16 +1,15 @@
|
|||
package cc.maxmc.msm.common.network.packet
|
||||
package com.mohist.mistyrain.common.network.packet
|
||||
|
||||
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 com.mohist.mistyrain.api.misc.ServerInfo
|
||||
import com.mohist.mistyrain.common.utils.readServerInfo
|
||||
import com.mohist.mistyrain.common.utils.writeServerInfo
|
||||
import io.netty.buffer.ByteBuf
|
||||
import net.md_5.bungee.protocol.DefinedPacket
|
||||
|
||||
class CPacketRequestServer(
|
||||
var type: String = "",
|
||||
var serverInfo: ServerInfo = ServerInfo(),
|
||||
) : BungeePacket() {
|
||||
) : com.mohist.mistyrain.common.network.BungeePacket() {
|
||||
override fun encode(buf: ByteBuf) {
|
||||
DefinedPacket.writeString(type, buf)
|
||||
buf.writeServerInfo(serverInfo)
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
package cc.maxmc.msm.common.network.packet
|
||||
package com.mohist.mistyrain.common.network.packet
|
||||
|
||||
import cc.maxmc.msm.api.misc.EnumAPI
|
||||
import cc.maxmc.msm.common.network.BungeePacket
|
||||
import com.mohist.mistyrain.api.misc.EnumAPI
|
||||
import io.netty.buffer.ByteBuf
|
||||
import net.md_5.bungee.protocol.DefinedPacket
|
||||
import java.util.*
|
||||
|
|
@ -9,7 +8,7 @@ import java.util.*
|
|||
sealed class PPacketAPICall(
|
||||
var api: EnumAPI = EnumAPI.GET_SERVER,
|
||||
var uid: UUID = UUID.randomUUID()
|
||||
) : BungeePacket() {
|
||||
) : com.mohist.mistyrain.common.network.BungeePacket() {
|
||||
override fun encode(buf: ByteBuf) {
|
||||
DefinedPacket.writeVarInt(api.ordinal, buf)
|
||||
DefinedPacket.writeUUID(uid, buf)
|
||||
|
|
@ -1,11 +1,10 @@
|
|||
package cc.maxmc.msm.common.network.packet
|
||||
package com.mohist.mistyrain.common.network.packet
|
||||
|
||||
import cc.maxmc.msm.common.network.BungeePacket
|
||||
import io.netty.buffer.ByteBuf
|
||||
import net.md_5.bungee.protocol.DefinedPacket
|
||||
|
||||
class PPacketChildInfo(var portRange: MutableSet<Int> = HashSet(), var types: MutableSet<String> = HashSet()) :
|
||||
BungeePacket() {
|
||||
com.mohist.mistyrain.common.network.BungeePacket() {
|
||||
override fun encode(buf: ByteBuf) {
|
||||
DefinedPacket.writeVarInt(portRange.size, buf)
|
||||
portRange.forEach {
|
||||
|
|
@ -1,11 +1,10 @@
|
|||
package cc.maxmc.msm.common.network.packet
|
||||
package com.mohist.mistyrain.common.network.packet
|
||||
|
||||
import cc.maxmc.msm.common.network.BungeePacket
|
||||
import io.netty.buffer.ByteBuf
|
||||
|
||||
data class PPacketDebug(
|
||||
var content: String = ""
|
||||
) : BungeePacket() {
|
||||
) : com.mohist.mistyrain.common.network.BungeePacket() {
|
||||
|
||||
override fun encode(buf: ByteBuf) {
|
||||
val array = content.encodeToByteArray()
|
||||
|
|
@ -1,14 +1,13 @@
|
|||
package cc.maxmc.msm.common.network.packet
|
||||
package com.mohist.mistyrain.common.network.packet
|
||||
|
||||
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 com.mohist.mistyrain.api.misc.ServerInfo
|
||||
import com.mohist.mistyrain.common.utils.readServerInfo
|
||||
import com.mohist.mistyrain.common.utils.writeServerInfo
|
||||
import io.netty.buffer.ByteBuf
|
||||
|
||||
class PPacketServerStarted(
|
||||
var serverInfo: ServerInfo = ServerInfo()
|
||||
) : BungeePacket() {
|
||||
) : com.mohist.mistyrain.common.network.BungeePacket() {
|
||||
override fun encode(buf: ByteBuf) {
|
||||
buf.writeServerInfo(serverInfo)
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
package com.mohist.mistyrain.common.utils
|
||||
|
||||
import io.netty.channel.Channel
|
||||
import kotlinx.coroutines.CoroutineExceptionHandler
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.SupervisorJob
|
||||
import kotlin.coroutines.Continuation
|
||||
import kotlin.coroutines.suspendCoroutine
|
||||
|
||||
val pluginScope = CoroutineScope(SupervisorJob() + CoroutineExceptionHandler { _, except ->
|
||||
log("§c执行异步操作时出现异常 ${except.message}")
|
||||
except.printStackTrace()
|
||||
})
|
||||
|
||||
val awaiting =
|
||||
ArrayList<Triple<Class<out com.mohist.mistyrain.common.network.BungeePacket>, (Channel, com.mohist.mistyrain.common.network.BungeePacket) -> Boolean, Continuation<com.mohist.mistyrain.common.network.BungeePacket>>>()
|
||||
|
||||
suspend inline fun <T : com.mohist.mistyrain.common.network.BungeePacket> awaitPacket(
|
||||
packetClass: Class<T>,
|
||||
noinline filter: (Channel, T) -> Boolean
|
||||
) =
|
||||
suspendCoroutine<T> {
|
||||
val triple = Triple(packetClass, filter, it)
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
awaiting.add(triple as Triple<Class<out com.mohist.mistyrain.common.network.BungeePacket>, (Channel, com.mohist.mistyrain.common.network.BungeePacket) -> Boolean, Continuation<com.mohist.mistyrain.common.network.BungeePacket>>)
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package cc.maxmc.msm.common.utils
|
||||
package com.mohist.mistyrain.common.utils
|
||||
|
||||
import net.md_5.bungee.api.ProxyServer
|
||||
import net.md_5.bungee.api.chat.TextComponent
|
||||
|
|
@ -1,10 +1,9 @@
|
|||
package cc.maxmc.msm.common.utils
|
||||
package com.mohist.mistyrain.common.utils
|
||||
|
||||
import cc.maxmc.msm.api.misc.MatchInfo
|
||||
import cc.maxmc.msm.api.misc.ServerInfo
|
||||
import cc.maxmc.msm.common.network.ClusterPacketHandler
|
||||
import cc.maxmc.msm.common.network.netty.ClusterMsgCodec
|
||||
import cc.maxmc.msm.common.network.netty.NetworkRegistry
|
||||
import com.mohist.mistyrain.api.misc.MatchInfo
|
||||
import com.mohist.mistyrain.api.misc.ServerInfo
|
||||
import com.mohist.mistyrain.common.network.netty.ClusterMsgCodec
|
||||
import com.mohist.mistyrain.common.network.netty.NetworkRegistry
|
||||
import io.netty.buffer.ByteBuf
|
||||
import io.netty.channel.Channel
|
||||
import io.netty.channel.ChannelInitializer
|
||||
|
|
@ -23,7 +22,7 @@ fun pipelineInit(direction: NetworkRegistry.PacketDirection) = channelInit<Socke
|
|||
pipeline().addLast("frame_decoder", Varint21FrameDecoder())
|
||||
pipeline().addLast("frame_prepender", Varint21LengthFieldPrepender())
|
||||
pipeline().addLast("codec", ClusterMsgCodec(direction))
|
||||
pipeline().addLast("packet_handler", ClusterPacketHandler)
|
||||
pipeline().addLast("packet_handler", com.mohist.mistyrain.common.network.ClusterPacketHandler)
|
||||
}
|
||||
|
||||
fun ByteBuf.writeServerInfo(info: ServerInfo) {
|
||||
Loading…
Reference in New Issue