update deps, 22w03a

This commit is contained in:
creeper123123321 2022-01-31 09:24:56 -03:00
parent f786444145
commit 51befef79d
10 changed files with 52 additions and 39 deletions

View File

@ -7,7 +7,7 @@ import java.nio.file.Files as JFiles
buildscript {
repositories { mavenCentral() }
dependencies { classpath("com.github.hazendaz:htmlcompressor:1.7.2") }
dependencies { classpath("com.github.hazendaz:htmlcompressor:1.7.3") }
}
plugins {
@ -58,16 +58,16 @@ dependencies {
implementation(kotlin("stdlib-jdk8"))
implementation(kotlin("reflect"))
val vvVer = "4.1.2-SNAPSHOT"
val vbVer = "4.1.2-SNAPSHOT"
val vvVer = "4.2.0-22w03a-SNAPSHOT"
val vbVer = "4.2.0-22w03a-SNAPSHOT"
val vrVer = "d8bee0a"
implementation("com.viaversion:viaversion:$vvVer") { isTransitive = false }
implementation("com.viaversion:viabackwards:$vbVer") { isTransitive = false }
implementation("com.github.ViaVersion.ViaRewind:viarewind-all:$vrVer") { isTransitive = false }
implementation("io.netty:netty-all:4.1.73.Final")
implementation("io.netty:netty-tcnative-boringssl-static:2.0.47.Final")
implementation("io.netty.incubator:netty-incubator-transport-native-io_uring:0.0.11.Final:linux-x86_64")
implementation("io.netty:netty-tcnative-boringssl-static:2.0.48.Final")
implementation("io.netty.incubator:netty-incubator-transport-native-io_uring:0.0.12.Final:linux-x86_64")
implementation("com.google.guava:guava:31.0.1-jre")
implementation("com.velocitypowered:velocity-native:3.1.0")
@ -76,7 +76,7 @@ dependencies {
implementation("org.yaml:snakeyaml:1.30")
val log4jVer = "2.17.1"
val slf4jVer = "1.7.33"
val slf4jVer = "1.7.35"
implementation("net.minecrell:terminalconsoleappender:1.3.0")
implementation("org.apache.logging.log4j:log4j-core:$log4jVer")
implementation("org.apache.logging.log4j:log4j-iostreams:$log4jVer")
@ -85,12 +85,20 @@ dependencies {
implementation("org.jline:jline-terminal-jansi:3.21.0")
implementation("org.slf4j:slf4j-api:$slf4jVer")
val ktorVersion = "1.6.7"
val ktorVersion = "2.0.0-beta-1"
implementation("io.ktor:ktor-network-tls-certificates:$ktorVersion")
implementation("io.ktor:ktor-websockets:$ktorVersion")
implementation("io.ktor:ktor-server-websockets:$ktorVersion")
implementation("io.ktor:ktor-server-netty:$ktorVersion")
implementation("io.ktor:ktor-client-gson:$ktorVersion")
implementation("io.ktor:ktor-server-caching-headers:$ktorVersion")
implementation("io.ktor:ktor-server-call-logging:$ktorVersion")
implementation("io.ktor:ktor-server-compression:$ktorVersion")
implementation("io.ktor:ktor-server-content-negotiation:$ktorVersion")
implementation("io.ktor:ktor-server-default-headers:$ktorVersion")
implementation("io.ktor:ktor-server-forwarded-header:$ktorVersion")
implementation("io.ktor:ktor-server-partial-content:$ktorVersion")
implementation("io.ktor:ktor-serialization-gson:$ktorVersion")
implementation("io.ktor:ktor-client-java:$ktorVersion")
implementation("io.ktor:ktor-client-content-negotiation:$ktorVersion")
implementation("io.ktor:ktor-client-logging-jvm:$ktorVersion")
testImplementation("io.ktor:ktor-server-test-host:$ktorVersion")

View File

@ -7,17 +7,18 @@ import com.viaversion.aas.config.VIAaaSConfig
import com.viaversion.aas.handler.FrontEndInit
import com.viaversion.aas.handler.MinecraftHandler
import com.viaversion.aas.platform.AspirinPlatform
import com.viaversion.aas.web.WebDashboardServer
import com.viaversion.aas.web.WebServer
import com.viaversion.viaversion.ViaManagerImpl
import com.viaversion.viaversion.api.Via
import com.viaversion.viaversion.api.protocol.packet.State
import com.viaversion.viaversion.update.Version
import io.ktor.client.*
import io.ktor.client.call.*
import io.ktor.client.engine.java.*
import io.ktor.client.features.*
import io.ktor.client.features.json.*
import io.ktor.client.plugins.*
import io.ktor.client.request.*
import io.ktor.network.tls.certificates.*
import io.ktor.serialization.gson.*
import io.ktor.server.engine.*
import io.ktor.server.netty.*
import io.netty.bootstrap.ServerBootstrap
@ -41,7 +42,7 @@ object AspirinServer {
.readText()
).asJsonObject["version"].asString
val cleanedVer get() = version.substringBefore("+")
var viaWebServer = WebDashboardServer()
var viaWebServer = WebServer()
private var serverFinishing = CompletableFuture<Unit>()
private var finishedFuture = CompletableFuture<Unit>()
private val initFuture = CompletableFuture<Unit>()
@ -74,8 +75,8 @@ object AspirinServer {
install(UserAgent) {
agent = "VIAaaS/$cleanedVer"
}
install(JsonFeature) {
serializer = GsonSerializer()
install(ContentNegotiation) {
gson()
}
}
@ -146,8 +147,8 @@ object AspirinServer {
suspend fun updaterCheckMessage(): String {
return try {
val latestData =
httpClient.get<JsonObject>("https://api.github.com/repos/viaversion/viaaas/releases/latest")
val latestData = httpClient.get("https://api.github.com/repos/viaversion/viaaas/releases/latest")
.body<JsonObject>()
val latest = Version(latestData["tag_name"]!!.asString.removePrefix("v"))
val current = Version(cleanedVer)
when {

View File

@ -9,6 +9,7 @@ import com.viaversion.aas.config.VIAaaSConfig
import com.viaversion.aas.util.StacklessException
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion
import com.viaversion.viaversion.api.type.Type
import io.ktor.client.call.*
import io.ktor.client.request.*
import io.ktor.server.netty.*
import io.netty.buffer.ByteBuf
@ -193,7 +194,7 @@ suspend fun hasJoined(username: String, hash: String): JsonObject {
AspirinServer.httpClient.get(
"https://sessionserver.mojang.com/session/minecraft/hasJoined?username=" +
UrlEscapers.urlFormParameterEscaper().escape(username) + "&serverId=$hash"
)
).body()
} catch (e: Exception) {
throw StacklessException("Couldn't authenticate with session servers", e)
}

View File

@ -8,7 +8,7 @@ import com.viaversion.aas.protocol.registerAspirinProtocols
import com.viaversion.aas.web.ViaWebApp
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion
import de.gerrygames.viarewind.api.ViaRewindConfigImpl
import io.ktor.application.*
import io.ktor.server.application.*
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch

View File

@ -61,7 +61,7 @@ object PacketRegistry {
ProtocolVersion.v1_16..ProtocolVersion.v1_16_1 to ClientboundPackets1_16.DISCONNECT.id,
ProtocolVersion.v1_16_2..ProtocolVersion.v1_16_4 to ClientboundPackets1_16_2.DISCONNECT.id,
ProtocolVersion.v1_17..ProtocolVersion.v1_17_1 to ClientboundPackets1_17.DISCONNECT.id,
ProtocolVersion.v1_18.singleton to ClientboundPackets1_18.DISCONNECT.id
ProtocolVersion.v1_18..ProtocolVersion.v1_18_2 to ClientboundPackets1_18.DISCONNECT.id
)
)
@ -75,7 +75,7 @@ object PacketRegistry {
ProtocolVersion.v1_16..ProtocolVersion.v1_16_1 to ClientboundPackets1_16.PLUGIN_MESSAGE.id,
ProtocolVersion.v1_16_2..ProtocolVersion.v1_16_4 to ClientboundPackets1_16_2.PLUGIN_MESSAGE.id,
ProtocolVersion.v1_17..ProtocolVersion.v1_17_1 to ClientboundPackets1_17.PLUGIN_MESSAGE.id,
ProtocolVersion.v1_18.singleton to ClientboundPackets1_18.PLUGIN_MESSAGE.id
ProtocolVersion.v1_18..ProtocolVersion.v1_18_2 to ClientboundPackets1_18.PLUGIN_MESSAGE.id
)
)

View File

@ -1,6 +1,7 @@
package com.viaversion.aas.handler.state
import com.google.common.net.HostAndPort
import com.google.gson.JsonPrimitive
import com.viaversion.aas.*
import com.viaversion.aas.codec.CryptoCodec
import com.viaversion.aas.codec.packet.Packet
@ -13,7 +14,6 @@ import com.viaversion.aas.util.StacklessException
import com.viaversion.viaversion.api.protocol.packet.State
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion
import com.viaversion.viaversion.api.type.Type
import com.viaversion.viaversion.libs.gson.JsonPrimitive
import io.netty.buffer.ByteBufAllocator
import io.netty.channel.Channel
import io.netty.channel.ChannelHandlerContext

View File

@ -1,12 +1,13 @@
package com.viaversion.aas.web
import io.ktor.application.*
import io.ktor.features.*
import io.ktor.http.*
import io.ktor.http.cio.websocket.*
import io.ktor.http.content.*
import io.ktor.response.*
import io.ktor.routing.*
import io.ktor.server.application.*
import io.ktor.server.http.content.*
import io.ktor.server.plugins.*
import io.ktor.server.response.*
import io.ktor.server.routing.*
import io.ktor.server.websocket.*
import io.ktor.util.*
import io.ktor.websocket.*
import kotlinx.coroutines.channels.consumeEach
@ -16,7 +17,7 @@ import java.nio.channels.ClosedChannelException
import java.nio.file.Path
import java.time.Duration
class ViaWebApp(val viaWebServer: WebDashboardServer) {
class ViaWebApp(val viaWebServer: WebServer) {
fun Application.main() {
install(DefaultHeaders)
install(ConditionalHeaders)

View File

@ -3,13 +3,13 @@ package com.viaversion.aas.web
import com.google.common.collect.Sets
import com.google.common.util.concurrent.RateLimiter
import com.viaversion.aas.config.VIAaaSConfig
import io.ktor.features.*
import io.ktor.websocket.*
import io.ktor.server.plugins.*
import io.ktor.server.websocket.*
import java.util.*
import java.util.concurrent.atomic.AtomicInteger
data class WebClient(
val server: WebDashboardServer,
val server: WebServer,
val ws: WebSocketServerSession,
val state: WebState,
) {

View File

@ -4,9 +4,10 @@ import com.google.gson.JsonObject
import com.google.gson.JsonParser
import com.viaversion.aas.*
import com.viaversion.aas.util.StacklessException
import io.ktor.client.call.*
import io.ktor.client.request.forms.*
import io.ktor.http.*
import io.ktor.http.cio.websocket.*
import io.ktor.websocket.*
import kotlinx.coroutines.future.await
import java.net.URLEncoder
import java.time.Duration
@ -80,10 +81,10 @@ class WebLogin : WebState {
val username = obj["username"].asString
val code = obj["code"].asString
val check = AspirinServer.httpClient.submitForm<JsonObject>(
val check = AspirinServer.httpClient.submitForm(
"https://api.minecraft.id/gateway/verify/${URLEncoder.encode(username, Charsets.UTF_8)}",
formParameters = parametersOf("code", code),
)
).body<JsonObject>()
if (check.getAsJsonPrimitive("valid").asBoolean) {
val mcIdUser = check["username"].asString

View File

@ -7,16 +7,17 @@ import com.google.common.cache.CacheBuilder
import com.google.common.cache.CacheLoader
import com.google.common.collect.MultimapBuilder
import com.google.common.collect.Multimaps
import com.google.gson.JsonObject
import com.viaversion.aas.AspirinServer
import com.viaversion.aas.config.VIAaaSConfig
import com.viaversion.aas.parseUndashedId
import com.viaversion.aas.reverseLookup
import com.viaversion.aas.util.StacklessException
import com.viaversion.aas.webLogger
import com.viaversion.viaversion.libs.gson.JsonObject
import io.ktor.client.call.*
import io.ktor.client.request.*
import io.ktor.http.cio.websocket.*
import io.ktor.server.netty.*
import io.ktor.server.websocket.*
import io.ktor.websocket.*
import io.netty.handler.codec.dns.DefaultDnsQuestion
import io.netty.handler.codec.dns.DnsPtrRecord
@ -34,7 +35,7 @@ import java.util.concurrent.ConcurrentHashMap
import java.util.concurrent.TimeUnit
import kotlin.coroutines.coroutineContext
class WebDashboardServer {
class WebServer {
// I don't think i'll need more than 1k/day
val clients = ConcurrentHashMap<WebSocketSession, WebClient>()
val jwtAlgorithm = Algorithm.HMAC256(VIAaaSConfig.jwtSecret)
@ -77,7 +78,7 @@ class WebDashboardServer {
.build<String, CompletableFuture<UUID?>>(CacheLoader.from { name ->
CoroutineScope(Dispatchers.IO).async {
AspirinServer.httpClient
.get<JsonObject?>("https://api.mojang.com/users/profiles/minecraft/$name")
.get("https://api.mojang.com/users/profiles/minecraft/$name").body<JsonObject?>()
?.get("id")?.asString?.let { parseUndashedId(it) }
}.asCompletableFuture()
})
@ -103,7 +104,7 @@ class WebDashboardServer {
try {
val cleanedIp = address.hostString.substringBefore("%")
val ipLookup = async(Dispatchers.IO) {
AspirinServer.httpClient.get<JsonObject>("https://ipinfo.io/$cleanedIp")
AspirinServer.httpClient.get("https://ipinfo.io/$cleanedIp").body<JsonObject>()
}
val dnsQuery = AspirinServer.dnsResolver
.resolveAll(DefaultDnsQuestion(reverseLookup(address.address), DnsRecordType.PTR))