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 { buildscript {
repositories { mavenCentral() } repositories { mavenCentral() }
dependencies { classpath("com.github.hazendaz:htmlcompressor:1.7.2") } dependencies { classpath("com.github.hazendaz:htmlcompressor:1.7.3") }
} }
plugins { plugins {
@ -58,16 +58,16 @@ dependencies {
implementation(kotlin("stdlib-jdk8")) implementation(kotlin("stdlib-jdk8"))
implementation(kotlin("reflect")) implementation(kotlin("reflect"))
val vvVer = "4.1.2-SNAPSHOT" val vvVer = "4.2.0-22w03a-SNAPSHOT"
val vbVer = "4.1.2-SNAPSHOT" val vbVer = "4.2.0-22w03a-SNAPSHOT"
val vrVer = "d8bee0a" val vrVer = "d8bee0a"
implementation("com.viaversion:viaversion:$vvVer") { isTransitive = false } implementation("com.viaversion:viaversion:$vvVer") { isTransitive = false }
implementation("com.viaversion:viabackwards:$vbVer") { isTransitive = false } implementation("com.viaversion:viabackwards:$vbVer") { isTransitive = false }
implementation("com.github.ViaVersion.ViaRewind:viarewind-all:$vrVer") { 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-all:4.1.73.Final")
implementation("io.netty:netty-tcnative-boringssl-static:2.0.47.Final") implementation("io.netty:netty-tcnative-boringssl-static:2.0.48.Final")
implementation("io.netty.incubator:netty-incubator-transport-native-io_uring:0.0.11.Final:linux-x86_64") 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.google.guava:guava:31.0.1-jre")
implementation("com.velocitypowered:velocity-native:3.1.0") implementation("com.velocitypowered:velocity-native:3.1.0")
@ -76,7 +76,7 @@ dependencies {
implementation("org.yaml:snakeyaml:1.30") implementation("org.yaml:snakeyaml:1.30")
val log4jVer = "2.17.1" val log4jVer = "2.17.1"
val slf4jVer = "1.7.33" val slf4jVer = "1.7.35"
implementation("net.minecrell:terminalconsoleappender:1.3.0") implementation("net.minecrell:terminalconsoleappender:1.3.0")
implementation("org.apache.logging.log4j:log4j-core:$log4jVer") implementation("org.apache.logging.log4j:log4j-core:$log4jVer")
implementation("org.apache.logging.log4j:log4j-iostreams:$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.jline:jline-terminal-jansi:3.21.0")
implementation("org.slf4j:slf4j-api:$slf4jVer") 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-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-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-java:$ktorVersion")
implementation("io.ktor:ktor-client-content-negotiation:$ktorVersion")
implementation("io.ktor:ktor-client-logging-jvm:$ktorVersion") implementation("io.ktor:ktor-client-logging-jvm:$ktorVersion")
testImplementation("io.ktor:ktor-server-test-host:$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.FrontEndInit
import com.viaversion.aas.handler.MinecraftHandler import com.viaversion.aas.handler.MinecraftHandler
import com.viaversion.aas.platform.AspirinPlatform 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.ViaManagerImpl
import com.viaversion.viaversion.api.Via import com.viaversion.viaversion.api.Via
import com.viaversion.viaversion.api.protocol.packet.State import com.viaversion.viaversion.api.protocol.packet.State
import com.viaversion.viaversion.update.Version import com.viaversion.viaversion.update.Version
import io.ktor.client.* import io.ktor.client.*
import io.ktor.client.call.*
import io.ktor.client.engine.java.* import io.ktor.client.engine.java.*
import io.ktor.client.features.* import io.ktor.client.plugins.*
import io.ktor.client.features.json.*
import io.ktor.client.request.* import io.ktor.client.request.*
import io.ktor.network.tls.certificates.* import io.ktor.network.tls.certificates.*
import io.ktor.serialization.gson.*
import io.ktor.server.engine.* import io.ktor.server.engine.*
import io.ktor.server.netty.* import io.ktor.server.netty.*
import io.netty.bootstrap.ServerBootstrap import io.netty.bootstrap.ServerBootstrap
@ -41,7 +42,7 @@ object AspirinServer {
.readText() .readText()
).asJsonObject["version"].asString ).asJsonObject["version"].asString
val cleanedVer get() = version.substringBefore("+") val cleanedVer get() = version.substringBefore("+")
var viaWebServer = WebDashboardServer() var viaWebServer = WebServer()
private var serverFinishing = CompletableFuture<Unit>() private var serverFinishing = CompletableFuture<Unit>()
private var finishedFuture = CompletableFuture<Unit>() private var finishedFuture = CompletableFuture<Unit>()
private val initFuture = CompletableFuture<Unit>() private val initFuture = CompletableFuture<Unit>()
@ -74,8 +75,8 @@ object AspirinServer {
install(UserAgent) { install(UserAgent) {
agent = "VIAaaS/$cleanedVer" agent = "VIAaaS/$cleanedVer"
} }
install(JsonFeature) { install(ContentNegotiation) {
serializer = GsonSerializer() gson()
} }
} }
@ -146,8 +147,8 @@ object AspirinServer {
suspend fun updaterCheckMessage(): String { suspend fun updaterCheckMessage(): String {
return try { return try {
val latestData = val latestData = httpClient.get("https://api.github.com/repos/viaversion/viaaas/releases/latest")
httpClient.get<JsonObject>("https://api.github.com/repos/viaversion/viaaas/releases/latest") .body<JsonObject>()
val latest = Version(latestData["tag_name"]!!.asString.removePrefix("v")) val latest = Version(latestData["tag_name"]!!.asString.removePrefix("v"))
val current = Version(cleanedVer) val current = Version(cleanedVer)
when { when {

View File

@ -9,6 +9,7 @@ import com.viaversion.aas.config.VIAaaSConfig
import com.viaversion.aas.util.StacklessException import com.viaversion.aas.util.StacklessException
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion import com.viaversion.viaversion.api.protocol.version.ProtocolVersion
import com.viaversion.viaversion.api.type.Type import com.viaversion.viaversion.api.type.Type
import io.ktor.client.call.*
import io.ktor.client.request.* import io.ktor.client.request.*
import io.ktor.server.netty.* import io.ktor.server.netty.*
import io.netty.buffer.ByteBuf import io.netty.buffer.ByteBuf
@ -193,7 +194,7 @@ suspend fun hasJoined(username: String, hash: String): JsonObject {
AspirinServer.httpClient.get( AspirinServer.httpClient.get(
"https://sessionserver.mojang.com/session/minecraft/hasJoined?username=" + "https://sessionserver.mojang.com/session/minecraft/hasJoined?username=" +
UrlEscapers.urlFormParameterEscaper().escape(username) + "&serverId=$hash" UrlEscapers.urlFormParameterEscaper().escape(username) + "&serverId=$hash"
) ).body()
} catch (e: Exception) { } catch (e: Exception) {
throw StacklessException("Couldn't authenticate with session servers", e) 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.aas.web.ViaWebApp
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion import com.viaversion.viaversion.api.protocol.version.ProtocolVersion
import de.gerrygames.viarewind.api.ViaRewindConfigImpl import de.gerrygames.viarewind.api.ViaRewindConfigImpl
import io.ktor.application.* import io.ktor.server.application.*
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch 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..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_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_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..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_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_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 package com.viaversion.aas.handler.state
import com.google.common.net.HostAndPort import com.google.common.net.HostAndPort
import com.google.gson.JsonPrimitive
import com.viaversion.aas.* import com.viaversion.aas.*
import com.viaversion.aas.codec.CryptoCodec import com.viaversion.aas.codec.CryptoCodec
import com.viaversion.aas.codec.packet.Packet 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.packet.State
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion import com.viaversion.viaversion.api.protocol.version.ProtocolVersion
import com.viaversion.viaversion.api.type.Type import com.viaversion.viaversion.api.type.Type
import com.viaversion.viaversion.libs.gson.JsonPrimitive
import io.netty.buffer.ByteBufAllocator import io.netty.buffer.ByteBufAllocator
import io.netty.channel.Channel import io.netty.channel.Channel
import io.netty.channel.ChannelHandlerContext import io.netty.channel.ChannelHandlerContext

View File

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

View File

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

View File

@ -4,9 +4,10 @@ import com.google.gson.JsonObject
import com.google.gson.JsonParser import com.google.gson.JsonParser
import com.viaversion.aas.* import com.viaversion.aas.*
import com.viaversion.aas.util.StacklessException import com.viaversion.aas.util.StacklessException
import io.ktor.client.call.*
import io.ktor.client.request.forms.* import io.ktor.client.request.forms.*
import io.ktor.http.* import io.ktor.http.*
import io.ktor.http.cio.websocket.* import io.ktor.websocket.*
import kotlinx.coroutines.future.await import kotlinx.coroutines.future.await
import java.net.URLEncoder import java.net.URLEncoder
import java.time.Duration import java.time.Duration
@ -80,10 +81,10 @@ class WebLogin : WebState {
val username = obj["username"].asString val username = obj["username"].asString
val code = obj["code"].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)}", "https://api.minecraft.id/gateway/verify/${URLEncoder.encode(username, Charsets.UTF_8)}",
formParameters = parametersOf("code", code), formParameters = parametersOf("code", code),
) ).body<JsonObject>()
if (check.getAsJsonPrimitive("valid").asBoolean) { if (check.getAsJsonPrimitive("valid").asBoolean) {
val mcIdUser = check["username"].asString 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.cache.CacheLoader
import com.google.common.collect.MultimapBuilder import com.google.common.collect.MultimapBuilder
import com.google.common.collect.Multimaps import com.google.common.collect.Multimaps
import com.google.gson.JsonObject
import com.viaversion.aas.AspirinServer import com.viaversion.aas.AspirinServer
import com.viaversion.aas.config.VIAaaSConfig import com.viaversion.aas.config.VIAaaSConfig
import com.viaversion.aas.parseUndashedId import com.viaversion.aas.parseUndashedId
import com.viaversion.aas.reverseLookup import com.viaversion.aas.reverseLookup
import com.viaversion.aas.util.StacklessException import com.viaversion.aas.util.StacklessException
import com.viaversion.aas.webLogger 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.client.request.*
import io.ktor.http.cio.websocket.*
import io.ktor.server.netty.* import io.ktor.server.netty.*
import io.ktor.server.websocket.*
import io.ktor.websocket.* import io.ktor.websocket.*
import io.netty.handler.codec.dns.DefaultDnsQuestion import io.netty.handler.codec.dns.DefaultDnsQuestion
import io.netty.handler.codec.dns.DnsPtrRecord import io.netty.handler.codec.dns.DnsPtrRecord
@ -34,7 +35,7 @@ import java.util.concurrent.ConcurrentHashMap
import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit
import kotlin.coroutines.coroutineContext import kotlin.coroutines.coroutineContext
class WebDashboardServer { class WebServer {
// I don't think i'll need more than 1k/day // I don't think i'll need more than 1k/day
val clients = ConcurrentHashMap<WebSocketSession, WebClient>() val clients = ConcurrentHashMap<WebSocketSession, WebClient>()
val jwtAlgorithm = Algorithm.HMAC256(VIAaaSConfig.jwtSecret) val jwtAlgorithm = Algorithm.HMAC256(VIAaaSConfig.jwtSecret)
@ -77,7 +78,7 @@ class WebDashboardServer {
.build<String, CompletableFuture<UUID?>>(CacheLoader.from { name -> .build<String, CompletableFuture<UUID?>>(CacheLoader.from { name ->
CoroutineScope(Dispatchers.IO).async { CoroutineScope(Dispatchers.IO).async {
AspirinServer.httpClient 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) } ?.get("id")?.asString?.let { parseUndashedId(it) }
}.asCompletableFuture() }.asCompletableFuture()
}) })
@ -103,7 +104,7 @@ class WebDashboardServer {
try { try {
val cleanedIp = address.hostString.substringBefore("%") val cleanedIp = address.hostString.substringBefore("%")
val ipLookup = async(Dispatchers.IO) { 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 val dnsQuery = AspirinServer.dnsResolver
.resolveAll(DefaultDnsQuestion(reverseLookup(address.address), DnsRecordType.PTR)) .resolveAll(DefaultDnsQuestion(reverseLookup(address.address), DnsRecordType.PTR))