From 916e4e951ee462c8879988de36435bca92da5873 Mon Sep 17 00:00:00 2001 From: FlorianMichael Date: Sun, 18 Jan 2026 22:52:00 +0100 Subject: [PATCH 1/3] More platform cleanup Signed-off-by: FlorianMichael --- build.gradle.kts | 2 +- .../com/viaversion/aas/handler/ViaCodec.java | 52 ------------------- .../aas/platform/AspirinAprilFools.java | 24 --------- .../aas/platform/AspirinBackwards.java | 29 ----------- .../aas/platform/AspirinInjector.java | 18 ++++--- .../aas/platform/AspirinLegacy.java | 24 --------- ...Loader.java => AspirinPlatformLoader.java} | 4 +- .../aas/platform/AspirinRewind.java | 24 --------- .../viaversion/aas/platform/FutureTask.java | 19 ------- src/main/kotlin/com/viaversion/aas/VIAaaS.kt | 18 +++---- .../com/viaversion/aas/handler/BackEndInit.kt | 3 +- .../aas/platform/AspirinPlatform.kt | 19 +++---- .../aas/protocol/AspirinProtocols.kt | 11 ---- 13 files changed, 30 insertions(+), 217 deletions(-) delete mode 100644 src/main/java/com/viaversion/aas/handler/ViaCodec.java delete mode 100644 src/main/java/com/viaversion/aas/platform/AspirinAprilFools.java delete mode 100644 src/main/java/com/viaversion/aas/platform/AspirinBackwards.java delete mode 100644 src/main/java/com/viaversion/aas/platform/AspirinLegacy.java rename src/main/java/com/viaversion/aas/platform/{AspirinLoader.java => AspirinPlatformLoader.java} (94%) delete mode 100644 src/main/java/com/viaversion/aas/platform/AspirinRewind.java delete mode 100644 src/main/java/com/viaversion/aas/platform/FutureTask.java delete mode 100644 src/main/kotlin/com/viaversion/aas/protocol/AspirinProtocols.kt diff --git a/build.gradle.kts b/build.gradle.kts index 40734f6..b49137d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -68,7 +68,7 @@ dependencies { implementation(kotlin("stdlib-jdk8")) implementation(kotlin("reflect")) - val vvVer = "5.7.1" + val vvVer = "5.7.2-SNAPSHOT" val vbVer = "5.7.1" val vrVer = "4.0.14" val vafVer = "4.0.8" diff --git a/src/main/java/com/viaversion/aas/handler/ViaCodec.java b/src/main/java/com/viaversion/aas/handler/ViaCodec.java deleted file mode 100644 index 129b83f..0000000 --- a/src/main/java/com/viaversion/aas/handler/ViaCodec.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.viaversion.aas.handler; - -import com.viaversion.viaversion.api.connection.UserConnection; -import com.viaversion.viaversion.exception.CancelDecoderException; -import com.viaversion.viaversion.exception.CancelEncoderException; -import io.netty.buffer.ByteBuf; -import io.netty.channel.ChannelHandlerContext; -import io.netty.handler.codec.MessageToMessageCodec; -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -public class ViaCodec extends MessageToMessageCodec { - private final UserConnection info; - - public ViaCodec(@NotNull UserConnection info) { - this.info = info; - } - - @Override - protected void encode(ChannelHandlerContext ctx, ByteBuf msg, List out) throws Exception { - if (!ctx.channel().isActive() ||!info.checkServerboundPacket(msg.readableBytes())) throw CancelEncoderException.generate(null); - if (!info.shouldTransformPacket()) { - out.add(msg.retain()); - return; - } - var transformedBuf = ctx.alloc().buffer().writeBytes(msg); - try { - info.transformServerbound(transformedBuf, CancelEncoderException::generate); - out.add(transformedBuf.retain()); - } finally { - transformedBuf.release(); - } - } - - @Override - protected void decode(ChannelHandlerContext ctx, ByteBuf msg, List out) throws Exception { - if (!ctx.channel().isActive()) return; - if (!info.checkClientboundPacket()) throw CancelDecoderException.generate(null); - if (!info.shouldTransformPacket()) { - out.add(msg.retain()); - return; - } - var transformedBuf = ctx.alloc().buffer().writeBytes(msg); - try { - info.transformClientbound(transformedBuf, CancelDecoderException::generate); - out.add(transformedBuf.retain()); - } finally { - transformedBuf.release(); - } - } -} diff --git a/src/main/java/com/viaversion/aas/platform/AspirinAprilFools.java b/src/main/java/com/viaversion/aas/platform/AspirinAprilFools.java deleted file mode 100644 index f588f5a..0000000 --- a/src/main/java/com/viaversion/aas/platform/AspirinAprilFools.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.viaversion.aas.platform; - -import com.viaversion.viaaprilfools.platform.ViaAprilFoolsPlatform; -import com.viaversion.viaversion.api.Via; - -import java.io.File; -import java.util.logging.Logger; - -public class AspirinAprilFools implements ViaAprilFoolsPlatform { - private final Logger logger = Logger.getLogger("ViaAprilFools"); - @Override - public Logger getLogger() { - return logger; - } - - public void init() { - init(new File(getDataFolder(), "viaaprilfools.yml")); - } - - @Override - public File getDataFolder() { - return Via.getPlatform().getDataFolder(); - } -} diff --git a/src/main/java/com/viaversion/aas/platform/AspirinBackwards.java b/src/main/java/com/viaversion/aas/platform/AspirinBackwards.java deleted file mode 100644 index 36de463..0000000 --- a/src/main/java/com/viaversion/aas/platform/AspirinBackwards.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.viaversion.aas.platform; - -import com.viaversion.viabackwards.api.ViaBackwardsPlatform; -import com.viaversion.viaversion.api.Via; - -import java.io.File; -import java.util.logging.Logger; - -public class AspirinBackwards implements ViaBackwardsPlatform { - private final Logger logger = Logger.getLogger("ViaBackwards"); - @Override - public Logger getLogger() { - return logger; - } - - public void init() { - init(new File(getDataFolder(), "viabackwards.yml")); - enable(); - } - - @Override - public void disable() { - } - - @Override - public File getDataFolder() { - return Via.getPlatform().getDataFolder(); - } -} diff --git a/src/main/java/com/viaversion/aas/platform/AspirinInjector.java b/src/main/java/com/viaversion/aas/platform/AspirinInjector.java index dcb5b0b..a3e6db6 100644 --- a/src/main/java/com/viaversion/aas/platform/AspirinInjector.java +++ b/src/main/java/com/viaversion/aas/platform/AspirinInjector.java @@ -1,16 +1,18 @@ package com.viaversion.aas.platform; import com.viaversion.viaversion.platform.NoopInjector; +import com.viaversion.viaversion.platform.ViaCodecHandler; public class AspirinInjector extends NoopInjector { - @Override - public String getEncoderName() { - return getDecoderName(); - } - @Override - public String getDecoderName() { - return "via-codec"; - } + @Override + public String getEncoderName() { + return ViaCodecHandler.NAME; + } + + @Override + public String getDecoderName() { + return ViaCodecHandler.NAME; + } } diff --git a/src/main/java/com/viaversion/aas/platform/AspirinLegacy.java b/src/main/java/com/viaversion/aas/platform/AspirinLegacy.java deleted file mode 100644 index 736ae56..0000000 --- a/src/main/java/com/viaversion/aas/platform/AspirinLegacy.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.viaversion.aas.platform; - -import com.viaversion.viaversion.api.Via; -import net.raphimc.vialegacy.platform.ViaLegacyPlatform; - -import java.io.File; -import java.util.logging.Logger; - -public class AspirinLegacy implements ViaLegacyPlatform { - private final Logger logger = Logger.getLogger("ViaLegacy"); - @Override - public Logger getLogger() { - return logger; - } - - @Override - public File getDataFolder() { - return Via.getPlatform().getDataFolder(); - } - - public void init() { - init(new File(getDataFolder(), "vialegacy.yml")); - } -} diff --git a/src/main/java/com/viaversion/aas/platform/AspirinLoader.java b/src/main/java/com/viaversion/aas/platform/AspirinPlatformLoader.java similarity index 94% rename from src/main/java/com/viaversion/aas/platform/AspirinLoader.java rename to src/main/java/com/viaversion/aas/platform/AspirinPlatformLoader.java index 0773fb9..ff8da2a 100644 --- a/src/main/java/com/viaversion/aas/platform/AspirinLoader.java +++ b/src/main/java/com/viaversion/aas/platform/AspirinPlatformLoader.java @@ -9,7 +9,8 @@ import net.raphimc.vialegacy.protocol.release.r1_6_4tor1_7_2_5.provider.EncryptionProvider; import net.raphimc.vialegacy.protocol.release.r1_7_6_10tor1_8.provider.GameProfileFetcher; -public class AspirinLoader implements ViaPlatformLoader { +public class AspirinPlatformLoader implements ViaPlatformLoader { + @Override public void load() { Via.getManager().getProviders().use(VersionProvider.class, new AspirinVersionProvider()); @@ -26,4 +27,5 @@ public void load() { @Override public void unload() { } + } diff --git a/src/main/java/com/viaversion/aas/platform/AspirinRewind.java b/src/main/java/com/viaversion/aas/platform/AspirinRewind.java deleted file mode 100644 index 9dc8a99..0000000 --- a/src/main/java/com/viaversion/aas/platform/AspirinRewind.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.viaversion.aas.platform; - -import com.viaversion.viarewind.api.ViaRewindPlatform; -import com.viaversion.viaversion.api.Via; - -import java.io.File; -import java.util.logging.Logger; - -public class AspirinRewind implements ViaRewindPlatform { - private final Logger logger = Logger.getLogger("ViaRewind"); - @Override - public Logger getLogger() { - return logger; - } - - public void init() { - init(new File(getDataFolder(), "viarewind.yml")); - } - - @Override - public File getDataFolder() { - return Via.getPlatform().getDataFolder(); - } -} diff --git a/src/main/java/com/viaversion/aas/platform/FutureTask.java b/src/main/java/com/viaversion/aas/platform/FutureTask.java deleted file mode 100644 index 525d6a7..0000000 --- a/src/main/java/com/viaversion/aas/platform/FutureTask.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.viaversion.aas.platform; - -import com.viaversion.viaversion.api.platform.PlatformTask; -import org.jetbrains.annotations.NotNull; - -import java.util.concurrent.Future; - -public class FutureTask implements PlatformTask> { - private final Future object; - - public FutureTask(@NotNull Future object) { - this.object = object; - } - - @Override - public void cancel() { - object.cancel(false); - } -} diff --git a/src/main/kotlin/com/viaversion/aas/VIAaaS.kt b/src/main/kotlin/com/viaversion/aas/VIAaaS.kt index b749fed..2c6a973 100644 --- a/src/main/kotlin/com/viaversion/aas/VIAaaS.kt +++ b/src/main/kotlin/com/viaversion/aas/VIAaaS.kt @@ -3,17 +3,16 @@ package com.viaversion.aas import com.viaversion.aas.command.CommandManager import com.viaversion.aas.command.VIAaaSConsole import com.viaversion.aas.config.VIAaaSConfig -import com.viaversion.aas.platform.AspirinAprilFools -import com.viaversion.aas.platform.AspirinBackwards -import com.viaversion.aas.platform.AspirinLegacy import com.viaversion.aas.platform.AspirinPlatform -import com.viaversion.aas.platform.AspirinRewind -import com.viaversion.aas.protocol.registerAspirinProtocols import com.viaversion.aas.web.ViaWebApp +import com.viaversion.viaaprilfools.ViaAprilFoolsPlatformImpl +import com.viaversion.viabackwards.ViaBackwardsPlatformImpl +import com.viaversion.viarewind.ViaRewindPlatformImpl import com.viaversion.viaversion.api.Via import com.viaversion.viaversion.api.protocol.version.ProtocolVersion import com.viaversion.viaversion.api.protocol.version.VersionType import io.ktor.server.application.* +import net.raphimc.vialegacy.ViaLegacyPlatformImpl import org.apache.logging.log4j.Level import org.apache.logging.log4j.io.IoBuilder @@ -64,15 +63,14 @@ private fun initVia(cmdManager: CommandManager) { val platform = AspirinPlatform(cmdManager) platform.initVia { - AspirinBackwards().init() - AspirinRewind().init() - AspirinAprilFools().init() - AspirinLegacy().init() + ViaBackwardsPlatformImpl() + ViaRewindPlatformImpl() + ViaAprilFoolsPlatformImpl() + ViaLegacyPlatformImpl() Via.getManager().configurationProvider.register(VIAaaSConfig) } ProtocolVersion.register(AUTO) - registerAspirinProtocols() } fun Application.mainWeb() { diff --git a/src/main/kotlin/com/viaversion/aas/handler/BackEndInit.kt b/src/main/kotlin/com/viaversion/aas/handler/BackEndInit.kt index bc172e6..a5f5107 100644 --- a/src/main/kotlin/com/viaversion/aas/handler/BackEndInit.kt +++ b/src/main/kotlin/com/viaversion/aas/handler/BackEndInit.kt @@ -3,6 +3,7 @@ package com.viaversion.aas.handler import com.viaversion.aas.codec.FrameCodec import com.viaversion.aas.codec.MinecraftCodec import com.viaversion.viaversion.connection.UserConnectionImpl +import com.viaversion.viaversion.platform.ViaCodecHandler import com.viaversion.viaversion.protocol.ProtocolPipelineImpl import io.netty.channel.Channel import io.netty.channel.ChannelInitializer @@ -27,7 +28,7 @@ class BackEndInit(private val connectionData: ConnectionData, private val proxyU // "crypto" .addLast("frame", FrameCodec()) // compress - .addLast("via-codec", ViaCodec(user)) + .addLast(ViaCodecHandler.NAME, ViaCodecHandler(user)) .addLast("timeout", ReadTimeoutHandler(30, TimeUnit.SECONDS)) .addLast("mc", MinecraftCodec()) .addLast("handler", MinecraftHandler(connectionData, frontEnd = false)) diff --git a/src/main/kotlin/com/viaversion/aas/platform/AspirinPlatform.kt b/src/main/kotlin/com/viaversion/aas/platform/AspirinPlatform.kt index 222f631..e76c496 100644 --- a/src/main/kotlin/com/viaversion/aas/platform/AspirinPlatform.kt +++ b/src/main/kotlin/com/viaversion/aas/platform/AspirinPlatform.kt @@ -5,7 +5,6 @@ import com.viaversion.aas.command.CommandManager import com.viaversion.aas.command.ViaAspirinCommand import com.viaversion.aas.config.AspirinViaConfig import com.viaversion.viaversion.ViaManagerImpl -import com.viaversion.viaversion.api.Via import com.viaversion.viaversion.configuration.AbstractViaConfig import com.viaversion.viaversion.libs.gson.JsonObject import com.viaversion.viaversion.platform.UserConnectionViaVersionPlatform @@ -14,7 +13,6 @@ import java.io.File import java.util.logging.Logger class AspirinPlatform(val cmdManager: CommandManager) : UserConnectionViaVersionPlatform(File("config/viaversion")) { - private val logger = Logger.getLogger("ViaVersion") override fun createConfig(): AbstractViaConfig { return AspirinViaConfig(this.dataFolder.resolve("viaversion.yml"), logger) @@ -24,17 +22,13 @@ class AspirinPlatform(val cmdManager: CommandManager) : UserConnectionViaVersion val viaCommand = ViaAspirinCommand() cmdManager.registerCommand(viaCommand, "viaversion", "viaver", "vvcloud", "vvaas", "vvaspirin", "viaaas") - Via.init( - ViaManagerImpl.builder() - .injector(AspirinInjector()) - .loader(AspirinLoader()) - .commandHandler(viaCommand) - .platform(this).build() + ViaManagerImpl.initAndLoad( + this, + AspirinInjector(), + viaCommand, + AspirinPlatformLoader(), + enableListener ) - - Via.getManager().addEnableListener(enableListener) - (Via.getManager() as ViaManagerImpl).init() - (Via.getManager() as ViaManagerImpl).onServerLoaded() } override fun getDump(): JsonObject { @@ -53,5 +47,4 @@ class AspirinPlatform(val cmdManager: CommandManager) : UserConnectionViaVersion override fun getPlatformName() = "VIAaaS" override fun getPlatformVersion(): String = AspirinServer.version - override fun isProxy() = true } diff --git a/src/main/kotlin/com/viaversion/aas/protocol/AspirinProtocols.kt b/src/main/kotlin/com/viaversion/aas/protocol/AspirinProtocols.kt deleted file mode 100644 index d45ac7b..0000000 --- a/src/main/kotlin/com/viaversion/aas/protocol/AspirinProtocols.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.viaversion.aas.protocol - -import com.viaversion.viaversion.api.Via -import com.viaversion.viaversion.protocol.ProtocolManagerImpl - -fun registerAspirinProtocols() { - // for ViaLegacy - Via.getManager().protocolManager.maxProtocolPathSize = Int.MAX_VALUE - Via.getManager().protocolManager.maxPathDeltaIncrease = -1 - (Via.getManager().protocolManager as ProtocolManagerImpl).refreshVersions() -} From 55d729dd684c92aa6c7e4857de6a08c574b69bbd Mon Sep 17 00:00:00 2001 From: FlorianMichael Date: Sun, 18 Jan 2026 22:55:55 +0100 Subject: [PATCH 2/3] Remove now unused catch Done in ViaCodecHandler Signed-off-by: FlorianMichael --- src/main/kotlin/com/viaversion/aas/handler/MinecraftHandler.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/kotlin/com/viaversion/aas/handler/MinecraftHandler.kt b/src/main/kotlin/com/viaversion/aas/handler/MinecraftHandler.kt index 74bfdcb..e9a2896 100644 --- a/src/main/kotlin/com/viaversion/aas/handler/MinecraftHandler.kt +++ b/src/main/kotlin/com/viaversion/aas/handler/MinecraftHandler.kt @@ -3,7 +3,6 @@ package com.viaversion.aas.handler import com.viaversion.aas.codec.packet.Packet import com.viaversion.aas.mcLogger import com.viaversion.aas.setAutoRead -import com.viaversion.viaversion.exception.CancelCodecException import io.netty.channel.Channel import io.netty.channel.ChannelHandlerContext import io.netty.channel.SimpleChannelInboundHandler @@ -63,7 +62,6 @@ class MinecraftHandler( override fun exceptionCaught(ctx: ChannelHandlerContext, cause: Throwable) { if (cause is ProxyConnectException && failedProxy(ctx)) return - if (cause is CancelCodecException) return if (cause is ClosedChannelException) return val exceptionId = ThreadLocalRandom.current().nextInt().toUInt().toString(36) mcLogger.debug("Exception {}: ", exceptionId, cause) From 9bcf9c1f66b9481db8275adff8dc6f6cfdd12130 Mon Sep 17 00:00:00 2001 From: FlorianMichael Date: Sun, 18 Jan 2026 22:56:51 +0100 Subject: [PATCH 3/3] Remove unused config override Signed-off-by: FlorianMichael --- .../aas/config/AspirinViaConfig.java | 25 ------------------- .../aas/platform/AspirinPlatform.kt | 8 +----- 2 files changed, 1 insertion(+), 32 deletions(-) delete mode 100644 src/main/java/com/viaversion/aas/config/AspirinViaConfig.java diff --git a/src/main/java/com/viaversion/aas/config/AspirinViaConfig.java b/src/main/java/com/viaversion/aas/config/AspirinViaConfig.java deleted file mode 100644 index e233a61..0000000 --- a/src/main/java/com/viaversion/aas/config/AspirinViaConfig.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.viaversion.aas.config; - -import com.viaversion.viaversion.configuration.AbstractViaConfig; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; -import java.util.logging.Logger; - -public class AspirinViaConfig extends AbstractViaConfig { - protected final List UNSUPPORTED = new ArrayList<>(); - - public AspirinViaConfig(File file, Logger jLogger) { - super(file, jLogger); - UNSUPPORTED.addAll(BUKKIT_ONLY_OPTIONS); - UNSUPPORTED.addAll(VELOCITY_ONLY_OPTIONS); - - reload(); - } - - @Override - public List getUnsupportedOptions() { - return UNSUPPORTED; - } -} diff --git a/src/main/kotlin/com/viaversion/aas/platform/AspirinPlatform.kt b/src/main/kotlin/com/viaversion/aas/platform/AspirinPlatform.kt index e76c496..ffadfb1 100644 --- a/src/main/kotlin/com/viaversion/aas/platform/AspirinPlatform.kt +++ b/src/main/kotlin/com/viaversion/aas/platform/AspirinPlatform.kt @@ -3,9 +3,7 @@ package com.viaversion.aas.platform import com.viaversion.aas.AspirinServer import com.viaversion.aas.command.CommandManager import com.viaversion.aas.command.ViaAspirinCommand -import com.viaversion.aas.config.AspirinViaConfig import com.viaversion.viaversion.ViaManagerImpl -import com.viaversion.viaversion.configuration.AbstractViaConfig import com.viaversion.viaversion.libs.gson.JsonObject import com.viaversion.viaversion.platform.UserConnectionViaVersionPlatform import io.ktor.server.application.* @@ -14,10 +12,6 @@ import java.util.logging.Logger class AspirinPlatform(val cmdManager: CommandManager) : UserConnectionViaVersionPlatform(File("config/viaversion")) { - override fun createConfig(): AbstractViaConfig { - return AspirinViaConfig(this.dataFolder.resolve("viaversion.yml"), logger) - } - fun initVia(enableListener: Runnable) { val viaCommand = ViaAspirinCommand() cmdManager.registerCommand(viaCommand, "viaversion", "viaver", "vvcloud", "vvaas", "vvaspirin", "viaaas") @@ -33,7 +27,7 @@ class AspirinPlatform(val cmdManager: CommandManager) : UserConnectionViaVersion override fun getDump(): JsonObject { return JsonObject().also { - it.add("versions", JsonObject().also{ + it.add("versions", JsonObject().also { it.addProperty("jvm", System.getProperty("java.version")) it.addProperty("ktor", Application::class.java.`package`.implementationVersion) })