mirror of
https://github.com/ViaVersion/VIAaaS.git
synced 2024-11-21 11:55:15 +01:00
some fixes, still wip
This commit is contained in:
parent
d350f470d2
commit
4055d17858
@ -1,5 +1,6 @@
|
|||||||
package com.github.creeper123123321.viaaas
|
package com.github.creeper123123321.viaaas
|
||||||
|
|
||||||
|
import com.google.common.util.concurrent.ThreadFactoryBuilder
|
||||||
import de.gerrygames.viarewind.api.ViaRewindPlatform
|
import de.gerrygames.viarewind.api.ViaRewindPlatform
|
||||||
import io.netty.buffer.ByteBuf
|
import io.netty.buffer.ByteBuf
|
||||||
import io.netty.channel.DefaultEventLoop
|
import io.netty.channel.DefaultEventLoop
|
||||||
@ -101,8 +102,8 @@ object CloudAPI : ViaAPI<Unit> {
|
|||||||
|
|
||||||
object CloudPlatform : ViaPlatform<Unit> {
|
object CloudPlatform : ViaPlatform<Unit> {
|
||||||
val connMan = ViaConnectionManager()
|
val connMan = ViaConnectionManager()
|
||||||
val executor = Executors.newCachedThreadPool()
|
val executor = Executors.newCachedThreadPool(ThreadFactoryBuilder().setNameFormat("VIAaaS").setDaemon(true).build())
|
||||||
val eventLoop = DefaultEventLoop()
|
val eventLoop = DefaultEventLoop(executor)
|
||||||
override fun sendMessage(p0: UUID, p1: String) {
|
override fun sendMessage(p0: UUID, p1: String) {
|
||||||
// todo
|
// todo
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,6 @@ import java.util.logging.Logger
|
|||||||
import javax.naming.NameNotFoundException
|
import javax.naming.NameNotFoundException
|
||||||
import javax.naming.directory.InitialDirContext
|
import javax.naming.directory.InitialDirContext
|
||||||
|
|
||||||
|
|
||||||
class CloudPipeline(userConnection: UserConnection) : ProtocolPipeline(userConnection) {
|
class CloudPipeline(userConnection: UserConnection) : ProtocolPipeline(userConnection) {
|
||||||
override fun registerPackets() {
|
override fun registerPackets() {
|
||||||
super.registerPackets()
|
super.registerPackets()
|
||||||
@ -50,6 +49,9 @@ object CloudHeadProtocol : SimpleProtocol() {
|
|||||||
val nextState = wrapper.passthrough(Type.VAR_INT)
|
val nextState = wrapper.passthrough(Type.VAR_INT)
|
||||||
|
|
||||||
val parsed = VIAaaSAddress().parse(addr, VIAaaSConfig.hostName)
|
val parsed = VIAaaSAddress().parse(addr, VIAaaSConfig.hostName)
|
||||||
|
if (parsed.port == 0) {
|
||||||
|
parsed.port = receivedPort
|
||||||
|
}
|
||||||
|
|
||||||
logger.info("connecting ${wrapper.user().channel!!.remoteAddress()} ($playerVer) to ${parsed.realAddress}:${parsed.port} (${parsed.protocol})")
|
logger.info("connecting ${wrapper.user().channel!!.remoteAddress()} ($playerVer) to ${parsed.realAddress}:${parsed.port} (${parsed.protocol})")
|
||||||
|
|
||||||
@ -64,7 +66,7 @@ object CloudHeadProtocol : SimpleProtocol() {
|
|||||||
val frontForwarder = wrapper.user().channel!!.pipeline().get(CloudSideForwarder::class.java)
|
val frontForwarder = wrapper.user().channel!!.pipeline().get(CloudSideForwarder::class.java)
|
||||||
try {
|
try {
|
||||||
var srvResolvedAddr = parsed.realAddress
|
var srvResolvedAddr = parsed.realAddress
|
||||||
var srvResolvedPort = if (parsed.port != 0) parsed.port else receivedPort
|
var srvResolvedPort = parsed.port
|
||||||
if (srvResolvedPort == 25565) {
|
if (srvResolvedPort == 25565) {
|
||||||
try {
|
try {
|
||||||
// https://github.com/GeyserMC/Geyser/blob/99e72f35b308542cf0dbfb5b58816503c3d6a129/connector/src/main/java/org/geysermc/connector/GeyserConnector.java
|
// https://github.com/GeyserMC/Geyser/blob/99e72f35b308542cf0dbfb5b58816503c3d6a129/connector/src/main/java/org/geysermc/connector/GeyserConnector.java
|
||||||
|
@ -2,18 +2,14 @@ package com.github.creeper123123321.viaaas
|
|||||||
|
|
||||||
import de.gerrygames.viarewind.api.ViaRewindConfigImpl
|
import de.gerrygames.viarewind.api.ViaRewindConfigImpl
|
||||||
import io.ktor.application.*
|
import io.ktor.application.*
|
||||||
import io.ktor.features.*
|
|
||||||
import io.ktor.http.cio.websocket.*
|
|
||||||
import io.ktor.http.content.*
|
|
||||||
import io.ktor.network.tls.certificates.*
|
import io.ktor.network.tls.certificates.*
|
||||||
import io.ktor.routing.*
|
import io.ktor.server.engine.*
|
||||||
import io.ktor.server.netty.*
|
import io.ktor.server.netty.*
|
||||||
import io.ktor.websocket.*
|
|
||||||
import io.netty.bootstrap.ServerBootstrap
|
import io.netty.bootstrap.ServerBootstrap
|
||||||
import io.netty.channel.ChannelOption
|
import io.netty.channel.ChannelOption
|
||||||
import io.netty.channel.nio.NioEventLoopGroup
|
import io.netty.channel.nio.NioEventLoopGroup
|
||||||
import io.netty.channel.socket.nio.NioServerSocketChannel
|
import io.netty.channel.socket.nio.NioServerSocketChannel
|
||||||
import kotlinx.coroutines.channels.consumeEach
|
import io.netty.util.concurrent.Future
|
||||||
import us.myles.ViaVersion.ViaManager
|
import us.myles.ViaVersion.ViaManager
|
||||||
import us.myles.ViaVersion.api.Via
|
import us.myles.ViaVersion.api.Via
|
||||||
import us.myles.ViaVersion.api.data.MappingDataLoader
|
import us.myles.ViaVersion.api.data.MappingDataLoader
|
||||||
@ -21,9 +17,6 @@ import us.myles.ViaVersion.api.protocol.ProtocolVersion
|
|||||||
import us.myles.ViaVersion.util.Config
|
import us.myles.ViaVersion.util.Config
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.net.InetAddress
|
import java.net.InetAddress
|
||||||
import java.time.Duration
|
|
||||||
import java.util.concurrent.ConcurrentHashMap
|
|
||||||
import kotlin.system.exitProcess
|
|
||||||
|
|
||||||
fun main(args: Array<String>) {
|
fun main(args: Array<String>) {
|
||||||
File("config/https.jks").apply {
|
File("config/https.jks").apply {
|
||||||
@ -51,7 +44,7 @@ fun main(args: Array<String>) {
|
|||||||
.bind(InetAddress.getByName(VIAaaSConfig.bindAddress), VIAaaSConfig.port)
|
.bind(InetAddress.getByName(VIAaaSConfig.bindAddress), VIAaaSConfig.port)
|
||||||
println("Binded minecraft into " + future.sync().channel().localAddress())
|
println("Binded minecraft into " + future.sync().channel().localAddress())
|
||||||
|
|
||||||
Thread { EngineMain.main(arrayOf()) }.start()
|
val ktorServer = embeddedServer(Netty, commandLineEnvironment(args)) {}.start(false)
|
||||||
|
|
||||||
loop@ while (true) {
|
loop@ while (true) {
|
||||||
try {
|
try {
|
||||||
@ -67,11 +60,11 @@ fun main(args: Array<String>) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
future.channel().close().sync()
|
ktorServer.stop(1000, 1000)
|
||||||
boss.shutdownGracefully().sync()
|
listOf<Future<*>>(future.channel().close(), boss.shutdownGracefully(), worker.shutdownGracefully())
|
||||||
worker.shutdownGracefully().sync()
|
.forEach { it.sync() }
|
||||||
|
|
||||||
Via.getManager().destroy()
|
Via.getManager().destroy()
|
||||||
exitProcess(0) // todo what's stucking?
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Application.mainWeb() {
|
fun Application.mainWeb() {
|
||||||
|
@ -3,7 +3,6 @@ package com.github.creeper123123321.viaaas
|
|||||||
import io.ktor.application.*
|
import io.ktor.application.*
|
||||||
import io.ktor.features.*
|
import io.ktor.features.*
|
||||||
import io.ktor.http.cio.websocket.*
|
import io.ktor.http.cio.websocket.*
|
||||||
import io.ktor.http.cio.websocket.WebSockets
|
|
||||||
import io.ktor.http.content.*
|
import io.ktor.http.content.*
|
||||||
import io.ktor.routing.*
|
import io.ktor.routing.*
|
||||||
import io.ktor.websocket.*
|
import io.ktor.websocket.*
|
||||||
@ -80,7 +79,6 @@ class WebLogin : WebState {
|
|||||||
override suspend fun start(webClient: WebClient) {
|
override suspend fun start(webClient: WebClient) {
|
||||||
webClient.ws.send("test")
|
webClient.ws.send("test")
|
||||||
webClient.ws.flush()
|
webClient.ws.flush()
|
||||||
TODO("Not yet implemented")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun onMessage(webClient: WebClient, msg: String) {
|
override suspend fun onMessage(webClient: WebClient, msg: String) {
|
||||||
|
Loading…
Reference in New Issue
Block a user