From 1fbc96b8057b7a716a55ed9270c8a239f3b0fd20 Mon Sep 17 00:00:00 2001
From: FlorianMichael <60033407+FlorianMichael@users.noreply.github.com>
Date: Sat, 21 Oct 2023 16:08:11 +0200
Subject: [PATCH] Abstract platform code, build tasks and resources / fixed
loading on all versions :tm:
---
build.gradle | 7 +-
buildSrc/build.gradle | 2 +-
...radle => viaforge.base-conventions.gradle} | 18 ----
.../viaforge.conflicting-conventions.gradle | 7 ++
...adle => viaforge.forge-conventions.gradle} | 10 +-
.../groovy/viaforge.modern-conventions.gradle | 6 ++
.../groovy/viaforge.shadow-conventions.gradle | 21 +++++
gradle.properties | 4 +-
.../viaforge/common/PlatformFields.java | 17 +---
.../viaforge/common/ViaForgeCommon.java | 91 +++++++++++++++++++
.../protocolhack/ViaForgeVLInjector.java | 2 +-
.../ViaForgeVLLegacyPipeline.java | 2 +-
.../protocolhack/ViaForgeVLLoader.java | 9 +-
.../main/resources/META-INF/mods.toml | 0
.../src => src}/main/resources/mcmod.info | 0
.../src => src}/main/resources/pack.mcmeta | 0
viaforge-mc112/build.gradle | 5 +-
.../de/florianmichael/viaforge/ViaForge.java | 40 --------
.../florianmichael/viaforge/ViaForge112.java | 20 ++--
.../viaforge/gui/GuiProtocolSelector.java | 7 +-
.../viaforge/mixin/impl/MixinGuiMainMenu.java | 5 +-
.../mixin/impl/MixinNetworkManager.java | 4 +-
.../mixin/impl/MixinNetworkManager_5.java | 14 +--
.../ViaForgeVLLegacyPipeline.java | 59 ------------
.../protocolhack/ViaForgeVLLoader.java | 45 ---------
.../main/resources/mixins.viaforge-mc112.json | 2 +-
viaforge-mc114/build.gradle | 3 +-
.../de/florianmichael/viaforge/ViaForge.java | 42 ---------
.../florianmichael/viaforge/ViaForge114.java | 40 ++++++++
.../viaforge/gui/GuiProtocolSelector.java | 6 +-
.../viaforge/mixin/MixinMainMenuScreen.java | 6 +-
.../mixin/MixinMultiplayerScreen.java | 4 +-
.../viaforge/mixin/MixinNetworkManager.java | 3 +-
.../viaforge/mixin/MixinNetworkManager_1.java | 34 +++++++
.../viaforge/mixin/MixinNetworkManager_5.java | 44 ---------
.../viaforge/mixin/MixinServerListScreen.java | 3 -
.../ViaForgeVLLegacyPipeline.java | 59 ------------
.../protocolhack/ViaForgeVLLoader.java | 45 ---------
.../main/resources/mixins.viaforge-mc114.json | 2 +-
viaforge-mc114/src/main/resources/pack.mcmeta | 6 --
viaforge-mc115/build.gradle | 3 +-
.../de/florianmichael/viaforge/ViaForge.java | 42 ---------
.../florianmichael/viaforge/ViaForge115.java | 41 +++++++++
.../viaforge/gui/GuiProtocolSelector.java | 7 +-
.../viaforge/mixin/MixinMainMenuScreen.java | 6 +-
.../mixin/MixinMultiplayerScreen.java | 4 +-
.../viaforge/mixin/MixinNetworkManager.java | 3 +-
.../viaforge/mixin/MixinNetworkManager_1.java | 34 +++++++
.../viaforge/mixin/MixinNetworkManager_5.java | 44 ---------
.../viaforge/mixin/MixinServerListScreen.java | 3 -
.../src/main/resources/META-INF/mods.toml | 17 ----
.../main/resources/mixins.viaforge-mc115.json | 2 +-
viaforge-mc115/src/main/resources/pack.mcmeta | 6 --
viaforge-mc116/build.gradle | 4 +-
.../de/florianmichael/viaforge/ViaForge.java | 42 ---------
.../florianmichael/viaforge/ViaForge116.java | 41 +++++++++
.../viaforge/gui/GuiProtocolSelector.java | 7 +-
.../viaforge/mixin/MixinMainMenuScreen.java | 5 +-
.../mixin/MixinMultiplayerScreen.java | 3 -
.../viaforge/mixin/MixinNetworkManager.java | 3 +-
.../viaforge/mixin/MixinNetworkManager_1.java | 34 +++++++
.../viaforge/mixin/MixinNetworkManager_5.java | 44 ---------
.../viaforge/mixin/MixinServerListScreen.java | 4 +-
.../ViaForgeVLLegacyPipeline.java | 59 ------------
.../protocolhack/ViaForgeVLLoader.java | 45 ---------
.../src/main/resources/META-INF/mods.toml | 17 ----
.../main/resources/mixins.viaforge-mc116.json | 2 +-
viaforge-mc116/src/main/resources/pack.mcmeta | 6 --
viaforge-mc117/build.gradle | 5 +-
.../de/florianmichael/viaforge/ViaForge.java | 42 ---------
.../florianmichael/viaforge/ViaForge117.java | 41 +++++++++
.../viaforge/gui/GuiProtocolSelector.java | 7 +-
.../viaforge/mixin/MixinConnection.java | 3 +-
.../viaforge/mixin/MixinConnection_1.java | 16 +---
.../mixin/MixinDirectJoinServerScreen.java | 4 +-
.../mixin/MixinJoinMultiplayerScreen.java | 4 +-
.../viaforge/mixin/MixinTitleScreen.java | 5 +-
.../protocolhack/ViaForgeVLInjector.java | 34 -------
.../ViaForgeVLLegacyPipeline.java | 59 ------------
.../protocolhack/ViaForgeVLLoader.java | 45 ---------
.../src/main/resources/META-INF/mods.toml | 17 ----
.../main/resources/mixins.viaforge-mc117.json | 2 +-
viaforge-mc117/src/main/resources/pack.mcmeta | 6 --
viaforge-mc118/build.gradle | 5 +-
.../de/florianmichael/viaforge/ViaForge.java | 42 ---------
.../florianmichael/viaforge/ViaForge118.java | 41 +++++++++
.../viaforge/gui/GuiProtocolSelector.java | 7 +-
.../viaforge/mixin/MixinConnection.java | 3 +-
.../viaforge/mixin/MixinConnection_1.java | 16 +---
.../mixin/MixinDirectJoinServerScreen.java | 4 +-
.../mixin/MixinJoinMultiplayerScreen.java | 4 +-
.../viaforge/mixin/MixinTitleScreen.java | 5 +-
.../protocolhack/ViaForgeVLInjector.java | 34 -------
.../ViaForgeVLLegacyPipeline.java | 59 ------------
.../protocolhack/ViaForgeVLLoader.java | 45 ---------
.../src/main/resources/META-INF/mods.toml | 17 ----
.../main/resources/mixins.viaforge-mc118.json | 2 +-
viaforge-mc118/src/main/resources/pack.mcmeta | 6 --
viaforge-mc119/build.gradle | 5 +-
.../de/florianmichael/viaforge/ViaForge.java | 42 ---------
.../florianmichael/viaforge/ViaForge119.java | 23 +++--
.../viaforge/gui/GuiProtocolSelector.java | 7 +-
.../viaforge/mixin/MixinConnection.java | 3 +-
.../viaforge/mixin/MixinConnection_1.java | 16 +---
.../mixin/MixinDirectJoinServerScreen.java | 4 +-
.../mixin/MixinJoinMultiplayerScreen.java | 4 +-
.../viaforge/mixin/MixinTitleScreen.java | 5 +-
.../protocolhack/ViaForgeVLInjector.java | 34 -------
.../ViaForgeVLLegacyPipeline.java | 59 ------------
.../protocolhack/ViaForgeVLLoader.java | 45 ---------
.../src/main/resources/META-INF/mods.toml | 17 ----
.../main/resources/mixins.viaforge-mc119.json | 2 +-
viaforge-mc119/src/main/resources/pack.mcmeta | 6 --
viaforge-mc120/build.gradle | 5 +-
.../de/florianmichael/viaforge/ViaForge.java | 42 ---------
.../florianmichael/viaforge/ViaForge120.java | 41 +++++++++
.../viaforge/gui/GuiProtocolSelector.java | 6 +-
.../viaforge/mixin/MixinConnection.java | 3 +-
.../viaforge/mixin/MixinConnection_1.java | 16 +---
.../mixin/MixinDirectJoinServerScreen.java | 4 +-
.../mixin/MixinJoinMultiplayerScreen.java | 4 +-
.../viaforge/mixin/MixinTitleScreen.java | 5 +-
.../protocolhack/ViaForgeVLInjector.java | 34 -------
.../ViaForgeVLLegacyPipeline.java | 59 ------------
.../protocolhack/ViaForgeVLLoader.java | 45 ---------
.../src/main/resources/META-INF/mods.toml | 17 ----
.../main/resources/mixins.viaforge-mc120.json | 2 +-
viaforge-mc120/src/main/resources/pack.mcmeta | 6 --
128 files changed, 639 insertions(+), 1724 deletions(-)
rename buildSrc/src/main/groovy/{florianmichael.viaforge.base-conventions.gradle => viaforge.base-conventions.gradle} (60%)
create mode 100644 buildSrc/src/main/groovy/viaforge.conflicting-conventions.gradle
rename buildSrc/src/main/groovy/{florianmichael.viaforge.forge-conventions.gradle => viaforge.forge-conventions.gradle} (86%)
create mode 100644 buildSrc/src/main/groovy/viaforge.modern-conventions.gradle
create mode 100644 buildSrc/src/main/groovy/viaforge.shadow-conventions.gradle
rename viaforge-mc115/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java => src/main/java/de/florianmichael/viaforge/common/PlatformFields.java (65%)
create mode 100644 src/main/java/de/florianmichael/viaforge/common/ViaForgeCommon.java
rename {viaforge-mc114/src/main/java/de/florianmichael/viaforge => src/main/java/de/florianmichael/viaforge/common}/protocolhack/ViaForgeVLInjector.java (95%)
rename {viaforge-mc115/src/main/java/de/florianmichael/viaforge => src/main/java/de/florianmichael/viaforge/common}/protocolhack/ViaForgeVLLegacyPipeline.java (96%)
rename {viaforge-mc115/src/main/java/de/florianmichael/viaforge => src/main/java/de/florianmichael/viaforge/common}/protocolhack/ViaForgeVLLoader.java (82%)
rename {viaforge-mc114/src => src}/main/resources/META-INF/mods.toml (100%)
rename {viaforge-mc112/src => src}/main/resources/mcmod.info (100%)
rename {viaforge-mc112/src => src}/main/resources/pack.mcmeta (100%)
delete mode 100644 viaforge-mc112/src/main/java/de/florianmichael/viaforge/ViaForge.java
rename viaforge-mc116/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java => viaforge-mc112/src/main/java/de/florianmichael/viaforge/ViaForge112.java (60%)
delete mode 100644 viaforge-mc112/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java
delete mode 100644 viaforge-mc112/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java
delete mode 100644 viaforge-mc114/src/main/java/de/florianmichael/viaforge/ViaForge.java
create mode 100644 viaforge-mc114/src/main/java/de/florianmichael/viaforge/ViaForge114.java
create mode 100644 viaforge-mc114/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_1.java
delete mode 100644 viaforge-mc114/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_5.java
delete mode 100644 viaforge-mc114/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java
delete mode 100644 viaforge-mc114/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java
delete mode 100644 viaforge-mc114/src/main/resources/pack.mcmeta
delete mode 100644 viaforge-mc115/src/main/java/de/florianmichael/viaforge/ViaForge.java
create mode 100644 viaforge-mc115/src/main/java/de/florianmichael/viaforge/ViaForge115.java
create mode 100644 viaforge-mc115/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_1.java
delete mode 100644 viaforge-mc115/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_5.java
delete mode 100644 viaforge-mc115/src/main/resources/META-INF/mods.toml
delete mode 100644 viaforge-mc115/src/main/resources/pack.mcmeta
delete mode 100644 viaforge-mc116/src/main/java/de/florianmichael/viaforge/ViaForge.java
create mode 100644 viaforge-mc116/src/main/java/de/florianmichael/viaforge/ViaForge116.java
create mode 100644 viaforge-mc116/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_1.java
delete mode 100644 viaforge-mc116/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_5.java
delete mode 100644 viaforge-mc116/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java
delete mode 100644 viaforge-mc116/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java
delete mode 100644 viaforge-mc116/src/main/resources/META-INF/mods.toml
delete mode 100644 viaforge-mc116/src/main/resources/pack.mcmeta
delete mode 100644 viaforge-mc117/src/main/java/de/florianmichael/viaforge/ViaForge.java
create mode 100644 viaforge-mc117/src/main/java/de/florianmichael/viaforge/ViaForge117.java
rename viaforge-mc118/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_1.java => viaforge-mc117/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection_1.java (64%)
delete mode 100644 viaforge-mc117/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java
delete mode 100644 viaforge-mc117/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java
delete mode 100644 viaforge-mc117/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java
delete mode 100644 viaforge-mc117/src/main/resources/META-INF/mods.toml
delete mode 100644 viaforge-mc117/src/main/resources/pack.mcmeta
delete mode 100644 viaforge-mc118/src/main/java/de/florianmichael/viaforge/ViaForge.java
create mode 100644 viaforge-mc118/src/main/java/de/florianmichael/viaforge/ViaForge118.java
rename viaforge-mc119/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_1.java => viaforge-mc118/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection_1.java (64%)
delete mode 100644 viaforge-mc118/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java
delete mode 100644 viaforge-mc118/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java
delete mode 100644 viaforge-mc118/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java
delete mode 100644 viaforge-mc118/src/main/resources/META-INF/mods.toml
delete mode 100644 viaforge-mc118/src/main/resources/pack.mcmeta
delete mode 100644 viaforge-mc119/src/main/java/de/florianmichael/viaforge/ViaForge.java
rename viaforge-mc112/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java => viaforge-mc119/src/main/java/de/florianmichael/viaforge/ViaForge119.java (59%)
rename viaforge-mc120/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_1.java => viaforge-mc119/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection_1.java (64%)
delete mode 100644 viaforge-mc119/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java
delete mode 100644 viaforge-mc119/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java
delete mode 100644 viaforge-mc119/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java
delete mode 100644 viaforge-mc119/src/main/resources/META-INF/mods.toml
delete mode 100644 viaforge-mc119/src/main/resources/pack.mcmeta
delete mode 100644 viaforge-mc120/src/main/java/de/florianmichael/viaforge/ViaForge.java
create mode 100644 viaforge-mc120/src/main/java/de/florianmichael/viaforge/ViaForge120.java
rename viaforge-mc117/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_1.java => viaforge-mc120/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection_1.java (64%)
delete mode 100644 viaforge-mc120/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java
delete mode 100644 viaforge-mc120/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java
delete mode 100644 viaforge-mc120/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java
delete mode 100644 viaforge-mc120/src/main/resources/META-INF/mods.toml
delete mode 100644 viaforge-mc120/src/main/resources/pack.mcmeta
diff --git a/build.gradle b/build.gradle
index eb9a8f9..39bf09b 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,3 +1,8 @@
plugins {
- id "base"
+ id "java"
+ id "viaforge.base-conventions"
+}
+
+dependencies {
+ compileOnly "io.netty:netty-all:4.0.20.Final"
}
diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
index fd839b0..4609984 100644
--- a/buildSrc/build.gradle
+++ b/buildSrc/build.gradle
@@ -17,6 +17,6 @@ repositories {
dependencies {
implementation "com.github.johnrengelman:shadow:7.1.2"
- implementation "net.minecraftforge.gradle:ForgeGradle:5.1.+"
+ implementation "net.minecraftforge.gradle:ForgeGradle:5.+"
implementation "org.spongepowered:mixingradle:0.7-SNAPSHOT"
}
diff --git a/buildSrc/src/main/groovy/florianmichael.viaforge.base-conventions.gradle b/buildSrc/src/main/groovy/viaforge.base-conventions.gradle
similarity index 60%
rename from buildSrc/src/main/groovy/florianmichael.viaforge.base-conventions.gradle
rename to buildSrc/src/main/groovy/viaforge.base-conventions.gradle
index a57dd44..c56f176 100644
--- a/buildSrc/src/main/groovy/florianmichael.viaforge.base-conventions.gradle
+++ b/buildSrc/src/main/groovy/viaforge.base-conventions.gradle
@@ -1,14 +1,7 @@
plugins {
id "java-library"
- id "com.github.johnrengelman.shadow"
}
-archivesBaseName = project.maven_name
-version = maven_version + "-" + project.mc_version
-group = maven_group
-
-compileJava.options.encoding = "UTF-8"
-
configurations {
include
implementation.extendsFrom(include)
@@ -31,14 +24,3 @@ dependencies {
include "net.raphimc:ViaLoader:${project.vialoader_version}"
}
-
-processResources {
- inputs.property "version", project.version
-
-
- for (final def file in ["mcmod.info", "META-INF/mods.toml"]) {
- filesMatching(file) {
- expand "version": project.version
- }
- }
-}
diff --git a/buildSrc/src/main/groovy/viaforge.conflicting-conventions.gradle b/buildSrc/src/main/groovy/viaforge.conflicting-conventions.gradle
new file mode 100644
index 0000000..9d5c087
--- /dev/null
+++ b/buildSrc/src/main/groovy/viaforge.conflicting-conventions.gradle
@@ -0,0 +1,7 @@
+plugins {
+ id "viaforge.shadow-conventions"
+}
+
+shadowJar {
+ exclude("META-INF/services/**")
+}
diff --git a/buildSrc/src/main/groovy/florianmichael.viaforge.forge-conventions.gradle b/buildSrc/src/main/groovy/viaforge.forge-conventions.gradle
similarity index 86%
rename from buildSrc/src/main/groovy/florianmichael.viaforge.forge-conventions.gradle
rename to buildSrc/src/main/groovy/viaforge.forge-conventions.gradle
index 8abe1b2..56a9d0f 100644
--- a/buildSrc/src/main/groovy/florianmichael.viaforge.forge-conventions.gradle
+++ b/buildSrc/src/main/groovy/viaforge.forge-conventions.gradle
@@ -1,6 +1,7 @@
plugins {
id "net.minecraftforge.gradle"
id "org.spongepowered.mixin"
+ id "viaforge.shadow-conventions"
}
minecraft {
@@ -32,10 +33,12 @@ sourceSets.main.resources {
}
dependencies {
- include "org.spongepowered:mixin:${mixin_version}"
+ include "org.spongepowered:mixin:0.8.3"
include "org.slf4j:slf4j-api:${project.slf4j_version}"
- annotationProcessor "org.spongepowered:mixin:${mixin_version}:processor"
+ annotationProcessor "org.spongepowered:mixin:0.8.3:processor"
+
+ include project(":")
}
mixin {
@@ -53,6 +56,8 @@ jar {
"Implementation-Timestamp": new Date().format("yyyy-MM-dd"-"HH:mm:ssZ"),
"TweakClass": "org.spongepowered.asm.launch.MixinTweaker",
"TweakOrder": "0",
+ "FMLCorePluginContainsFMLMod": "true",
+ "FMLCorePlugin": "de.florianmichael.viaforge.mixin.MixinLoader",
"MixinConfigs": "mixins.${maven_name}.json",
"ForceLoadAsMod": "true"
)
@@ -65,7 +70,6 @@ shadowJar {
duplicatesStrategy DuplicatesStrategy.EXCLUDE
exclude("META-INF/maven/**")
- exclude("META-INF/services/**")
exclude("META-INF/versions/**")
}
diff --git a/buildSrc/src/main/groovy/viaforge.modern-conventions.gradle b/buildSrc/src/main/groovy/viaforge.modern-conventions.gradle
new file mode 100644
index 0000000..5107b42
--- /dev/null
+++ b/buildSrc/src/main/groovy/viaforge.modern-conventions.gradle
@@ -0,0 +1,6 @@
+plugins {
+ id "viaforge.forge-conventions"
+ id "viaforge.conflicting-conventions"
+}
+
+java.toolchain.languageVersion = JavaLanguageVersion.of(17)
diff --git a/buildSrc/src/main/groovy/viaforge.shadow-conventions.gradle b/buildSrc/src/main/groovy/viaforge.shadow-conventions.gradle
new file mode 100644
index 0000000..de0c20f
--- /dev/null
+++ b/buildSrc/src/main/groovy/viaforge.shadow-conventions.gradle
@@ -0,0 +1,21 @@
+plugins {
+ id "com.github.johnrengelman.shadow"
+ id "viaforge.base-conventions"
+}
+
+archivesBaseName = project.maven_name
+version = maven_version + "-" + project.mc_version
+group = maven_group
+
+compileJava.options.encoding = "UTF-8"
+
+processResources {
+ inputs.property "version", project.version
+
+
+ for (final def file in ["mcmod.info", "META-INF/mods.toml"]) {
+ filesMatching(file) {
+ expand "version": project.version
+ }
+ }
+}
diff --git a/gradle.properties b/gradle.properties
index c9b72eb..3f93857 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -15,5 +15,5 @@ viarewind_version=3.0.3-SNAPSHOT
snake_yml_version=2.2
# Misc Libraries
-slf4j_version=2.0.9
-mixin_version=0.8.5
\ No newline at end of file
+slf4j_version=2.0.7
+mixin_version=0.8.3
\ No newline at end of file
diff --git a/viaforge-mc115/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java b/src/main/java/de/florianmichael/viaforge/common/PlatformFields.java
similarity index 65%
rename from viaforge-mc115/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java
rename to src/main/java/de/florianmichael/viaforge/common/PlatformFields.java
index 5a30719..06ceb81 100644
--- a/viaforge-mc115/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java
+++ b/src/main/java/de/florianmichael/viaforge/common/PlatformFields.java
@@ -15,20 +15,13 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package de.florianmichael.viaforge.protocolhack;
+package de.florianmichael.viaforge.common;
-import net.raphimc.vialoader.impl.viaversion.VLInjector;
-import net.raphimc.vialoader.netty.VLLegacyPipeline;
+import java.util.function.Supplier;
-public class ViaForgeVLInjector extends VLInjector {
+public interface PlatformFields {
- @Override
- public String getDecoderName() {
- return VLLegacyPipeline.VIA_DECODER_NAME;
- }
+ int getGameVersion();
- @Override
- public String getEncoderName() {
- return VLLegacyPipeline.VIA_ENCODER_NAME;
- }
+ Supplier isSingleplayer();
}
diff --git a/src/main/java/de/florianmichael/viaforge/common/ViaForgeCommon.java b/src/main/java/de/florianmichael/viaforge/common/ViaForgeCommon.java
new file mode 100644
index 0000000..b68ec10
--- /dev/null
+++ b/src/main/java/de/florianmichael/viaforge/common/ViaForgeCommon.java
@@ -0,0 +1,91 @@
+/*
+ * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
+ * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package de.florianmichael.viaforge.common;
+
+import com.viaversion.viaversion.api.connection.UserConnection;
+import com.viaversion.viaversion.connection.UserConnectionImpl;
+import com.viaversion.viaversion.protocol.ProtocolPipelineImpl;
+import de.florianmichael.viaforge.common.protocolhack.ViaForgeVLInjector;
+import de.florianmichael.viaforge.common.protocolhack.ViaForgeVLLegacyPipeline;
+import de.florianmichael.viaforge.common.protocolhack.ViaForgeVLLoader;
+import io.netty.channel.Channel;
+import io.netty.channel.socket.SocketChannel;
+import net.raphimc.vialoader.ViaLoader;
+import net.raphimc.vialoader.impl.platform.ViaBackwardsPlatformImpl;
+import net.raphimc.vialoader.impl.platform.ViaRewindPlatformImpl;
+import net.raphimc.vialoader.netty.CompressionReorderEvent;
+import net.raphimc.vialoader.util.VersionEnum;
+
+public class ViaForgeCommon {
+ private static ViaForgeCommon manager;
+
+ private final PlatformFields platform;
+ private VersionEnum targetVersion;
+
+ public ViaForgeCommon(PlatformFields platform) {
+ this.platform = platform;
+ }
+
+ public static void init(final PlatformFields platform) {
+ if (manager != null) {
+ return; // Already initialized, ignore it then :tm:
+ }
+ final VersionEnum version = VersionEnum.fromProtocolId(platform.getGameVersion());
+ if (version == VersionEnum.UNKNOWN) {
+ throw new IllegalArgumentException("Unknown version " + platform.getGameVersion());
+ }
+
+ manager = new ViaForgeCommon(platform);
+ manager.setTargetVersion(version);
+
+ ViaLoader.init(null, new ViaForgeVLLoader(), new ViaForgeVLInjector(), null, ViaBackwardsPlatformImpl::new, ViaRewindPlatformImpl::new);
+ }
+
+ public void inject(final Channel channel) {
+ if (channel instanceof SocketChannel && targetVersion != getNativeVersion()) {
+ final UserConnection user = new UserConnectionImpl(channel, true);
+ new ProtocolPipelineImpl(user);
+
+ channel.pipeline().addLast(new ViaForgeVLLegacyPipeline(user, targetVersion));
+ }
+ }
+
+ public void reorderCompression(final Channel channel) {
+ channel.pipeline().fireUserEventTriggered(CompressionReorderEvent.INSTANCE);
+ }
+
+ public VersionEnum getNativeVersion() {
+ return VersionEnum.fromProtocolId(platform.getGameVersion());
+ }
+
+ public VersionEnum getTargetVersion() {
+ return targetVersion;
+ }
+
+ public void setTargetVersion(VersionEnum targetVersion) {
+ this.targetVersion = targetVersion;
+ }
+
+ public PlatformFields getPlatform() {
+ return platform;
+ }
+
+ public static ViaForgeCommon getManager() {
+ return manager;
+ }
+}
diff --git a/viaforge-mc114/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java b/src/main/java/de/florianmichael/viaforge/common/protocolhack/ViaForgeVLInjector.java
similarity index 95%
rename from viaforge-mc114/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java
rename to src/main/java/de/florianmichael/viaforge/common/protocolhack/ViaForgeVLInjector.java
index 5a30719..fbb2ec4 100644
--- a/viaforge-mc114/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java
+++ b/src/main/java/de/florianmichael/viaforge/common/protocolhack/ViaForgeVLInjector.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package de.florianmichael.viaforge.protocolhack;
+package de.florianmichael.viaforge.common.protocolhack;
import net.raphimc.vialoader.impl.viaversion.VLInjector;
import net.raphimc.vialoader.netty.VLLegacyPipeline;
diff --git a/viaforge-mc115/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java b/src/main/java/de/florianmichael/viaforge/common/protocolhack/ViaForgeVLLegacyPipeline.java
similarity index 96%
rename from viaforge-mc115/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java
rename to src/main/java/de/florianmichael/viaforge/common/protocolhack/ViaForgeVLLegacyPipeline.java
index 37da249..50776ae 100644
--- a/viaforge-mc115/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java
+++ b/src/main/java/de/florianmichael/viaforge/common/protocolhack/ViaForgeVLLegacyPipeline.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package de.florianmichael.viaforge.protocolhack;
+package de.florianmichael.viaforge.common.protocolhack;
import com.viaversion.viaversion.api.connection.UserConnection;
import net.raphimc.vialoader.netty.VLLegacyPipeline;
diff --git a/viaforge-mc115/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java b/src/main/java/de/florianmichael/viaforge/common/protocolhack/ViaForgeVLLoader.java
similarity index 82%
rename from viaforge-mc115/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java
rename to src/main/java/de/florianmichael/viaforge/common/protocolhack/ViaForgeVLLoader.java
index 2158ad3..908271e 100644
--- a/viaforge-mc115/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java
+++ b/src/main/java/de/florianmichael/viaforge/common/protocolhack/ViaForgeVLLoader.java
@@ -15,14 +15,13 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package de.florianmichael.viaforge.protocolhack;
+package de.florianmichael.viaforge.common.protocolhack;
import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.api.protocol.version.VersionProvider;
import com.viaversion.viaversion.protocols.base.BaseVersionProvider;
-import de.florianmichael.viaforge.ViaForge;
-import net.minecraft.client.Minecraft;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import net.raphimc.vialoader.impl.viaversion.VLLoader;
public class ViaForgeVLLoader extends VLLoader {
@@ -34,8 +33,8 @@ public class ViaForgeVLLoader extends VLLoader {
Via.getManager().getProviders().use(VersionProvider.class, new BaseVersionProvider() {
@Override
public int getClosestServerProtocol(UserConnection connection) throws Exception {
- if (connection.isClientSide() && !Minecraft.getInstance().hasSingleplayerServer()) {
- return ViaForge.targetVersion.getVersion();
+ if (connection.isClientSide() && !ViaForgeCommon.getManager().getPlatform().isSingleplayer().get()) {
+ return ViaForgeCommon.getManager().getTargetVersion().getVersion();
}
return super.getClosestServerProtocol(connection);
diff --git a/viaforge-mc114/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml
similarity index 100%
rename from viaforge-mc114/src/main/resources/META-INF/mods.toml
rename to src/main/resources/META-INF/mods.toml
diff --git a/viaforge-mc112/src/main/resources/mcmod.info b/src/main/resources/mcmod.info
similarity index 100%
rename from viaforge-mc112/src/main/resources/mcmod.info
rename to src/main/resources/mcmod.info
diff --git a/viaforge-mc112/src/main/resources/pack.mcmeta b/src/main/resources/pack.mcmeta
similarity index 100%
rename from viaforge-mc112/src/main/resources/pack.mcmeta
rename to src/main/resources/pack.mcmeta
diff --git a/viaforge-mc112/build.gradle b/viaforge-mc112/build.gradle
index cef1597..7f84c48 100644
--- a/viaforge-mc112/build.gradle
+++ b/viaforge-mc112/build.gradle
@@ -1,6 +1,5 @@
plugins {
- id "florianmichael.viaforge.base-conventions"
- id "florianmichael.viaforge.forge-conventions"
+ id "viaforge.forge-conventions"
}
minecraft {
@@ -8,5 +7,5 @@ minecraft {
}
dependencies {
- minecraft "net.minecraftforge:forge:1.12.2-14.23.5.2860"
+ minecraft "net.minecraftforge:forge:1.12.2-14.23.5.2859"
}
diff --git a/viaforge-mc112/src/main/java/de/florianmichael/viaforge/ViaForge.java b/viaforge-mc112/src/main/java/de/florianmichael/viaforge/ViaForge.java
deleted file mode 100644
index b099486..0000000
--- a/viaforge-mc112/src/main/java/de/florianmichael/viaforge/ViaForge.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge;
-
-import de.florianmichael.viaforge.protocolhack.ViaForgeVLInjector;
-import de.florianmichael.viaforge.protocolhack.ViaForgeVLLoader;
-import net.raphimc.vialoader.ViaLoader;
-import net.raphimc.vialoader.impl.platform.ViaBackwardsPlatformImpl;
-import net.raphimc.vialoader.impl.platform.ViaRewindPlatformImpl;
-import net.raphimc.vialoader.util.VersionEnum;
-
-public class ViaForge {
- public final static VersionEnum NATIVE_VERSION = VersionEnum.r1_12_2;
-
- public static VersionEnum targetVersion = VersionEnum.r1_12_2;
-
- private static boolean loaded;
-
- public static void initViaVersion() {
- if (loaded) return;
-
- ViaLoader.init(null, new ViaForgeVLLoader(), new ViaForgeVLInjector(), null, ViaBackwardsPlatformImpl::new, ViaRewindPlatformImpl::new);
- loaded = true;
- }
-}
diff --git a/viaforge-mc116/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java b/viaforge-mc112/src/main/java/de/florianmichael/viaforge/ViaForge112.java
similarity index 60%
rename from viaforge-mc116/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java
rename to viaforge-mc112/src/main/java/de/florianmichael/viaforge/ViaForge112.java
index 5a30719..b97fa4e 100644
--- a/viaforge-mc116/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java
+++ b/viaforge-mc112/src/main/java/de/florianmichael/viaforge/ViaForge112.java
@@ -15,20 +15,24 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package de.florianmichael.viaforge.protocolhack;
+package de.florianmichael.viaforge;
-import net.raphimc.vialoader.impl.viaversion.VLInjector;
-import net.raphimc.vialoader.netty.VLLegacyPipeline;
+import de.florianmichael.viaforge.common.PlatformFields;
+import net.minecraft.client.Minecraft;
+import net.minecraft.realms.RealmsSharedConstants;
-public class ViaForgeVLInjector extends VLInjector {
+import java.util.function.Supplier;
+
+public class ViaForge112 implements PlatformFields {
+ public final static ViaForge112 PLATFORM = new ViaForge112();
@Override
- public String getDecoderName() {
- return VLLegacyPipeline.VIA_DECODER_NAME;
+ public int getGameVersion() {
+ return RealmsSharedConstants.NETWORK_PROTOCOL_VERSION;
}
@Override
- public String getEncoderName() {
- return VLLegacyPipeline.VIA_ENCODER_NAME;
+ public Supplier isSingleplayer() {
+ return () -> Minecraft.getMinecraft().isSingleplayer();
}
}
diff --git a/viaforge-mc112/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java b/viaforge-mc112/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java
index 67190ff..ae0e418 100644
--- a/viaforge-mc112/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java
+++ b/viaforge-mc112/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java
@@ -18,7 +18,7 @@
package de.florianmichael.viaforge.gui;
import com.mojang.realmsclient.gui.ChatFormatting;
-import de.florianmichael.viaforge.ViaForge;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiScreen;
@@ -85,7 +85,7 @@ public class GuiProtocolSelector extends GuiScreen {
@Override
protected void elementClicked(int i, boolean b, int i1, int i2) {
- ViaForge.targetVersion = VersionEnum.SORTED_VERSIONS.get(i);
+ ViaForgeCommon.getManager().setTargetVersion(VersionEnum.SORTED_VERSIONS.get(i));
}
@Override
@@ -100,9 +100,10 @@ public class GuiProtocolSelector extends GuiScreen {
@Override
protected void drawSlot(int i, int i1, int i2, int i3, int i4, int i5, float v) {
+ final VersionEnum targetVersion = ViaForgeCommon.getManager().getTargetVersion();
final VersionEnum version = VersionEnum.SORTED_VERSIONS.get(i);
- drawCenteredString(mc.fontRenderer,(ViaForge.targetVersion.getVersion() == version.getVersion() ? ChatFormatting.GREEN.toString() : ChatFormatting.DARK_RED.toString()) + version.getName(), width / 2, i2, -1);
+ drawCenteredString(mc.fontRenderer,(targetVersion == version ? ChatFormatting.GREEN.toString() : ChatFormatting.DARK_RED.toString()) + version.getName(), width / 2, i2, -1);
}
}
}
diff --git a/viaforge-mc112/src/main/java/de/florianmichael/viaforge/mixin/impl/MixinGuiMainMenu.java b/viaforge-mc112/src/main/java/de/florianmichael/viaforge/mixin/impl/MixinGuiMainMenu.java
index 4d6022c..67fba1b 100644
--- a/viaforge-mc112/src/main/java/de/florianmichael/viaforge/mixin/impl/MixinGuiMainMenu.java
+++ b/viaforge-mc112/src/main/java/de/florianmichael/viaforge/mixin/impl/MixinGuiMainMenu.java
@@ -17,7 +17,8 @@
*/
package de.florianmichael.viaforge.mixin.impl;
-import de.florianmichael.viaforge.ViaForge;
+import de.florianmichael.viaforge.ViaForge112;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
import net.minecraft.client.gui.*;
import org.spongepowered.asm.mixin.Mixin;
@@ -32,7 +33,7 @@ public class MixinGuiMainMenu extends GuiScreen {
public void hookViaForgeButton(CallbackInfo ci) {
buttonList.add(new GuiButton(1337, 5, 6, 98, 20, "ViaForge"));
- ViaForge.initViaVersion();
+ ViaForgeCommon.init(ViaForge112.PLATFORM);
}
@Inject(method = "actionPerformed", at = @At("RETURN"))
diff --git a/viaforge-mc112/src/main/java/de/florianmichael/viaforge/mixin/impl/MixinNetworkManager.java b/viaforge-mc112/src/main/java/de/florianmichael/viaforge/mixin/impl/MixinNetworkManager.java
index 08f5278..687b54a 100644
--- a/viaforge-mc112/src/main/java/de/florianmichael/viaforge/mixin/impl/MixinNetworkManager.java
+++ b/viaforge-mc112/src/main/java/de/florianmichael/viaforge/mixin/impl/MixinNetworkManager.java
@@ -17,9 +17,9 @@
*/
package de.florianmichael.viaforge.mixin.impl;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import io.netty.channel.Channel;
import net.minecraft.network.NetworkManager;
-import net.raphimc.vialoader.netty.CompressionReorderEvent;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
@@ -33,6 +33,6 @@ public class MixinNetworkManager {
@Inject(method = "setCompressionThreshold", at = @At("RETURN"))
public void reorderPipeline(int p_setCompressionTreshold_1_, CallbackInfo ci) {
- channel.pipeline().fireUserEventTriggered(CompressionReorderEvent.INSTANCE);
+ ViaForgeCommon.getManager().reorderCompression(channel);
}
}
diff --git a/viaforge-mc112/src/main/java/de/florianmichael/viaforge/mixin/impl/MixinNetworkManager_5.java b/viaforge-mc112/src/main/java/de/florianmichael/viaforge/mixin/impl/MixinNetworkManager_5.java
index 0e8b573..17eddbf 100644
--- a/viaforge-mc112/src/main/java/de/florianmichael/viaforge/mixin/impl/MixinNetworkManager_5.java
+++ b/viaforge-mc112/src/main/java/de/florianmichael/viaforge/mixin/impl/MixinNetworkManager_5.java
@@ -17,13 +17,8 @@
*/
package de.florianmichael.viaforge.mixin.impl;
-import com.viaversion.viaversion.api.connection.UserConnection;
-import com.viaversion.viaversion.connection.UserConnectionImpl;
-import com.viaversion.viaversion.protocol.ProtocolPipelineImpl;
-import de.florianmichael.viaforge.ViaForge;
-import de.florianmichael.viaforge.protocolhack.ViaForgeVLLegacyPipeline;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import io.netty.channel.Channel;
-import io.netty.channel.socket.SocketChannel;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
@@ -34,11 +29,6 @@ public class MixinNetworkManager_5 {
@Inject(method = "initChannel", at = @At(value = "TAIL"), remap = false)
private void onInitChannel(Channel channel, CallbackInfo ci) {
- if (channel instanceof SocketChannel && ViaForge.targetVersion != ViaForge.NATIVE_VERSION) {
- final UserConnection user = new UserConnectionImpl(channel, true);
- new ProtocolPipelineImpl(user);
-
- channel.pipeline().addLast(new ViaForgeVLLegacyPipeline(user, ViaForge.targetVersion));
- }
+ ViaForgeCommon.getManager().inject(channel);
}
}
diff --git a/viaforge-mc112/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java b/viaforge-mc112/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java
deleted file mode 100644
index 37da249..0000000
--- a/viaforge-mc112/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge.protocolhack;
-
-import com.viaversion.viaversion.api.connection.UserConnection;
-import net.raphimc.vialoader.netty.VLLegacyPipeline;
-import net.raphimc.vialoader.util.VersionEnum;
-
-public class ViaForgeVLLegacyPipeline extends VLLegacyPipeline {
-
- public ViaForgeVLLegacyPipeline(UserConnection user, VersionEnum version) {
- super(user, version);
- }
-
- @Override
- protected String decompressName() {
- return "decompress";
- }
-
- @Override
- protected String compressName() {
- return "compress";
- }
-
- @Override
- protected String packetDecoderName() {
- return "decoder";
- }
-
- @Override
- protected String packetEncoderName() {
- return "encoder";
- }
-
- @Override
- protected String lengthSplitterName() {
- return "splitter";
- }
-
- @Override
- protected String lengthPrependerName() {
- return "prepender";
- }
-}
diff --git a/viaforge-mc112/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java b/viaforge-mc112/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java
deleted file mode 100644
index fff5f73..0000000
--- a/viaforge-mc112/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge.protocolhack;
-
-import com.viaversion.viaversion.api.Via;
-import com.viaversion.viaversion.api.connection.UserConnection;
-import com.viaversion.viaversion.api.protocol.version.VersionProvider;
-import com.viaversion.viaversion.protocols.base.BaseVersionProvider;
-import de.florianmichael.viaforge.ViaForge;
-import net.minecraft.client.Minecraft;
-import net.raphimc.vialoader.impl.viaversion.VLLoader;
-
-public class ViaForgeVLLoader extends VLLoader {
-
- @Override
- public void load() {
- super.load();
-
- Via.getManager().getProviders().use(VersionProvider.class, new BaseVersionProvider() {
- @Override
- public int getClosestServerProtocol(UserConnection connection) throws Exception {
- if (connection.isClientSide() && !Minecraft.getMinecraft().isSingleplayer()) {
- return ViaForge.targetVersion.getVersion();
- }
-
- return super.getClosestServerProtocol(connection);
- }
- });
- }
-}
diff --git a/viaforge-mc112/src/main/resources/mixins.viaforge-mc112.json b/viaforge-mc112/src/main/resources/mixins.viaforge-mc112.json
index 077170a..c42e383 100644
--- a/viaforge-mc112/src/main/resources/mixins.viaforge-mc112.json
+++ b/viaforge-mc112/src/main/resources/mixins.viaforge-mc112.json
@@ -3,7 +3,7 @@
"minVersion": "0.7.5",
"compatibilityLevel": "JAVA_8",
"package": "de.florianmichael.viaforge.mixin.impl",
- "refmap": "mixins.viaforge.refmap.json",
+ "refmap": "mixins.viaforge-mc112.refmap.json",
"mixins": [
"MixinNetworkManager",
"MixinNetworkManager_5",
diff --git a/viaforge-mc114/build.gradle b/viaforge-mc114/build.gradle
index 8c9808a..be06926 100644
--- a/viaforge-mc114/build.gradle
+++ b/viaforge-mc114/build.gradle
@@ -1,6 +1,5 @@
plugins {
- id "florianmichael.viaforge.base-conventions"
- id "florianmichael.viaforge.forge-conventions"
+ id "viaforge.forge-conventions"
}
minecraft {
diff --git a/viaforge-mc114/src/main/java/de/florianmichael/viaforge/ViaForge.java b/viaforge-mc114/src/main/java/de/florianmichael/viaforge/ViaForge.java
deleted file mode 100644
index d3ba472..0000000
--- a/viaforge-mc114/src/main/java/de/florianmichael/viaforge/ViaForge.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge;
-
-import de.florianmichael.viaforge.protocolhack.ViaForgeVLInjector;
-import de.florianmichael.viaforge.protocolhack.ViaForgeVLLoader;
-import net.minecraftforge.fml.common.Mod;
-import net.raphimc.vialoader.ViaLoader;
-import net.raphimc.vialoader.impl.platform.ViaBackwardsPlatformImpl;
-import net.raphimc.vialoader.impl.platform.ViaRewindPlatformImpl;
-import net.raphimc.vialoader.util.VersionEnum;
-
-@Mod("viaforge")
-public class ViaForge {
- public final static VersionEnum NATIVE_VERSION = VersionEnum.r1_14_4;
-
- public static VersionEnum targetVersion = VersionEnum.r1_14_4;
-
- private static boolean loaded;
-
- public static void initViaVersion() {
- if (loaded) return;
-
- ViaLoader.init(null, new ViaForgeVLLoader(), new ViaForgeVLInjector(), null, ViaBackwardsPlatformImpl::new, ViaRewindPlatformImpl::new);
- loaded = true;
- }
-}
diff --git a/viaforge-mc114/src/main/java/de/florianmichael/viaforge/ViaForge114.java b/viaforge-mc114/src/main/java/de/florianmichael/viaforge/ViaForge114.java
new file mode 100644
index 0000000..f318b74
--- /dev/null
+++ b/viaforge-mc114/src/main/java/de/florianmichael/viaforge/ViaForge114.java
@@ -0,0 +1,40 @@
+/*
+ * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
+ * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package de.florianmichael.viaforge;
+
+import de.florianmichael.viaforge.common.PlatformFields;
+import net.minecraft.client.Minecraft;
+import net.minecraft.util.SharedConstants;
+import net.minecraftforge.fml.common.Mod;
+
+import java.util.function.Supplier;
+
+@Mod("viaforge")
+public class ViaForge114 implements PlatformFields {
+ public final static ViaForge114 PLATFORM = new ViaForge114();
+
+ @Override
+ public int getGameVersion() {
+ return SharedConstants.getCurrentVersion().getProtocolVersion();
+ }
+
+ @Override
+ public Supplier isSingleplayer() {
+ return () -> Minecraft.getInstance().hasSingleplayerServer();
+ }
+}
diff --git a/viaforge-mc114/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java b/viaforge-mc114/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java
index 4b6611b..87b4d10 100644
--- a/viaforge-mc114/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java
+++ b/viaforge-mc114/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java
@@ -17,7 +17,7 @@
*/
package de.florianmichael.viaforge.gui;
-import de.florianmichael.viaforge.ViaForge;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.widget.button.Button;
@@ -87,14 +87,14 @@ public class GuiProtocolSelector extends Screen {
@Override
public boolean mouseClicked(double p_231044_1_, double p_231044_3_, int p_231044_5_) {
- ViaForge.targetVersion = versionEnum;
+ ViaForgeCommon.getManager().setTargetVersion(versionEnum);
return super.mouseClicked(p_231044_1_, p_231044_3_, p_231044_5_);
}
@Override
public void render(int p_230432_2_, int p_230432_3_, int p_230432_4_, int p_230432_5_, int p_230432_6_, int p_230432_7_, int p_230432_8_, boolean p_230432_9_, float p_230432_10_) {
drawCenteredString(Minecraft.getInstance().font,
- (ViaForge.targetVersion.getVersion() == versionEnum.getVersion() ? TextFormatting.GREEN.toString() : TextFormatting.DARK_RED.toString()) + versionEnum.getName(), width / 2, p_230432_3_, -1);
+ (ViaForgeCommon.getManager().getTargetVersion() == versionEnum ? TextFormatting.GREEN.toString() : TextFormatting.DARK_RED.toString()) + versionEnum.getName(), width / 2, p_230432_3_, -1);
}
}
}
diff --git a/viaforge-mc114/src/main/java/de/florianmichael/viaforge/mixin/MixinMainMenuScreen.java b/viaforge-mc114/src/main/java/de/florianmichael/viaforge/mixin/MixinMainMenuScreen.java
index ece29e6..9e2801a 100644
--- a/viaforge-mc114/src/main/java/de/florianmichael/viaforge/mixin/MixinMainMenuScreen.java
+++ b/viaforge-mc114/src/main/java/de/florianmichael/viaforge/mixin/MixinMainMenuScreen.java
@@ -17,13 +17,13 @@
*/
package de.florianmichael.viaforge.mixin;
-import de.florianmichael.viaforge.ViaForge;
+import de.florianmichael.viaforge.ViaForge114;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
import net.minecraft.client.gui.screen.MainMenuScreen;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.widget.button.Button;
import net.minecraft.util.text.ITextComponent;
-import net.minecraft.util.text.StringTextComponent;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
@@ -40,6 +40,6 @@ public class MixinMainMenuScreen extends Screen {
public void hookViaForgeButton(CallbackInfo ci) {
addButton(new Button(5, 6, 98, 20,"ViaForge", b -> GuiProtocolSelector.open(minecraft)));
- ViaForge.initViaVersion();
+ ViaForgeCommon.init(ViaForge114.PLATFORM);
}
}
diff --git a/viaforge-mc114/src/main/java/de/florianmichael/viaforge/mixin/MixinMultiplayerScreen.java b/viaforge-mc114/src/main/java/de/florianmichael/viaforge/mixin/MixinMultiplayerScreen.java
index b059506..b1b0c9f 100644
--- a/viaforge-mc114/src/main/java/de/florianmichael/viaforge/mixin/MixinMultiplayerScreen.java
+++ b/viaforge-mc114/src/main/java/de/florianmichael/viaforge/mixin/MixinMultiplayerScreen.java
@@ -17,7 +17,7 @@
*/
package de.florianmichael.viaforge.mixin;
-import de.florianmichael.viaforge.ViaForge;
+import de.florianmichael.viaforge.ViaForge114;
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
import net.minecraft.client.gui.screen.MultiplayerScreen;
import net.minecraft.client.gui.screen.Screen;
@@ -38,7 +38,5 @@ public class MixinMultiplayerScreen extends Screen {
@Inject(method = "init", at = @At("RETURN"))
public void hookViaForgeButton(CallbackInfo ci) {
addButton(new Button(5, 6, 98, 20,"ViaForge", b -> GuiProtocolSelector.open(minecraft)));
-
- ViaForge.initViaVersion();
}
}
diff --git a/viaforge-mc114/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager.java b/viaforge-mc114/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager.java
index ca36f19..a9dd995 100644
--- a/viaforge-mc114/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager.java
+++ b/viaforge-mc114/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager.java
@@ -17,6 +17,7 @@
*/
package de.florianmichael.viaforge.mixin;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import io.netty.channel.Channel;
import net.minecraft.network.NetworkManager;
import net.raphimc.vialoader.netty.CompressionReorderEvent;
@@ -33,6 +34,6 @@ public class MixinNetworkManager {
@Inject(method = "setupCompression", at = @At("RETURN"))
public void reorderPipeline(int p_setCompressionTreshold_1_, CallbackInfo ci) {
- channel.pipeline().fireUserEventTriggered(CompressionReorderEvent.INSTANCE);
+ ViaForgeCommon.getManager().reorderCompression(channel);
}
}
diff --git a/viaforge-mc114/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_1.java b/viaforge-mc114/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_1.java
new file mode 100644
index 0000000..86826ed
--- /dev/null
+++ b/viaforge-mc114/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_1.java
@@ -0,0 +1,34 @@
+/*
+ * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
+ * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package de.florianmichael.viaforge.mixin;
+
+import de.florianmichael.viaforge.common.ViaForgeCommon;
+import io.netty.channel.Channel;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+
+@Mixin(targets = "net.minecraft.network.NetworkManager$1", remap = false)
+public class MixinNetworkManager_1 {
+
+ @Inject(method = "initChannel", at = @At(value = "TAIL"), remap = false)
+ private void onInitChannel(Channel channel, CallbackInfo ci) {
+ ViaForgeCommon.getManager().inject(channel);
+ }
+}
diff --git a/viaforge-mc114/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_5.java b/viaforge-mc114/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_5.java
deleted file mode 100644
index 7dde3b2..0000000
--- a/viaforge-mc114/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_5.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge.mixin;
-
-import com.viaversion.viaversion.api.connection.UserConnection;
-import com.viaversion.viaversion.connection.UserConnectionImpl;
-import com.viaversion.viaversion.protocol.ProtocolPipelineImpl;
-import de.florianmichael.viaforge.ViaForge;
-import de.florianmichael.viaforge.protocolhack.ViaForgeVLLegacyPipeline;
-import io.netty.channel.Channel;
-import io.netty.channel.socket.SocketChannel;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-
-@Mixin(targets = "net.minecraft.network.NetworkManager$5", remap = false)
-public class MixinNetworkManager_5 {
-
- @Inject(method = "initChannel", at = @At(value = "TAIL"), remap = false)
- private void onInitChannel(Channel channel, CallbackInfo ci) {
- if (channel instanceof SocketChannel && ViaForge.targetVersion != ViaForge.NATIVE_VERSION) {
- final UserConnection user = new UserConnectionImpl(channel, true);
- new ProtocolPipelineImpl(user);
-
- channel.pipeline().addLast(new ViaForgeVLLegacyPipeline(user, ViaForge.targetVersion));
- }
- }
-}
diff --git a/viaforge-mc114/src/main/java/de/florianmichael/viaforge/mixin/MixinServerListScreen.java b/viaforge-mc114/src/main/java/de/florianmichael/viaforge/mixin/MixinServerListScreen.java
index 2609743..2a4fe88 100644
--- a/viaforge-mc114/src/main/java/de/florianmichael/viaforge/mixin/MixinServerListScreen.java
+++ b/viaforge-mc114/src/main/java/de/florianmichael/viaforge/mixin/MixinServerListScreen.java
@@ -17,7 +17,6 @@
*/
package de.florianmichael.viaforge.mixin;
-import de.florianmichael.viaforge.ViaForge;
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.ServerListScreen;
@@ -38,7 +37,5 @@ public class MixinServerListScreen extends Screen {
@Inject(method = "init", at = @At("RETURN"))
public void hookViaForgeButton(CallbackInfo ci) {
addButton(new Button(5, 6, 98, 20,"ViaForge", b -> GuiProtocolSelector.open(minecraft)));
-
- ViaForge.initViaVersion();
}
}
diff --git a/viaforge-mc114/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java b/viaforge-mc114/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java
deleted file mode 100644
index 37da249..0000000
--- a/viaforge-mc114/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge.protocolhack;
-
-import com.viaversion.viaversion.api.connection.UserConnection;
-import net.raphimc.vialoader.netty.VLLegacyPipeline;
-import net.raphimc.vialoader.util.VersionEnum;
-
-public class ViaForgeVLLegacyPipeline extends VLLegacyPipeline {
-
- public ViaForgeVLLegacyPipeline(UserConnection user, VersionEnum version) {
- super(user, version);
- }
-
- @Override
- protected String decompressName() {
- return "decompress";
- }
-
- @Override
- protected String compressName() {
- return "compress";
- }
-
- @Override
- protected String packetDecoderName() {
- return "decoder";
- }
-
- @Override
- protected String packetEncoderName() {
- return "encoder";
- }
-
- @Override
- protected String lengthSplitterName() {
- return "splitter";
- }
-
- @Override
- protected String lengthPrependerName() {
- return "prepender";
- }
-}
diff --git a/viaforge-mc114/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java b/viaforge-mc114/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java
deleted file mode 100644
index 2158ad3..0000000
--- a/viaforge-mc114/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge.protocolhack;
-
-import com.viaversion.viaversion.api.Via;
-import com.viaversion.viaversion.api.connection.UserConnection;
-import com.viaversion.viaversion.api.protocol.version.VersionProvider;
-import com.viaversion.viaversion.protocols.base.BaseVersionProvider;
-import de.florianmichael.viaforge.ViaForge;
-import net.minecraft.client.Minecraft;
-import net.raphimc.vialoader.impl.viaversion.VLLoader;
-
-public class ViaForgeVLLoader extends VLLoader {
-
- @Override
- public void load() {
- super.load();
-
- Via.getManager().getProviders().use(VersionProvider.class, new BaseVersionProvider() {
- @Override
- public int getClosestServerProtocol(UserConnection connection) throws Exception {
- if (connection.isClientSide() && !Minecraft.getInstance().hasSingleplayerServer()) {
- return ViaForge.targetVersion.getVersion();
- }
-
- return super.getClosestServerProtocol(connection);
- }
- });
- }
-}
diff --git a/viaforge-mc114/src/main/resources/mixins.viaforge-mc114.json b/viaforge-mc114/src/main/resources/mixins.viaforge-mc114.json
index e160baf..e24d7dd 100644
--- a/viaforge-mc114/src/main/resources/mixins.viaforge-mc114.json
+++ b/viaforge-mc114/src/main/resources/mixins.viaforge-mc114.json
@@ -5,7 +5,7 @@
"package": "de.florianmichael.viaforge.mixin",
"mixins": [
"MixinNetworkManager",
- "MixinNetworkManager_5",
+ "MixinNetworkManager_1",
"MixinMainMenuScreen",
"MixinMultiplayerScreen",
"MixinServerListScreen"
diff --git a/viaforge-mc114/src/main/resources/pack.mcmeta b/viaforge-mc114/src/main/resources/pack.mcmeta
deleted file mode 100644
index 646ce57..0000000
--- a/viaforge-mc114/src/main/resources/pack.mcmeta
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "pack": {
- "description": "ViaForge",
- "pack_format": 6
- }
-}
diff --git a/viaforge-mc115/build.gradle b/viaforge-mc115/build.gradle
index 8fef129..e8a9dd3 100644
--- a/viaforge-mc115/build.gradle
+++ b/viaforge-mc115/build.gradle
@@ -1,6 +1,5 @@
plugins {
- id "florianmichael.viaforge.base-conventions"
- id "florianmichael.viaforge.forge-conventions"
+ id "viaforge.forge-conventions"
}
minecraft {
diff --git a/viaforge-mc115/src/main/java/de/florianmichael/viaforge/ViaForge.java b/viaforge-mc115/src/main/java/de/florianmichael/viaforge/ViaForge.java
deleted file mode 100644
index c8b3107..0000000
--- a/viaforge-mc115/src/main/java/de/florianmichael/viaforge/ViaForge.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge;
-
-import de.florianmichael.viaforge.protocolhack.ViaForgeVLInjector;
-import de.florianmichael.viaforge.protocolhack.ViaForgeVLLoader;
-import net.minecraftforge.fml.common.Mod;
-import net.raphimc.vialoader.ViaLoader;
-import net.raphimc.vialoader.impl.platform.ViaBackwardsPlatformImpl;
-import net.raphimc.vialoader.impl.platform.ViaRewindPlatformImpl;
-import net.raphimc.vialoader.util.VersionEnum;
-
-@Mod("viaforge")
-public class ViaForge {
- public final static VersionEnum NATIVE_VERSION = VersionEnum.r1_15_2;
-
- public static VersionEnum targetVersion = VersionEnum.r1_15_2;
-
- private static boolean loaded;
-
- public static void initViaVersion() {
- if (loaded) return;
-
- ViaLoader.init(null, new ViaForgeVLLoader(), new ViaForgeVLInjector(), null, ViaBackwardsPlatformImpl::new, ViaRewindPlatformImpl::new);
- loaded = true;
- }
-}
diff --git a/viaforge-mc115/src/main/java/de/florianmichael/viaforge/ViaForge115.java b/viaforge-mc115/src/main/java/de/florianmichael/viaforge/ViaForge115.java
new file mode 100644
index 0000000..29757b0
--- /dev/null
+++ b/viaforge-mc115/src/main/java/de/florianmichael/viaforge/ViaForge115.java
@@ -0,0 +1,41 @@
+/*
+ * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
+ * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package de.florianmichael.viaforge;
+
+import de.florianmichael.viaforge.common.PlatformFields;
+import net.minecraft.client.Minecraft;
+import net.minecraft.util.SharedConstants;
+import net.minecraftforge.fml.common.Mod;
+
+import java.util.function.Supplier;
+
+@Mod("viaforge")
+public class ViaForge115 implements PlatformFields {
+
+ public final static ViaForge115 PLATFORM = new ViaForge115();
+
+ @Override
+ public int getGameVersion() {
+ return SharedConstants.getCurrentVersion().getProtocolVersion();
+ }
+
+ @Override
+ public Supplier isSingleplayer() {
+ return () -> Minecraft.getInstance().hasSingleplayerServer();
+ }
+}
diff --git a/viaforge-mc115/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java b/viaforge-mc115/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java
index 4b6611b..7bf7d2c 100644
--- a/viaforge-mc115/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java
+++ b/viaforge-mc115/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java
@@ -17,7 +17,8 @@
*/
package de.florianmichael.viaforge.gui;
-import de.florianmichael.viaforge.ViaForge;
+import de.florianmichael.viaforge.ViaForge115;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.widget.button.Button;
@@ -87,14 +88,14 @@ public class GuiProtocolSelector extends Screen {
@Override
public boolean mouseClicked(double p_231044_1_, double p_231044_3_, int p_231044_5_) {
- ViaForge.targetVersion = versionEnum;
+ ViaForgeCommon.getManager().setTargetVersion(versionEnum);
return super.mouseClicked(p_231044_1_, p_231044_3_, p_231044_5_);
}
@Override
public void render(int p_230432_2_, int p_230432_3_, int p_230432_4_, int p_230432_5_, int p_230432_6_, int p_230432_7_, int p_230432_8_, boolean p_230432_9_, float p_230432_10_) {
drawCenteredString(Minecraft.getInstance().font,
- (ViaForge.targetVersion.getVersion() == versionEnum.getVersion() ? TextFormatting.GREEN.toString() : TextFormatting.DARK_RED.toString()) + versionEnum.getName(), width / 2, p_230432_3_, -1);
+ (ViaForgeCommon.getManager().getTargetVersion() == versionEnum ? TextFormatting.GREEN.toString() : TextFormatting.DARK_RED.toString()) + versionEnum.getName(), width / 2, p_230432_3_, -1);
}
}
}
diff --git a/viaforge-mc115/src/main/java/de/florianmichael/viaforge/mixin/MixinMainMenuScreen.java b/viaforge-mc115/src/main/java/de/florianmichael/viaforge/mixin/MixinMainMenuScreen.java
index ece29e6..163864b 100644
--- a/viaforge-mc115/src/main/java/de/florianmichael/viaforge/mixin/MixinMainMenuScreen.java
+++ b/viaforge-mc115/src/main/java/de/florianmichael/viaforge/mixin/MixinMainMenuScreen.java
@@ -17,13 +17,13 @@
*/
package de.florianmichael.viaforge.mixin;
-import de.florianmichael.viaforge.ViaForge;
+import de.florianmichael.viaforge.ViaForge115;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
import net.minecraft.client.gui.screen.MainMenuScreen;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.widget.button.Button;
import net.minecraft.util.text.ITextComponent;
-import net.minecraft.util.text.StringTextComponent;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
@@ -40,6 +40,6 @@ public class MixinMainMenuScreen extends Screen {
public void hookViaForgeButton(CallbackInfo ci) {
addButton(new Button(5, 6, 98, 20,"ViaForge", b -> GuiProtocolSelector.open(minecraft)));
- ViaForge.initViaVersion();
+ ViaForgeCommon.init(ViaForge115.PLATFORM);
}
}
diff --git a/viaforge-mc115/src/main/java/de/florianmichael/viaforge/mixin/MixinMultiplayerScreen.java b/viaforge-mc115/src/main/java/de/florianmichael/viaforge/mixin/MixinMultiplayerScreen.java
index b059506..87fe1c6 100644
--- a/viaforge-mc115/src/main/java/de/florianmichael/viaforge/mixin/MixinMultiplayerScreen.java
+++ b/viaforge-mc115/src/main/java/de/florianmichael/viaforge/mixin/MixinMultiplayerScreen.java
@@ -17,7 +17,7 @@
*/
package de.florianmichael.viaforge.mixin;
-import de.florianmichael.viaforge.ViaForge;
+import de.florianmichael.viaforge.ViaForge115;
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
import net.minecraft.client.gui.screen.MultiplayerScreen;
import net.minecraft.client.gui.screen.Screen;
@@ -38,7 +38,5 @@ public class MixinMultiplayerScreen extends Screen {
@Inject(method = "init", at = @At("RETURN"))
public void hookViaForgeButton(CallbackInfo ci) {
addButton(new Button(5, 6, 98, 20,"ViaForge", b -> GuiProtocolSelector.open(minecraft)));
-
- ViaForge.initViaVersion();
}
}
diff --git a/viaforge-mc115/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager.java b/viaforge-mc115/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager.java
index ca36f19..a9dd995 100644
--- a/viaforge-mc115/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager.java
+++ b/viaforge-mc115/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager.java
@@ -17,6 +17,7 @@
*/
package de.florianmichael.viaforge.mixin;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import io.netty.channel.Channel;
import net.minecraft.network.NetworkManager;
import net.raphimc.vialoader.netty.CompressionReorderEvent;
@@ -33,6 +34,6 @@ public class MixinNetworkManager {
@Inject(method = "setupCompression", at = @At("RETURN"))
public void reorderPipeline(int p_setCompressionTreshold_1_, CallbackInfo ci) {
- channel.pipeline().fireUserEventTriggered(CompressionReorderEvent.INSTANCE);
+ ViaForgeCommon.getManager().reorderCompression(channel);
}
}
diff --git a/viaforge-mc115/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_1.java b/viaforge-mc115/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_1.java
new file mode 100644
index 0000000..86826ed
--- /dev/null
+++ b/viaforge-mc115/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_1.java
@@ -0,0 +1,34 @@
+/*
+ * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
+ * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package de.florianmichael.viaforge.mixin;
+
+import de.florianmichael.viaforge.common.ViaForgeCommon;
+import io.netty.channel.Channel;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+
+@Mixin(targets = "net.minecraft.network.NetworkManager$1", remap = false)
+public class MixinNetworkManager_1 {
+
+ @Inject(method = "initChannel", at = @At(value = "TAIL"), remap = false)
+ private void onInitChannel(Channel channel, CallbackInfo ci) {
+ ViaForgeCommon.getManager().inject(channel);
+ }
+}
diff --git a/viaforge-mc115/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_5.java b/viaforge-mc115/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_5.java
deleted file mode 100644
index 7dde3b2..0000000
--- a/viaforge-mc115/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_5.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge.mixin;
-
-import com.viaversion.viaversion.api.connection.UserConnection;
-import com.viaversion.viaversion.connection.UserConnectionImpl;
-import com.viaversion.viaversion.protocol.ProtocolPipelineImpl;
-import de.florianmichael.viaforge.ViaForge;
-import de.florianmichael.viaforge.protocolhack.ViaForgeVLLegacyPipeline;
-import io.netty.channel.Channel;
-import io.netty.channel.socket.SocketChannel;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-
-@Mixin(targets = "net.minecraft.network.NetworkManager$5", remap = false)
-public class MixinNetworkManager_5 {
-
- @Inject(method = "initChannel", at = @At(value = "TAIL"), remap = false)
- private void onInitChannel(Channel channel, CallbackInfo ci) {
- if (channel instanceof SocketChannel && ViaForge.targetVersion != ViaForge.NATIVE_VERSION) {
- final UserConnection user = new UserConnectionImpl(channel, true);
- new ProtocolPipelineImpl(user);
-
- channel.pipeline().addLast(new ViaForgeVLLegacyPipeline(user, ViaForge.targetVersion));
- }
- }
-}
diff --git a/viaforge-mc115/src/main/java/de/florianmichael/viaforge/mixin/MixinServerListScreen.java b/viaforge-mc115/src/main/java/de/florianmichael/viaforge/mixin/MixinServerListScreen.java
index 2609743..2a4fe88 100644
--- a/viaforge-mc115/src/main/java/de/florianmichael/viaforge/mixin/MixinServerListScreen.java
+++ b/viaforge-mc115/src/main/java/de/florianmichael/viaforge/mixin/MixinServerListScreen.java
@@ -17,7 +17,6 @@
*/
package de.florianmichael.viaforge.mixin;
-import de.florianmichael.viaforge.ViaForge;
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.ServerListScreen;
@@ -38,7 +37,5 @@ public class MixinServerListScreen extends Screen {
@Inject(method = "init", at = @At("RETURN"))
public void hookViaForgeButton(CallbackInfo ci) {
addButton(new Button(5, 6, 98, 20,"ViaForge", b -> GuiProtocolSelector.open(minecraft)));
-
- ViaForge.initViaVersion();
}
}
diff --git a/viaforge-mc115/src/main/resources/META-INF/mods.toml b/viaforge-mc115/src/main/resources/META-INF/mods.toml
deleted file mode 100644
index b5beba3..0000000
--- a/viaforge-mc115/src/main/resources/META-INF/mods.toml
+++ /dev/null
@@ -1,17 +0,0 @@
-modLoader="javafml"
-loaderVersion="[1,)"
-
-license="GPL-3.0 license"
-issueTrackerURL="https://github.com/ViaVersion/ViaForge/issues"
-showAsResourcePack=false
-
-[[mods]]
-modId="viaforge"
-version="${version}"
-displayName="ViaForge"
-displayURL="https://github.com/FlorianMichael"
-credits="FlorianMichael/EnZaXD and all ViaVersion/ViaForge contributors"
-authors="FlorianMichael/EnZaXD"
-description='''
- Client-side Implementation of ViaVersion, ViaBackwards and ViaRewind for Legacy Minecraft Forge
- '''
\ No newline at end of file
diff --git a/viaforge-mc115/src/main/resources/mixins.viaforge-mc115.json b/viaforge-mc115/src/main/resources/mixins.viaforge-mc115.json
index 9a47e38..f4fe648 100644
--- a/viaforge-mc115/src/main/resources/mixins.viaforge-mc115.json
+++ b/viaforge-mc115/src/main/resources/mixins.viaforge-mc115.json
@@ -5,7 +5,7 @@
"package": "de.florianmichael.viaforge.mixin",
"mixins": [
"MixinNetworkManager",
- "MixinNetworkManager_5",
+ "MixinNetworkManager_1",
"MixinMainMenuScreen",
"MixinMultiplayerScreen",
"MixinServerListScreen"
diff --git a/viaforge-mc115/src/main/resources/pack.mcmeta b/viaforge-mc115/src/main/resources/pack.mcmeta
deleted file mode 100644
index 646ce57..0000000
--- a/viaforge-mc115/src/main/resources/pack.mcmeta
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "pack": {
- "description": "ViaForge",
- "pack_format": 6
- }
-}
diff --git a/viaforge-mc116/build.gradle b/viaforge-mc116/build.gradle
index 3f943c1..454feb3 100644
--- a/viaforge-mc116/build.gradle
+++ b/viaforge-mc116/build.gradle
@@ -1,6 +1,6 @@
plugins {
- id "florianmichael.viaforge.base-conventions"
- id "florianmichael.viaforge.forge-conventions"
+ id "viaforge.forge-conventions"
+ id "viaforge.conflicting-conventions"
}
minecraft {
diff --git a/viaforge-mc116/src/main/java/de/florianmichael/viaforge/ViaForge.java b/viaforge-mc116/src/main/java/de/florianmichael/viaforge/ViaForge.java
deleted file mode 100644
index d2e2dae..0000000
--- a/viaforge-mc116/src/main/java/de/florianmichael/viaforge/ViaForge.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge;
-
-import de.florianmichael.viaforge.protocolhack.ViaForgeVLInjector;
-import de.florianmichael.viaforge.protocolhack.ViaForgeVLLoader;
-import net.minecraftforge.fml.common.Mod;
-import net.raphimc.vialoader.ViaLoader;
-import net.raphimc.vialoader.impl.platform.ViaBackwardsPlatformImpl;
-import net.raphimc.vialoader.impl.platform.ViaRewindPlatformImpl;
-import net.raphimc.vialoader.util.VersionEnum;
-
-@Mod("viaforge")
-public class ViaForge {
- public final static VersionEnum NATIVE_VERSION = VersionEnum.r1_16_4tor1_16_5;
-
- public static VersionEnum targetVersion = VersionEnum.r1_16_4tor1_16_5;
-
- private static boolean loaded;
-
- public static void initViaVersion() {
- if (loaded) return;
-
- ViaLoader.init(null, new ViaForgeVLLoader(), new ViaForgeVLInjector(), null, ViaBackwardsPlatformImpl::new, ViaRewindPlatformImpl::new);
- loaded = true;
- }
-}
diff --git a/viaforge-mc116/src/main/java/de/florianmichael/viaforge/ViaForge116.java b/viaforge-mc116/src/main/java/de/florianmichael/viaforge/ViaForge116.java
new file mode 100644
index 0000000..cccee29
--- /dev/null
+++ b/viaforge-mc116/src/main/java/de/florianmichael/viaforge/ViaForge116.java
@@ -0,0 +1,41 @@
+/*
+ * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
+ * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package de.florianmichael.viaforge;
+
+import de.florianmichael.viaforge.common.PlatformFields;
+import net.minecraft.client.Minecraft;
+import net.minecraft.util.SharedConstants;
+import net.minecraftforge.fml.common.Mod;
+
+import java.util.function.Supplier;
+
+@Mod("viaforge")
+public class ViaForge116 implements PlatformFields {
+
+ public final static ViaForge116 PLATFORM = new ViaForge116();
+
+ @Override
+ public int getGameVersion() {
+ return SharedConstants.getProtocolVersion();
+ }
+
+ @Override
+ public Supplier isSingleplayer() {
+ return () -> Minecraft.getInstance().hasSingleplayerServer();
+ }
+}
diff --git a/viaforge-mc116/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java b/viaforge-mc116/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java
index 2166830..2051f87 100644
--- a/viaforge-mc116/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java
+++ b/viaforge-mc116/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java
@@ -18,7 +18,8 @@
package de.florianmichael.viaforge.gui;
import com.mojang.blaze3d.matrix.MatrixStack;
-import de.florianmichael.viaforge.ViaForge;
+import de.florianmichael.viaforge.ViaForge116;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.widget.button.Button;
@@ -88,14 +89,14 @@ public class GuiProtocolSelector extends Screen {
@Override
public boolean mouseClicked(double p_231044_1_, double p_231044_3_, int p_231044_5_) {
- ViaForge.targetVersion = versionEnum;
+ ViaForgeCommon.getManager().setTargetVersion(versionEnum);
return super.mouseClicked(p_231044_1_, p_231044_3_, p_231044_5_);
}
@Override
public void render(MatrixStack p_230432_1_, int p_230432_2_, int p_230432_3_, int p_230432_4_, int p_230432_5_, int p_230432_6_, int p_230432_7_, int p_230432_8_, boolean p_230432_9_, float p_230432_10_) {
drawCenteredString(p_230432_1_, Minecraft.getInstance().font,
- (ViaForge.targetVersion.getVersion() == versionEnum.getVersion() ? TextFormatting.GREEN.toString() : TextFormatting.DARK_RED.toString()) + versionEnum.getName(), width / 2, p_230432_3_, -1);
+ (ViaForgeCommon.getManager().getTargetVersion() == versionEnum ? TextFormatting.GREEN.toString() : TextFormatting.DARK_RED.toString()) + versionEnum.getName(), width / 2, p_230432_3_, -1);
}
}
}
diff --git a/viaforge-mc116/src/main/java/de/florianmichael/viaforge/mixin/MixinMainMenuScreen.java b/viaforge-mc116/src/main/java/de/florianmichael/viaforge/mixin/MixinMainMenuScreen.java
index 47d795a..aa2a1d4 100644
--- a/viaforge-mc116/src/main/java/de/florianmichael/viaforge/mixin/MixinMainMenuScreen.java
+++ b/viaforge-mc116/src/main/java/de/florianmichael/viaforge/mixin/MixinMainMenuScreen.java
@@ -17,7 +17,8 @@
*/
package de.florianmichael.viaforge.mixin;
-import de.florianmichael.viaforge.ViaForge;
+import de.florianmichael.viaforge.ViaForge116;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
import net.minecraft.client.gui.screen.MainMenuScreen;
import net.minecraft.client.gui.screen.Screen;
@@ -40,6 +41,6 @@ public class MixinMainMenuScreen extends Screen {
public void hookViaForgeButton(CallbackInfo ci) {
addButton(new Button(5, 6, 98, 20, new StringTextComponent("ViaForge"), b -> GuiProtocolSelector.open(minecraft)));
- ViaForge.initViaVersion();
+ ViaForgeCommon.init(ViaForge116.PLATFORM);
}
}
diff --git a/viaforge-mc116/src/main/java/de/florianmichael/viaforge/mixin/MixinMultiplayerScreen.java b/viaforge-mc116/src/main/java/de/florianmichael/viaforge/mixin/MixinMultiplayerScreen.java
index d10e2df..66135d2 100644
--- a/viaforge-mc116/src/main/java/de/florianmichael/viaforge/mixin/MixinMultiplayerScreen.java
+++ b/viaforge-mc116/src/main/java/de/florianmichael/viaforge/mixin/MixinMultiplayerScreen.java
@@ -17,7 +17,6 @@
*/
package de.florianmichael.viaforge.mixin;
-import de.florianmichael.viaforge.ViaForge;
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
import net.minecraft.client.gui.screen.MultiplayerScreen;
import net.minecraft.client.gui.screen.Screen;
@@ -38,7 +37,5 @@ public class MixinMultiplayerScreen extends Screen {
@Inject(method = "init", at = @At("RETURN"))
public void hookViaForgeButton(CallbackInfo ci) {
addButton(new Button(5, 6, 98, 20, ITextComponent.nullToEmpty("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))));
-
- ViaForge.initViaVersion();
}
}
diff --git a/viaforge-mc116/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager.java b/viaforge-mc116/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager.java
index ca36f19..a9dd995 100644
--- a/viaforge-mc116/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager.java
+++ b/viaforge-mc116/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager.java
@@ -17,6 +17,7 @@
*/
package de.florianmichael.viaforge.mixin;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import io.netty.channel.Channel;
import net.minecraft.network.NetworkManager;
import net.raphimc.vialoader.netty.CompressionReorderEvent;
@@ -33,6 +34,6 @@ public class MixinNetworkManager {
@Inject(method = "setupCompression", at = @At("RETURN"))
public void reorderPipeline(int p_setCompressionTreshold_1_, CallbackInfo ci) {
- channel.pipeline().fireUserEventTriggered(CompressionReorderEvent.INSTANCE);
+ ViaForgeCommon.getManager().reorderCompression(channel);
}
}
diff --git a/viaforge-mc116/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_1.java b/viaforge-mc116/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_1.java
new file mode 100644
index 0000000..86826ed
--- /dev/null
+++ b/viaforge-mc116/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_1.java
@@ -0,0 +1,34 @@
+/*
+ * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
+ * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package de.florianmichael.viaforge.mixin;
+
+import de.florianmichael.viaforge.common.ViaForgeCommon;
+import io.netty.channel.Channel;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+
+@Mixin(targets = "net.minecraft.network.NetworkManager$1", remap = false)
+public class MixinNetworkManager_1 {
+
+ @Inject(method = "initChannel", at = @At(value = "TAIL"), remap = false)
+ private void onInitChannel(Channel channel, CallbackInfo ci) {
+ ViaForgeCommon.getManager().inject(channel);
+ }
+}
diff --git a/viaforge-mc116/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_5.java b/viaforge-mc116/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_5.java
deleted file mode 100644
index 7dde3b2..0000000
--- a/viaforge-mc116/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_5.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge.mixin;
-
-import com.viaversion.viaversion.api.connection.UserConnection;
-import com.viaversion.viaversion.connection.UserConnectionImpl;
-import com.viaversion.viaversion.protocol.ProtocolPipelineImpl;
-import de.florianmichael.viaforge.ViaForge;
-import de.florianmichael.viaforge.protocolhack.ViaForgeVLLegacyPipeline;
-import io.netty.channel.Channel;
-import io.netty.channel.socket.SocketChannel;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-
-@Mixin(targets = "net.minecraft.network.NetworkManager$5", remap = false)
-public class MixinNetworkManager_5 {
-
- @Inject(method = "initChannel", at = @At(value = "TAIL"), remap = false)
- private void onInitChannel(Channel channel, CallbackInfo ci) {
- if (channel instanceof SocketChannel && ViaForge.targetVersion != ViaForge.NATIVE_VERSION) {
- final UserConnection user = new UserConnectionImpl(channel, true);
- new ProtocolPipelineImpl(user);
-
- channel.pipeline().addLast(new ViaForgeVLLegacyPipeline(user, ViaForge.targetVersion));
- }
- }
-}
diff --git a/viaforge-mc116/src/main/java/de/florianmichael/viaforge/mixin/MixinServerListScreen.java b/viaforge-mc116/src/main/java/de/florianmichael/viaforge/mixin/MixinServerListScreen.java
index f344dc9..b5f429f 100644
--- a/viaforge-mc116/src/main/java/de/florianmichael/viaforge/mixin/MixinServerListScreen.java
+++ b/viaforge-mc116/src/main/java/de/florianmichael/viaforge/mixin/MixinServerListScreen.java
@@ -17,7 +17,7 @@
*/
package de.florianmichael.viaforge.mixin;
-import de.florianmichael.viaforge.ViaForge;
+import de.florianmichael.viaforge.ViaForge116;
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.ServerListScreen;
@@ -38,7 +38,5 @@ public class MixinServerListScreen extends Screen {
@Inject(method = "init", at = @At("RETURN"))
public void hookViaForgeButton(CallbackInfo ci) {
addButton(new Button(5, 6, 98, 20, ITextComponent.nullToEmpty("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))));
-
- ViaForge.initViaVersion();
}
}
diff --git a/viaforge-mc116/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java b/viaforge-mc116/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java
deleted file mode 100644
index 37da249..0000000
--- a/viaforge-mc116/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge.protocolhack;
-
-import com.viaversion.viaversion.api.connection.UserConnection;
-import net.raphimc.vialoader.netty.VLLegacyPipeline;
-import net.raphimc.vialoader.util.VersionEnum;
-
-public class ViaForgeVLLegacyPipeline extends VLLegacyPipeline {
-
- public ViaForgeVLLegacyPipeline(UserConnection user, VersionEnum version) {
- super(user, version);
- }
-
- @Override
- protected String decompressName() {
- return "decompress";
- }
-
- @Override
- protected String compressName() {
- return "compress";
- }
-
- @Override
- protected String packetDecoderName() {
- return "decoder";
- }
-
- @Override
- protected String packetEncoderName() {
- return "encoder";
- }
-
- @Override
- protected String lengthSplitterName() {
- return "splitter";
- }
-
- @Override
- protected String lengthPrependerName() {
- return "prepender";
- }
-}
diff --git a/viaforge-mc116/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java b/viaforge-mc116/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java
deleted file mode 100644
index 2158ad3..0000000
--- a/viaforge-mc116/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge.protocolhack;
-
-import com.viaversion.viaversion.api.Via;
-import com.viaversion.viaversion.api.connection.UserConnection;
-import com.viaversion.viaversion.api.protocol.version.VersionProvider;
-import com.viaversion.viaversion.protocols.base.BaseVersionProvider;
-import de.florianmichael.viaforge.ViaForge;
-import net.minecraft.client.Minecraft;
-import net.raphimc.vialoader.impl.viaversion.VLLoader;
-
-public class ViaForgeVLLoader extends VLLoader {
-
- @Override
- public void load() {
- super.load();
-
- Via.getManager().getProviders().use(VersionProvider.class, new BaseVersionProvider() {
- @Override
- public int getClosestServerProtocol(UserConnection connection) throws Exception {
- if (connection.isClientSide() && !Minecraft.getInstance().hasSingleplayerServer()) {
- return ViaForge.targetVersion.getVersion();
- }
-
- return super.getClosestServerProtocol(connection);
- }
- });
- }
-}
diff --git a/viaforge-mc116/src/main/resources/META-INF/mods.toml b/viaforge-mc116/src/main/resources/META-INF/mods.toml
deleted file mode 100644
index b5beba3..0000000
--- a/viaforge-mc116/src/main/resources/META-INF/mods.toml
+++ /dev/null
@@ -1,17 +0,0 @@
-modLoader="javafml"
-loaderVersion="[1,)"
-
-license="GPL-3.0 license"
-issueTrackerURL="https://github.com/ViaVersion/ViaForge/issues"
-showAsResourcePack=false
-
-[[mods]]
-modId="viaforge"
-version="${version}"
-displayName="ViaForge"
-displayURL="https://github.com/FlorianMichael"
-credits="FlorianMichael/EnZaXD and all ViaVersion/ViaForge contributors"
-authors="FlorianMichael/EnZaXD"
-description='''
- Client-side Implementation of ViaVersion, ViaBackwards and ViaRewind for Legacy Minecraft Forge
- '''
\ No newline at end of file
diff --git a/viaforge-mc116/src/main/resources/mixins.viaforge-mc116.json b/viaforge-mc116/src/main/resources/mixins.viaforge-mc116.json
index 5c58f31..ebd2aa4 100644
--- a/viaforge-mc116/src/main/resources/mixins.viaforge-mc116.json
+++ b/viaforge-mc116/src/main/resources/mixins.viaforge-mc116.json
@@ -5,7 +5,7 @@
"package": "de.florianmichael.viaforge.mixin",
"mixins": [
"MixinNetworkManager",
- "MixinNetworkManager_5",
+ "MixinNetworkManager_1",
"MixinMainMenuScreen",
"MixinMultiplayerScreen",
"MixinServerListScreen"
diff --git a/viaforge-mc116/src/main/resources/pack.mcmeta b/viaforge-mc116/src/main/resources/pack.mcmeta
deleted file mode 100644
index 646ce57..0000000
--- a/viaforge-mc116/src/main/resources/pack.mcmeta
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "pack": {
- "description": "ViaForge",
- "pack_format": 6
- }
-}
diff --git a/viaforge-mc117/build.gradle b/viaforge-mc117/build.gradle
index 588e154..c829268 100644
--- a/viaforge-mc117/build.gradle
+++ b/viaforge-mc117/build.gradle
@@ -1,10 +1,7 @@
plugins {
- id "florianmichael.viaforge.base-conventions"
- id "florianmichael.viaforge.forge-conventions"
+ id "viaforge.modern-conventions"
}
-java.toolchain.languageVersion = JavaLanguageVersion.of(17)
-
minecraft {
mappings channel: "official", version: "1.17.1"
}
diff --git a/viaforge-mc117/src/main/java/de/florianmichael/viaforge/ViaForge.java b/viaforge-mc117/src/main/java/de/florianmichael/viaforge/ViaForge.java
deleted file mode 100644
index 2969a2e..0000000
--- a/viaforge-mc117/src/main/java/de/florianmichael/viaforge/ViaForge.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge;
-
-import de.florianmichael.viaforge.protocolhack.ViaForgeVLInjector;
-import de.florianmichael.viaforge.protocolhack.ViaForgeVLLoader;
-import net.minecraftforge.fml.common.Mod;
-import net.raphimc.vialoader.ViaLoader;
-import net.raphimc.vialoader.impl.platform.ViaBackwardsPlatformImpl;
-import net.raphimc.vialoader.impl.platform.ViaRewindPlatformImpl;
-import net.raphimc.vialoader.util.VersionEnum;
-
-@Mod("viaforge")
-public class ViaForge {
- public final static VersionEnum NATIVE_VERSION = VersionEnum.r1_17_1;
-
- public static VersionEnum targetVersion = VersionEnum.r1_17_1;
-
- private static boolean loaded;
-
- public static void initViaVersion() {
- if (loaded) return;
-
- ViaLoader.init(null, new ViaForgeVLLoader(), new ViaForgeVLInjector(), null, ViaBackwardsPlatformImpl::new, ViaRewindPlatformImpl::new);
- loaded = true;
- }
-}
diff --git a/viaforge-mc117/src/main/java/de/florianmichael/viaforge/ViaForge117.java b/viaforge-mc117/src/main/java/de/florianmichael/viaforge/ViaForge117.java
new file mode 100644
index 0000000..ef04d5e
--- /dev/null
+++ b/viaforge-mc117/src/main/java/de/florianmichael/viaforge/ViaForge117.java
@@ -0,0 +1,41 @@
+/*
+ * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
+ * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package de.florianmichael.viaforge;
+
+import de.florianmichael.viaforge.common.PlatformFields;
+import net.minecraft.SharedConstants;
+import net.minecraft.client.Minecraft;
+import net.minecraftforge.fml.common.Mod;
+
+import java.util.function.Supplier;
+
+@Mod("viaforge")
+public class ViaForge117 implements PlatformFields {
+
+ public final static ViaForge117 PLATFORM = new ViaForge117();
+
+ @Override
+ public int getGameVersion() {
+ return SharedConstants.getProtocolVersion();
+ }
+
+ @Override
+ public Supplier isSingleplayer() {
+ return () -> Minecraft.getInstance().hasSingleplayerServer();
+ }
+}
diff --git a/viaforge-mc117/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java b/viaforge-mc117/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java
index 1aeb6d5..74316a3 100644
--- a/viaforge-mc117/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java
+++ b/viaforge-mc117/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java
@@ -18,7 +18,8 @@
package de.florianmichael.viaforge.gui;
import com.mojang.blaze3d.vertex.PoseStack;
-import de.florianmichael.viaforge.ViaForge;
+import de.florianmichael.viaforge.ViaForge117;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import net.minecraft.ChatFormatting;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.components.Button;
@@ -88,14 +89,14 @@ public class GuiProtocolSelector extends Screen {
@Override
public boolean mouseClicked(double p_231044_1_, double p_231044_3_, int p_231044_5_) {
- ViaForge.targetVersion = versionEnum;
+ ViaForgeCommon.getManager().setTargetVersion(versionEnum);
return super.mouseClicked(p_231044_1_, p_231044_3_, p_231044_5_);
}
@Override
public void render(PoseStack p_230432_1_, int p_230432_2_, int p_230432_3_, int p_230432_4_, int p_230432_5_, int p_230432_6_, int p_230432_7_, int p_230432_8_, boolean p_230432_9_, float p_230432_10_) {
drawCenteredString(p_230432_1_, Minecraft.getInstance().font,
- (ViaForge.targetVersion.getVersion() == versionEnum.getVersion() ? ChatFormatting.GREEN.toString() : ChatFormatting.DARK_RED.toString()) + versionEnum.getName(), width / 2, p_230432_3_, -1);
+ (ViaForgeCommon.getManager().getTargetVersion() == versionEnum ? ChatFormatting.GREEN.toString() : ChatFormatting.DARK_RED.toString()) + versionEnum.getName(), width / 2, p_230432_3_, -1);
}
@Override
diff --git a/viaforge-mc117/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection.java b/viaforge-mc117/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection.java
index 0b96b18..ca933b2 100644
--- a/viaforge-mc117/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection.java
+++ b/viaforge-mc117/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection.java
@@ -17,6 +17,7 @@
*/
package de.florianmichael.viaforge.mixin;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import io.netty.channel.Channel;
import net.minecraft.network.Connection;
import net.raphimc.vialoader.netty.CompressionReorderEvent;
@@ -33,6 +34,6 @@ public class MixinConnection {
@Inject(method = "setupCompression", at = @At("RETURN"))
public void reorderPipeline(int p_129485_, boolean p_182682_, CallbackInfo ci) {
- channel.pipeline().fireUserEventTriggered(CompressionReorderEvent.INSTANCE);
+ ViaForgeCommon.getManager().reorderCompression(channel);
}
}
diff --git a/viaforge-mc118/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_1.java b/viaforge-mc117/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection_1.java
similarity index 64%
rename from viaforge-mc118/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_1.java
rename to viaforge-mc117/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection_1.java
index 73d505f..9988dd8 100644
--- a/viaforge-mc118/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_1.java
+++ b/viaforge-mc117/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection_1.java
@@ -17,28 +17,18 @@
*/
package de.florianmichael.viaforge.mixin;
-import com.viaversion.viaversion.api.connection.UserConnection;
-import com.viaversion.viaversion.connection.UserConnectionImpl;
-import com.viaversion.viaversion.protocol.ProtocolPipelineImpl;
-import de.florianmichael.viaforge.ViaForge;
-import de.florianmichael.viaforge.protocolhack.ViaForgeVLLegacyPipeline;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import io.netty.channel.Channel;
-import io.netty.channel.socket.SocketChannel;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(targets = "net.minecraft.network.Connection$1", remap = false)
-public class MixinNetworkManager_1 {
+public class MixinConnection_1 {
@Inject(method = "initChannel", at = @At(value = "TAIL"), remap = false)
private void onInitChannel(Channel channel, CallbackInfo ci) {
- if (channel instanceof SocketChannel && ViaForge.targetVersion != ViaForge.NATIVE_VERSION) {
- final UserConnection user = new UserConnectionImpl(channel, true);
- new ProtocolPipelineImpl(user);
-
- channel.pipeline().addLast(new ViaForgeVLLegacyPipeline(user, ViaForge.targetVersion));
- }
+ ViaForgeCommon.getManager().inject(channel);
}
}
diff --git a/viaforge-mc117/src/main/java/de/florianmichael/viaforge/mixin/MixinDirectJoinServerScreen.java b/viaforge-mc117/src/main/java/de/florianmichael/viaforge/mixin/MixinDirectJoinServerScreen.java
index 68758ec..a66512d 100644
--- a/viaforge-mc117/src/main/java/de/florianmichael/viaforge/mixin/MixinDirectJoinServerScreen.java
+++ b/viaforge-mc117/src/main/java/de/florianmichael/viaforge/mixin/MixinDirectJoinServerScreen.java
@@ -17,7 +17,7 @@
*/
package de.florianmichael.viaforge.mixin;
-import de.florianmichael.viaforge.ViaForge;
+import de.florianmichael.viaforge.ViaForge117;
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.screens.DirectJoinServerScreen;
@@ -39,7 +39,5 @@ public class MixinDirectJoinServerScreen extends Screen {
@Inject(method = "init", at = @At("RETURN"))
public void hookViaForgeButton(CallbackInfo ci) {
addRenderableWidget(new Button(5, 6, 98, 20, new TextComponent("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))));
-
- ViaForge.initViaVersion();
}
}
diff --git a/viaforge-mc117/src/main/java/de/florianmichael/viaforge/mixin/MixinJoinMultiplayerScreen.java b/viaforge-mc117/src/main/java/de/florianmichael/viaforge/mixin/MixinJoinMultiplayerScreen.java
index 55a9158..3840d83 100644
--- a/viaforge-mc117/src/main/java/de/florianmichael/viaforge/mixin/MixinJoinMultiplayerScreen.java
+++ b/viaforge-mc117/src/main/java/de/florianmichael/viaforge/mixin/MixinJoinMultiplayerScreen.java
@@ -17,7 +17,7 @@
*/
package de.florianmichael.viaforge.mixin;
-import de.florianmichael.viaforge.ViaForge;
+import de.florianmichael.viaforge.ViaForge117;
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.screens.Screen;
@@ -39,7 +39,5 @@ public class MixinJoinMultiplayerScreen extends Screen {
@Inject(method = "init", at = @At("RETURN"))
public void hookViaForgeButton(CallbackInfo ci) {
addRenderableWidget(new Button(5, 6, 98, 20, new TextComponent("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))));
-
- ViaForge.initViaVersion();
}
}
diff --git a/viaforge-mc117/src/main/java/de/florianmichael/viaforge/mixin/MixinTitleScreen.java b/viaforge-mc117/src/main/java/de/florianmichael/viaforge/mixin/MixinTitleScreen.java
index 7c7ed7e..a99a893 100644
--- a/viaforge-mc117/src/main/java/de/florianmichael/viaforge/mixin/MixinTitleScreen.java
+++ b/viaforge-mc117/src/main/java/de/florianmichael/viaforge/mixin/MixinTitleScreen.java
@@ -17,7 +17,8 @@
*/
package de.florianmichael.viaforge.mixin;
-import de.florianmichael.viaforge.ViaForge;
+import de.florianmichael.viaforge.ViaForge117;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.screens.Screen;
@@ -40,6 +41,6 @@ public class MixinTitleScreen extends Screen {
public void hookViaForgeButton(CallbackInfo ci) {
addRenderableWidget(new Button(5, 6, 98, 20, new TextComponent("ViaForge"), b -> GuiProtocolSelector.open(minecraft)));
- ViaForge.initViaVersion();
+ ViaForgeCommon.init(ViaForge117.PLATFORM);
}
}
diff --git a/viaforge-mc117/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java b/viaforge-mc117/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java
deleted file mode 100644
index 5a30719..0000000
--- a/viaforge-mc117/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge.protocolhack;
-
-import net.raphimc.vialoader.impl.viaversion.VLInjector;
-import net.raphimc.vialoader.netty.VLLegacyPipeline;
-
-public class ViaForgeVLInjector extends VLInjector {
-
- @Override
- public String getDecoderName() {
- return VLLegacyPipeline.VIA_DECODER_NAME;
- }
-
- @Override
- public String getEncoderName() {
- return VLLegacyPipeline.VIA_ENCODER_NAME;
- }
-}
diff --git a/viaforge-mc117/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java b/viaforge-mc117/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java
deleted file mode 100644
index 37da249..0000000
--- a/viaforge-mc117/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge.protocolhack;
-
-import com.viaversion.viaversion.api.connection.UserConnection;
-import net.raphimc.vialoader.netty.VLLegacyPipeline;
-import net.raphimc.vialoader.util.VersionEnum;
-
-public class ViaForgeVLLegacyPipeline extends VLLegacyPipeline {
-
- public ViaForgeVLLegacyPipeline(UserConnection user, VersionEnum version) {
- super(user, version);
- }
-
- @Override
- protected String decompressName() {
- return "decompress";
- }
-
- @Override
- protected String compressName() {
- return "compress";
- }
-
- @Override
- protected String packetDecoderName() {
- return "decoder";
- }
-
- @Override
- protected String packetEncoderName() {
- return "encoder";
- }
-
- @Override
- protected String lengthSplitterName() {
- return "splitter";
- }
-
- @Override
- protected String lengthPrependerName() {
- return "prepender";
- }
-}
diff --git a/viaforge-mc117/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java b/viaforge-mc117/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java
deleted file mode 100644
index 2158ad3..0000000
--- a/viaforge-mc117/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge.protocolhack;
-
-import com.viaversion.viaversion.api.Via;
-import com.viaversion.viaversion.api.connection.UserConnection;
-import com.viaversion.viaversion.api.protocol.version.VersionProvider;
-import com.viaversion.viaversion.protocols.base.BaseVersionProvider;
-import de.florianmichael.viaforge.ViaForge;
-import net.minecraft.client.Minecraft;
-import net.raphimc.vialoader.impl.viaversion.VLLoader;
-
-public class ViaForgeVLLoader extends VLLoader {
-
- @Override
- public void load() {
- super.load();
-
- Via.getManager().getProviders().use(VersionProvider.class, new BaseVersionProvider() {
- @Override
- public int getClosestServerProtocol(UserConnection connection) throws Exception {
- if (connection.isClientSide() && !Minecraft.getInstance().hasSingleplayerServer()) {
- return ViaForge.targetVersion.getVersion();
- }
-
- return super.getClosestServerProtocol(connection);
- }
- });
- }
-}
diff --git a/viaforge-mc117/src/main/resources/META-INF/mods.toml b/viaforge-mc117/src/main/resources/META-INF/mods.toml
deleted file mode 100644
index b5beba3..0000000
--- a/viaforge-mc117/src/main/resources/META-INF/mods.toml
+++ /dev/null
@@ -1,17 +0,0 @@
-modLoader="javafml"
-loaderVersion="[1,)"
-
-license="GPL-3.0 license"
-issueTrackerURL="https://github.com/ViaVersion/ViaForge/issues"
-showAsResourcePack=false
-
-[[mods]]
-modId="viaforge"
-version="${version}"
-displayName="ViaForge"
-displayURL="https://github.com/FlorianMichael"
-credits="FlorianMichael/EnZaXD and all ViaVersion/ViaForge contributors"
-authors="FlorianMichael/EnZaXD"
-description='''
- Client-side Implementation of ViaVersion, ViaBackwards and ViaRewind for Legacy Minecraft Forge
- '''
\ No newline at end of file
diff --git a/viaforge-mc117/src/main/resources/mixins.viaforge-mc117.json b/viaforge-mc117/src/main/resources/mixins.viaforge-mc117.json
index 6d251b8..3434ecd 100644
--- a/viaforge-mc117/src/main/resources/mixins.viaforge-mc117.json
+++ b/viaforge-mc117/src/main/resources/mixins.viaforge-mc117.json
@@ -5,7 +5,7 @@
"package": "de.florianmichael.viaforge.mixin",
"mixins": [
"MixinConnection",
- "MixinNetworkManager_1",
+ "MixinConnection_1",
"MixinTitleScreen",
"MixinJoinMultiplayerScreen",
"MixinDirectJoinServerScreen"
diff --git a/viaforge-mc117/src/main/resources/pack.mcmeta b/viaforge-mc117/src/main/resources/pack.mcmeta
deleted file mode 100644
index 646ce57..0000000
--- a/viaforge-mc117/src/main/resources/pack.mcmeta
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "pack": {
- "description": "ViaForge",
- "pack_format": 6
- }
-}
diff --git a/viaforge-mc118/build.gradle b/viaforge-mc118/build.gradle
index 601761f..b4265cf 100644
--- a/viaforge-mc118/build.gradle
+++ b/viaforge-mc118/build.gradle
@@ -1,10 +1,7 @@
plugins {
- id "florianmichael.viaforge.base-conventions"
- id "florianmichael.viaforge.forge-conventions"
+ id "viaforge.modern-conventions"
}
-java.toolchain.languageVersion = JavaLanguageVersion.of(17)
-
minecraft {
mappings channel: "official", version: "1.18.2"
}
diff --git a/viaforge-mc118/src/main/java/de/florianmichael/viaforge/ViaForge.java b/viaforge-mc118/src/main/java/de/florianmichael/viaforge/ViaForge.java
deleted file mode 100644
index 2b27f54..0000000
--- a/viaforge-mc118/src/main/java/de/florianmichael/viaforge/ViaForge.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge;
-
-import de.florianmichael.viaforge.protocolhack.ViaForgeVLInjector;
-import de.florianmichael.viaforge.protocolhack.ViaForgeVLLoader;
-import net.minecraftforge.fml.common.Mod;
-import net.raphimc.vialoader.ViaLoader;
-import net.raphimc.vialoader.impl.platform.ViaBackwardsPlatformImpl;
-import net.raphimc.vialoader.impl.platform.ViaRewindPlatformImpl;
-import net.raphimc.vialoader.util.VersionEnum;
-
-@Mod("viaforge")
-public class ViaForge {
- public final static VersionEnum NATIVE_VERSION = VersionEnum.r1_18_2;
-
- public static VersionEnum targetVersion = VersionEnum.r1_18_2;
-
- private static boolean loaded;
-
- public static void initViaVersion() {
- if (loaded) return;
-
- ViaLoader.init(null, new ViaForgeVLLoader(), new ViaForgeVLInjector(), null, ViaBackwardsPlatformImpl::new, ViaRewindPlatformImpl::new);
- loaded = true;
- }
-}
diff --git a/viaforge-mc118/src/main/java/de/florianmichael/viaforge/ViaForge118.java b/viaforge-mc118/src/main/java/de/florianmichael/viaforge/ViaForge118.java
new file mode 100644
index 0000000..b828b61
--- /dev/null
+++ b/viaforge-mc118/src/main/java/de/florianmichael/viaforge/ViaForge118.java
@@ -0,0 +1,41 @@
+/*
+ * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
+ * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package de.florianmichael.viaforge;
+
+import de.florianmichael.viaforge.common.PlatformFields;
+import net.minecraft.SharedConstants;
+import net.minecraft.client.Minecraft;
+import net.minecraftforge.fml.common.Mod;
+
+import java.util.function.Supplier;
+
+@Mod("viaforge")
+public class ViaForge118 implements PlatformFields {
+
+ public final static ViaForge118 PLATFORM = new ViaForge118();
+
+ @Override
+ public int getGameVersion() {
+ return SharedConstants.getProtocolVersion();
+ }
+
+ @Override
+ public Supplier isSingleplayer() {
+ return () -> Minecraft.getInstance().hasSingleplayerServer();
+ }
+}
diff --git a/viaforge-mc118/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java b/viaforge-mc118/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java
index 1aeb6d5..f2b6eca 100644
--- a/viaforge-mc118/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java
+++ b/viaforge-mc118/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java
@@ -18,7 +18,8 @@
package de.florianmichael.viaforge.gui;
import com.mojang.blaze3d.vertex.PoseStack;
-import de.florianmichael.viaforge.ViaForge;
+import de.florianmichael.viaforge.ViaForge118;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import net.minecraft.ChatFormatting;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.components.Button;
@@ -88,14 +89,14 @@ public class GuiProtocolSelector extends Screen {
@Override
public boolean mouseClicked(double p_231044_1_, double p_231044_3_, int p_231044_5_) {
- ViaForge.targetVersion = versionEnum;
+ ViaForgeCommon.getManager().setTargetVersion(versionEnum);
return super.mouseClicked(p_231044_1_, p_231044_3_, p_231044_5_);
}
@Override
public void render(PoseStack p_230432_1_, int p_230432_2_, int p_230432_3_, int p_230432_4_, int p_230432_5_, int p_230432_6_, int p_230432_7_, int p_230432_8_, boolean p_230432_9_, float p_230432_10_) {
drawCenteredString(p_230432_1_, Minecraft.getInstance().font,
- (ViaForge.targetVersion.getVersion() == versionEnum.getVersion() ? ChatFormatting.GREEN.toString() : ChatFormatting.DARK_RED.toString()) + versionEnum.getName(), width / 2, p_230432_3_, -1);
+ (ViaForgeCommon.getManager().getTargetVersion() == versionEnum ? ChatFormatting.GREEN.toString() : ChatFormatting.DARK_RED.toString()) + versionEnum.getName(), width / 2, p_230432_3_, -1);
}
@Override
diff --git a/viaforge-mc118/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection.java b/viaforge-mc118/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection.java
index 0b96b18..ca933b2 100644
--- a/viaforge-mc118/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection.java
+++ b/viaforge-mc118/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection.java
@@ -17,6 +17,7 @@
*/
package de.florianmichael.viaforge.mixin;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import io.netty.channel.Channel;
import net.minecraft.network.Connection;
import net.raphimc.vialoader.netty.CompressionReorderEvent;
@@ -33,6 +34,6 @@ public class MixinConnection {
@Inject(method = "setupCompression", at = @At("RETURN"))
public void reorderPipeline(int p_129485_, boolean p_182682_, CallbackInfo ci) {
- channel.pipeline().fireUserEventTriggered(CompressionReorderEvent.INSTANCE);
+ ViaForgeCommon.getManager().reorderCompression(channel);
}
}
diff --git a/viaforge-mc119/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_1.java b/viaforge-mc118/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection_1.java
similarity index 64%
rename from viaforge-mc119/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_1.java
rename to viaforge-mc118/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection_1.java
index 73d505f..9988dd8 100644
--- a/viaforge-mc119/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_1.java
+++ b/viaforge-mc118/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection_1.java
@@ -17,28 +17,18 @@
*/
package de.florianmichael.viaforge.mixin;
-import com.viaversion.viaversion.api.connection.UserConnection;
-import com.viaversion.viaversion.connection.UserConnectionImpl;
-import com.viaversion.viaversion.protocol.ProtocolPipelineImpl;
-import de.florianmichael.viaforge.ViaForge;
-import de.florianmichael.viaforge.protocolhack.ViaForgeVLLegacyPipeline;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import io.netty.channel.Channel;
-import io.netty.channel.socket.SocketChannel;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(targets = "net.minecraft.network.Connection$1", remap = false)
-public class MixinNetworkManager_1 {
+public class MixinConnection_1 {
@Inject(method = "initChannel", at = @At(value = "TAIL"), remap = false)
private void onInitChannel(Channel channel, CallbackInfo ci) {
- if (channel instanceof SocketChannel && ViaForge.targetVersion != ViaForge.NATIVE_VERSION) {
- final UserConnection user = new UserConnectionImpl(channel, true);
- new ProtocolPipelineImpl(user);
-
- channel.pipeline().addLast(new ViaForgeVLLegacyPipeline(user, ViaForge.targetVersion));
- }
+ ViaForgeCommon.getManager().inject(channel);
}
}
diff --git a/viaforge-mc118/src/main/java/de/florianmichael/viaforge/mixin/MixinDirectJoinServerScreen.java b/viaforge-mc118/src/main/java/de/florianmichael/viaforge/mixin/MixinDirectJoinServerScreen.java
index 68758ec..637f290 100644
--- a/viaforge-mc118/src/main/java/de/florianmichael/viaforge/mixin/MixinDirectJoinServerScreen.java
+++ b/viaforge-mc118/src/main/java/de/florianmichael/viaforge/mixin/MixinDirectJoinServerScreen.java
@@ -17,7 +17,7 @@
*/
package de.florianmichael.viaforge.mixin;
-import de.florianmichael.viaforge.ViaForge;
+import de.florianmichael.viaforge.ViaForge118;
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.screens.DirectJoinServerScreen;
@@ -39,7 +39,5 @@ public class MixinDirectJoinServerScreen extends Screen {
@Inject(method = "init", at = @At("RETURN"))
public void hookViaForgeButton(CallbackInfo ci) {
addRenderableWidget(new Button(5, 6, 98, 20, new TextComponent("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))));
-
- ViaForge.initViaVersion();
}
}
diff --git a/viaforge-mc118/src/main/java/de/florianmichael/viaforge/mixin/MixinJoinMultiplayerScreen.java b/viaforge-mc118/src/main/java/de/florianmichael/viaforge/mixin/MixinJoinMultiplayerScreen.java
index 55a9158..85363da 100644
--- a/viaforge-mc118/src/main/java/de/florianmichael/viaforge/mixin/MixinJoinMultiplayerScreen.java
+++ b/viaforge-mc118/src/main/java/de/florianmichael/viaforge/mixin/MixinJoinMultiplayerScreen.java
@@ -17,7 +17,7 @@
*/
package de.florianmichael.viaforge.mixin;
-import de.florianmichael.viaforge.ViaForge;
+import de.florianmichael.viaforge.ViaForge118;
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.screens.Screen;
@@ -39,7 +39,5 @@ public class MixinJoinMultiplayerScreen extends Screen {
@Inject(method = "init", at = @At("RETURN"))
public void hookViaForgeButton(CallbackInfo ci) {
addRenderableWidget(new Button(5, 6, 98, 20, new TextComponent("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))));
-
- ViaForge.initViaVersion();
}
}
diff --git a/viaforge-mc118/src/main/java/de/florianmichael/viaforge/mixin/MixinTitleScreen.java b/viaforge-mc118/src/main/java/de/florianmichael/viaforge/mixin/MixinTitleScreen.java
index 7c7ed7e..686720f 100644
--- a/viaforge-mc118/src/main/java/de/florianmichael/viaforge/mixin/MixinTitleScreen.java
+++ b/viaforge-mc118/src/main/java/de/florianmichael/viaforge/mixin/MixinTitleScreen.java
@@ -17,7 +17,8 @@
*/
package de.florianmichael.viaforge.mixin;
-import de.florianmichael.viaforge.ViaForge;
+import de.florianmichael.viaforge.ViaForge118;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.screens.Screen;
@@ -40,6 +41,6 @@ public class MixinTitleScreen extends Screen {
public void hookViaForgeButton(CallbackInfo ci) {
addRenderableWidget(new Button(5, 6, 98, 20, new TextComponent("ViaForge"), b -> GuiProtocolSelector.open(minecraft)));
- ViaForge.initViaVersion();
+ ViaForgeCommon.init(ViaForge118.PLATFORM);
}
}
diff --git a/viaforge-mc118/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java b/viaforge-mc118/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java
deleted file mode 100644
index 5a30719..0000000
--- a/viaforge-mc118/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge.protocolhack;
-
-import net.raphimc.vialoader.impl.viaversion.VLInjector;
-import net.raphimc.vialoader.netty.VLLegacyPipeline;
-
-public class ViaForgeVLInjector extends VLInjector {
-
- @Override
- public String getDecoderName() {
- return VLLegacyPipeline.VIA_DECODER_NAME;
- }
-
- @Override
- public String getEncoderName() {
- return VLLegacyPipeline.VIA_ENCODER_NAME;
- }
-}
diff --git a/viaforge-mc118/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java b/viaforge-mc118/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java
deleted file mode 100644
index 37da249..0000000
--- a/viaforge-mc118/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge.protocolhack;
-
-import com.viaversion.viaversion.api.connection.UserConnection;
-import net.raphimc.vialoader.netty.VLLegacyPipeline;
-import net.raphimc.vialoader.util.VersionEnum;
-
-public class ViaForgeVLLegacyPipeline extends VLLegacyPipeline {
-
- public ViaForgeVLLegacyPipeline(UserConnection user, VersionEnum version) {
- super(user, version);
- }
-
- @Override
- protected String decompressName() {
- return "decompress";
- }
-
- @Override
- protected String compressName() {
- return "compress";
- }
-
- @Override
- protected String packetDecoderName() {
- return "decoder";
- }
-
- @Override
- protected String packetEncoderName() {
- return "encoder";
- }
-
- @Override
- protected String lengthSplitterName() {
- return "splitter";
- }
-
- @Override
- protected String lengthPrependerName() {
- return "prepender";
- }
-}
diff --git a/viaforge-mc118/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java b/viaforge-mc118/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java
deleted file mode 100644
index 2158ad3..0000000
--- a/viaforge-mc118/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge.protocolhack;
-
-import com.viaversion.viaversion.api.Via;
-import com.viaversion.viaversion.api.connection.UserConnection;
-import com.viaversion.viaversion.api.protocol.version.VersionProvider;
-import com.viaversion.viaversion.protocols.base.BaseVersionProvider;
-import de.florianmichael.viaforge.ViaForge;
-import net.minecraft.client.Minecraft;
-import net.raphimc.vialoader.impl.viaversion.VLLoader;
-
-public class ViaForgeVLLoader extends VLLoader {
-
- @Override
- public void load() {
- super.load();
-
- Via.getManager().getProviders().use(VersionProvider.class, new BaseVersionProvider() {
- @Override
- public int getClosestServerProtocol(UserConnection connection) throws Exception {
- if (connection.isClientSide() && !Minecraft.getInstance().hasSingleplayerServer()) {
- return ViaForge.targetVersion.getVersion();
- }
-
- return super.getClosestServerProtocol(connection);
- }
- });
- }
-}
diff --git a/viaforge-mc118/src/main/resources/META-INF/mods.toml b/viaforge-mc118/src/main/resources/META-INF/mods.toml
deleted file mode 100644
index b5beba3..0000000
--- a/viaforge-mc118/src/main/resources/META-INF/mods.toml
+++ /dev/null
@@ -1,17 +0,0 @@
-modLoader="javafml"
-loaderVersion="[1,)"
-
-license="GPL-3.0 license"
-issueTrackerURL="https://github.com/ViaVersion/ViaForge/issues"
-showAsResourcePack=false
-
-[[mods]]
-modId="viaforge"
-version="${version}"
-displayName="ViaForge"
-displayURL="https://github.com/FlorianMichael"
-credits="FlorianMichael/EnZaXD and all ViaVersion/ViaForge contributors"
-authors="FlorianMichael/EnZaXD"
-description='''
- Client-side Implementation of ViaVersion, ViaBackwards and ViaRewind for Legacy Minecraft Forge
- '''
\ No newline at end of file
diff --git a/viaforge-mc118/src/main/resources/mixins.viaforge-mc118.json b/viaforge-mc118/src/main/resources/mixins.viaforge-mc118.json
index c63f167..784a78c 100644
--- a/viaforge-mc118/src/main/resources/mixins.viaforge-mc118.json
+++ b/viaforge-mc118/src/main/resources/mixins.viaforge-mc118.json
@@ -5,7 +5,7 @@
"package": "de.florianmichael.viaforge.mixin",
"mixins": [
"MixinConnection",
- "MixinNetworkManager_1",
+ "MixinConnection_1",
"MixinTitleScreen",
"MixinJoinMultiplayerScreen",
"MixinDirectJoinServerScreen"
diff --git a/viaforge-mc118/src/main/resources/pack.mcmeta b/viaforge-mc118/src/main/resources/pack.mcmeta
deleted file mode 100644
index 646ce57..0000000
--- a/viaforge-mc118/src/main/resources/pack.mcmeta
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "pack": {
- "description": "ViaForge",
- "pack_format": 6
- }
-}
diff --git a/viaforge-mc119/build.gradle b/viaforge-mc119/build.gradle
index b636be6..8728924 100644
--- a/viaforge-mc119/build.gradle
+++ b/viaforge-mc119/build.gradle
@@ -1,10 +1,7 @@
plugins {
- id "florianmichael.viaforge.base-conventions"
- id "florianmichael.viaforge.forge-conventions"
+ id "viaforge.modern-conventions"
}
-java.toolchain.languageVersion = JavaLanguageVersion.of(17)
-
minecraft {
mappings channel: "official", version: "1.19.4"
}
diff --git a/viaforge-mc119/src/main/java/de/florianmichael/viaforge/ViaForge.java b/viaforge-mc119/src/main/java/de/florianmichael/viaforge/ViaForge.java
deleted file mode 100644
index a69d0e2..0000000
--- a/viaforge-mc119/src/main/java/de/florianmichael/viaforge/ViaForge.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge;
-
-import de.florianmichael.viaforge.protocolhack.ViaForgeVLInjector;
-import de.florianmichael.viaforge.protocolhack.ViaForgeVLLoader;
-import net.minecraftforge.fml.common.Mod;
-import net.raphimc.vialoader.ViaLoader;
-import net.raphimc.vialoader.impl.platform.ViaBackwardsPlatformImpl;
-import net.raphimc.vialoader.impl.platform.ViaRewindPlatformImpl;
-import net.raphimc.vialoader.util.VersionEnum;
-
-@Mod("viaforge")
-public class ViaForge {
- public final static VersionEnum NATIVE_VERSION = VersionEnum.r1_19_4;
-
- public static VersionEnum targetVersion = VersionEnum.r1_19_4;
-
- private static boolean loaded;
-
- public static void initViaVersion() {
- if (loaded) return;
-
- ViaLoader.init(null, new ViaForgeVLLoader(), new ViaForgeVLInjector(), null, ViaBackwardsPlatformImpl::new, ViaRewindPlatformImpl::new);
- loaded = true;
- }
-}
diff --git a/viaforge-mc112/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java b/viaforge-mc119/src/main/java/de/florianmichael/viaforge/ViaForge119.java
similarity index 59%
rename from viaforge-mc112/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java
rename to viaforge-mc119/src/main/java/de/florianmichael/viaforge/ViaForge119.java
index 5a30719..95dd3bf 100644
--- a/viaforge-mc112/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java
+++ b/viaforge-mc119/src/main/java/de/florianmichael/viaforge/ViaForge119.java
@@ -15,20 +15,27 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package de.florianmichael.viaforge.protocolhack;
+package de.florianmichael.viaforge;
-import net.raphimc.vialoader.impl.viaversion.VLInjector;
-import net.raphimc.vialoader.netty.VLLegacyPipeline;
+import de.florianmichael.viaforge.common.PlatformFields;
+import net.minecraft.SharedConstants;
+import net.minecraft.client.Minecraft;
+import net.minecraftforge.fml.common.Mod;
-public class ViaForgeVLInjector extends VLInjector {
+import java.util.function.Supplier;
+
+@Mod("viaforge")
+public class ViaForge119 implements PlatformFields {
+
+ public final static ViaForge119 PLATFORM = new ViaForge119();
@Override
- public String getDecoderName() {
- return VLLegacyPipeline.VIA_DECODER_NAME;
+ public int getGameVersion() {
+ return SharedConstants.getProtocolVersion();
}
@Override
- public String getEncoderName() {
- return VLLegacyPipeline.VIA_ENCODER_NAME;
+ public Supplier isSingleplayer() {
+ return () -> Minecraft.getInstance().isSingleplayer();
}
}
diff --git a/viaforge-mc119/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java b/viaforge-mc119/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java
index c68ba92..c83377f 100644
--- a/viaforge-mc119/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java
+++ b/viaforge-mc119/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java
@@ -18,7 +18,8 @@
package de.florianmichael.viaforge.gui;
import com.mojang.blaze3d.vertex.PoseStack;
-import de.florianmichael.viaforge.ViaForge;
+import de.florianmichael.viaforge.ViaForge119;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import net.minecraft.ChatFormatting;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.components.Button;
@@ -87,14 +88,14 @@ public class GuiProtocolSelector extends Screen {
@Override
public boolean mouseClicked(double p_231044_1_, double p_231044_3_, int p_231044_5_) {
- ViaForge.targetVersion = versionEnum;
+ ViaForgeCommon.getManager().setTargetVersion(versionEnum);
return super.mouseClicked(p_231044_1_, p_231044_3_, p_231044_5_);
}
@Override
public void render(PoseStack p_230432_1_, int p_230432_2_, int p_230432_3_, int p_230432_4_, int p_230432_5_, int p_230432_6_, int p_230432_7_, int p_230432_8_, boolean p_230432_9_, float p_230432_10_) {
drawCenteredString(p_230432_1_, Minecraft.getInstance().font,
- (ViaForge.targetVersion.getVersion() == versionEnum.getVersion() ? ChatFormatting.GREEN.toString() : ChatFormatting.DARK_RED.toString()) + versionEnum.getName(), width / 2, p_230432_3_, -1);
+ (ViaForgeCommon.getManager().getTargetVersion() == versionEnum ? ChatFormatting.GREEN.toString() : ChatFormatting.DARK_RED.toString()) + versionEnum.getName(), width / 2, p_230432_3_, -1);
}
@Override
diff --git a/viaforge-mc119/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection.java b/viaforge-mc119/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection.java
index 0b96b18..ca933b2 100644
--- a/viaforge-mc119/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection.java
+++ b/viaforge-mc119/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection.java
@@ -17,6 +17,7 @@
*/
package de.florianmichael.viaforge.mixin;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import io.netty.channel.Channel;
import net.minecraft.network.Connection;
import net.raphimc.vialoader.netty.CompressionReorderEvent;
@@ -33,6 +34,6 @@ public class MixinConnection {
@Inject(method = "setupCompression", at = @At("RETURN"))
public void reorderPipeline(int p_129485_, boolean p_182682_, CallbackInfo ci) {
- channel.pipeline().fireUserEventTriggered(CompressionReorderEvent.INSTANCE);
+ ViaForgeCommon.getManager().reorderCompression(channel);
}
}
diff --git a/viaforge-mc120/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_1.java b/viaforge-mc119/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection_1.java
similarity index 64%
rename from viaforge-mc120/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_1.java
rename to viaforge-mc119/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection_1.java
index 73d505f..9988dd8 100644
--- a/viaforge-mc120/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_1.java
+++ b/viaforge-mc119/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection_1.java
@@ -17,28 +17,18 @@
*/
package de.florianmichael.viaforge.mixin;
-import com.viaversion.viaversion.api.connection.UserConnection;
-import com.viaversion.viaversion.connection.UserConnectionImpl;
-import com.viaversion.viaversion.protocol.ProtocolPipelineImpl;
-import de.florianmichael.viaforge.ViaForge;
-import de.florianmichael.viaforge.protocolhack.ViaForgeVLLegacyPipeline;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import io.netty.channel.Channel;
-import io.netty.channel.socket.SocketChannel;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(targets = "net.minecraft.network.Connection$1", remap = false)
-public class MixinNetworkManager_1 {
+public class MixinConnection_1 {
@Inject(method = "initChannel", at = @At(value = "TAIL"), remap = false)
private void onInitChannel(Channel channel, CallbackInfo ci) {
- if (channel instanceof SocketChannel && ViaForge.targetVersion != ViaForge.NATIVE_VERSION) {
- final UserConnection user = new UserConnectionImpl(channel, true);
- new ProtocolPipelineImpl(user);
-
- channel.pipeline().addLast(new ViaForgeVLLegacyPipeline(user, ViaForge.targetVersion));
- }
+ ViaForgeCommon.getManager().inject(channel);
}
}
diff --git a/viaforge-mc119/src/main/java/de/florianmichael/viaforge/mixin/MixinDirectJoinServerScreen.java b/viaforge-mc119/src/main/java/de/florianmichael/viaforge/mixin/MixinDirectJoinServerScreen.java
index 12d4c01..b6d0e1d 100644
--- a/viaforge-mc119/src/main/java/de/florianmichael/viaforge/mixin/MixinDirectJoinServerScreen.java
+++ b/viaforge-mc119/src/main/java/de/florianmichael/viaforge/mixin/MixinDirectJoinServerScreen.java
@@ -17,7 +17,7 @@
*/
package de.florianmichael.viaforge.mixin;
-import de.florianmichael.viaforge.ViaForge;
+import de.florianmichael.viaforge.ViaForge119;
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.screens.DirectJoinServerScreen;
@@ -38,7 +38,5 @@ public class MixinDirectJoinServerScreen extends Screen {
@Inject(method = "init", at = @At("RETURN"))
public void hookViaForgeButton(CallbackInfo ci) {
addRenderableWidget(new Button.Builder(Component.literal("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))).bounds(5, 6, 98, 20).build());
-
- ViaForge.initViaVersion();
}
}
diff --git a/viaforge-mc119/src/main/java/de/florianmichael/viaforge/mixin/MixinJoinMultiplayerScreen.java b/viaforge-mc119/src/main/java/de/florianmichael/viaforge/mixin/MixinJoinMultiplayerScreen.java
index 8b0a6dc..3a1c7a3 100644
--- a/viaforge-mc119/src/main/java/de/florianmichael/viaforge/mixin/MixinJoinMultiplayerScreen.java
+++ b/viaforge-mc119/src/main/java/de/florianmichael/viaforge/mixin/MixinJoinMultiplayerScreen.java
@@ -17,7 +17,7 @@
*/
package de.florianmichael.viaforge.mixin;
-import de.florianmichael.viaforge.ViaForge;
+import de.florianmichael.viaforge.ViaForge119;
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.screens.Screen;
@@ -38,7 +38,5 @@ public class MixinJoinMultiplayerScreen extends Screen {
@Inject(method = "init", at = @At("RETURN"))
public void hookViaForgeButton(CallbackInfo ci) {
addRenderableWidget(new Button.Builder(Component.literal("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))).bounds(5, 6, 98, 20).build());
-
- ViaForge.initViaVersion();
}
}
diff --git a/viaforge-mc119/src/main/java/de/florianmichael/viaforge/mixin/MixinTitleScreen.java b/viaforge-mc119/src/main/java/de/florianmichael/viaforge/mixin/MixinTitleScreen.java
index 9fc048d..a929c3c 100644
--- a/viaforge-mc119/src/main/java/de/florianmichael/viaforge/mixin/MixinTitleScreen.java
+++ b/viaforge-mc119/src/main/java/de/florianmichael/viaforge/mixin/MixinTitleScreen.java
@@ -17,7 +17,8 @@
*/
package de.florianmichael.viaforge.mixin;
-import de.florianmichael.viaforge.ViaForge;
+import de.florianmichael.viaforge.ViaForge119;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.screens.Screen;
@@ -39,6 +40,6 @@ public class MixinTitleScreen extends Screen {
public void hookViaForgeButton(CallbackInfo ci) {
addRenderableWidget(new Button.Builder(Component.literal("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))).bounds(5, 6, 98, 20).build());
- ViaForge.initViaVersion();
+ ViaForgeCommon.init(ViaForge119.PLATFORM);
}
}
diff --git a/viaforge-mc119/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java b/viaforge-mc119/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java
deleted file mode 100644
index 5a30719..0000000
--- a/viaforge-mc119/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge.protocolhack;
-
-import net.raphimc.vialoader.impl.viaversion.VLInjector;
-import net.raphimc.vialoader.netty.VLLegacyPipeline;
-
-public class ViaForgeVLInjector extends VLInjector {
-
- @Override
- public String getDecoderName() {
- return VLLegacyPipeline.VIA_DECODER_NAME;
- }
-
- @Override
- public String getEncoderName() {
- return VLLegacyPipeline.VIA_ENCODER_NAME;
- }
-}
diff --git a/viaforge-mc119/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java b/viaforge-mc119/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java
deleted file mode 100644
index 37da249..0000000
--- a/viaforge-mc119/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge.protocolhack;
-
-import com.viaversion.viaversion.api.connection.UserConnection;
-import net.raphimc.vialoader.netty.VLLegacyPipeline;
-import net.raphimc.vialoader.util.VersionEnum;
-
-public class ViaForgeVLLegacyPipeline extends VLLegacyPipeline {
-
- public ViaForgeVLLegacyPipeline(UserConnection user, VersionEnum version) {
- super(user, version);
- }
-
- @Override
- protected String decompressName() {
- return "decompress";
- }
-
- @Override
- protected String compressName() {
- return "compress";
- }
-
- @Override
- protected String packetDecoderName() {
- return "decoder";
- }
-
- @Override
- protected String packetEncoderName() {
- return "encoder";
- }
-
- @Override
- protected String lengthSplitterName() {
- return "splitter";
- }
-
- @Override
- protected String lengthPrependerName() {
- return "prepender";
- }
-}
diff --git a/viaforge-mc119/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java b/viaforge-mc119/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java
deleted file mode 100644
index 2158ad3..0000000
--- a/viaforge-mc119/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge.protocolhack;
-
-import com.viaversion.viaversion.api.Via;
-import com.viaversion.viaversion.api.connection.UserConnection;
-import com.viaversion.viaversion.api.protocol.version.VersionProvider;
-import com.viaversion.viaversion.protocols.base.BaseVersionProvider;
-import de.florianmichael.viaforge.ViaForge;
-import net.minecraft.client.Minecraft;
-import net.raphimc.vialoader.impl.viaversion.VLLoader;
-
-public class ViaForgeVLLoader extends VLLoader {
-
- @Override
- public void load() {
- super.load();
-
- Via.getManager().getProviders().use(VersionProvider.class, new BaseVersionProvider() {
- @Override
- public int getClosestServerProtocol(UserConnection connection) throws Exception {
- if (connection.isClientSide() && !Minecraft.getInstance().hasSingleplayerServer()) {
- return ViaForge.targetVersion.getVersion();
- }
-
- return super.getClosestServerProtocol(connection);
- }
- });
- }
-}
diff --git a/viaforge-mc119/src/main/resources/META-INF/mods.toml b/viaforge-mc119/src/main/resources/META-INF/mods.toml
deleted file mode 100644
index b5beba3..0000000
--- a/viaforge-mc119/src/main/resources/META-INF/mods.toml
+++ /dev/null
@@ -1,17 +0,0 @@
-modLoader="javafml"
-loaderVersion="[1,)"
-
-license="GPL-3.0 license"
-issueTrackerURL="https://github.com/ViaVersion/ViaForge/issues"
-showAsResourcePack=false
-
-[[mods]]
-modId="viaforge"
-version="${version}"
-displayName="ViaForge"
-displayURL="https://github.com/FlorianMichael"
-credits="FlorianMichael/EnZaXD and all ViaVersion/ViaForge contributors"
-authors="FlorianMichael/EnZaXD"
-description='''
- Client-side Implementation of ViaVersion, ViaBackwards and ViaRewind for Legacy Minecraft Forge
- '''
\ No newline at end of file
diff --git a/viaforge-mc119/src/main/resources/mixins.viaforge-mc119.json b/viaforge-mc119/src/main/resources/mixins.viaforge-mc119.json
index 0f54953..2e4b244 100644
--- a/viaforge-mc119/src/main/resources/mixins.viaforge-mc119.json
+++ b/viaforge-mc119/src/main/resources/mixins.viaforge-mc119.json
@@ -5,7 +5,7 @@
"package": "de.florianmichael.viaforge.mixin",
"mixins": [
"MixinConnection",
- "MixinNetworkManager_1",
+ "MixinConnection_1",
"MixinTitleScreen",
"MixinJoinMultiplayerScreen",
"MixinDirectJoinServerScreen"
diff --git a/viaforge-mc119/src/main/resources/pack.mcmeta b/viaforge-mc119/src/main/resources/pack.mcmeta
deleted file mode 100644
index 646ce57..0000000
--- a/viaforge-mc119/src/main/resources/pack.mcmeta
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "pack": {
- "description": "ViaForge",
- "pack_format": 6
- }
-}
diff --git a/viaforge-mc120/build.gradle b/viaforge-mc120/build.gradle
index fab1902..aee776b 100644
--- a/viaforge-mc120/build.gradle
+++ b/viaforge-mc120/build.gradle
@@ -1,10 +1,7 @@
plugins {
- id "florianmichael.viaforge.base-conventions"
- id "florianmichael.viaforge.forge-conventions"
+ id "viaforge.modern-conventions"
}
-java.toolchain.languageVersion = JavaLanguageVersion.of(17)
-
minecraft {
mappings channel: "official", version: "1.20.2"
}
diff --git a/viaforge-mc120/src/main/java/de/florianmichael/viaforge/ViaForge.java b/viaforge-mc120/src/main/java/de/florianmichael/viaforge/ViaForge.java
deleted file mode 100644
index 103817b..0000000
--- a/viaforge-mc120/src/main/java/de/florianmichael/viaforge/ViaForge.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge;
-
-import de.florianmichael.viaforge.protocolhack.ViaForgeVLInjector;
-import de.florianmichael.viaforge.protocolhack.ViaForgeVLLoader;
-import net.minecraftforge.fml.common.Mod;
-import net.raphimc.vialoader.ViaLoader;
-import net.raphimc.vialoader.impl.platform.ViaBackwardsPlatformImpl;
-import net.raphimc.vialoader.impl.platform.ViaRewindPlatformImpl;
-import net.raphimc.vialoader.util.VersionEnum;
-
-@Mod("viaforge")
-public class ViaForge {
- public final static VersionEnum NATIVE_VERSION = VersionEnum.r1_20_2;
-
- public static VersionEnum targetVersion = VersionEnum.r1_20_2;
-
- private static boolean loaded;
-
- public static void initViaVersion() {
- if (loaded) return;
-
- ViaLoader.init(null, new ViaForgeVLLoader(), new ViaForgeVLInjector(), null, ViaBackwardsPlatformImpl::new, ViaRewindPlatformImpl::new);
- loaded = true;
- }
-}
diff --git a/viaforge-mc120/src/main/java/de/florianmichael/viaforge/ViaForge120.java b/viaforge-mc120/src/main/java/de/florianmichael/viaforge/ViaForge120.java
new file mode 100644
index 0000000..8caa4cf
--- /dev/null
+++ b/viaforge-mc120/src/main/java/de/florianmichael/viaforge/ViaForge120.java
@@ -0,0 +1,41 @@
+/*
+ * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
+ * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package de.florianmichael.viaforge;
+
+import de.florianmichael.viaforge.common.PlatformFields;
+import net.minecraft.SharedConstants;
+import net.minecraft.client.Minecraft;
+import net.minecraftforge.fml.common.Mod;
+
+import java.util.function.Supplier;
+
+@Mod("viaforge")
+public class ViaForge120 implements PlatformFields {
+
+ public final static ViaForge120 PLATFORM = new ViaForge120();
+
+ @Override
+ public int getGameVersion() {
+ return SharedConstants.getProtocolVersion();
+ }
+
+ @Override
+ public Supplier isSingleplayer() {
+ return () -> Minecraft.getInstance().isSingleplayer();
+ }
+}
diff --git a/viaforge-mc120/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java b/viaforge-mc120/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java
index 2932c8d..87be5b4 100644
--- a/viaforge-mc120/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java
+++ b/viaforge-mc120/src/main/java/de/florianmichael/viaforge/gui/GuiProtocolSelector.java
@@ -17,7 +17,7 @@
*/
package de.florianmichael.viaforge.gui;
-import de.florianmichael.viaforge.ViaForge;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import net.minecraft.ChatFormatting;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiGraphics;
@@ -86,14 +86,14 @@ public class GuiProtocolSelector extends Screen {
@Override
public boolean mouseClicked(double p_231044_1_, double p_231044_3_, int p_231044_5_) {
- ViaForge.targetVersion = versionEnum;
+ ViaForgeCommon.getManager().setTargetVersion(versionEnum);
return super.mouseClicked(p_231044_1_, p_231044_3_, p_231044_5_);
}
@Override
public void render(GuiGraphics p_230432_1_, int p_230432_2_, int p_230432_3_, int p_230432_4_, int p_230432_5_, int p_230432_6_, int p_230432_7_, int p_230432_8_, boolean p_230432_9_, float p_230432_10_) {
p_230432_1_.drawCenteredString(Minecraft.getInstance().font,
- (ViaForge.targetVersion.getVersion() == versionEnum.getVersion() ? ChatFormatting.GREEN.toString() : ChatFormatting.DARK_RED.toString()) + versionEnum.getName(), width / 2, p_230432_3_, -1);
+ (ViaForgeCommon.getManager().getTargetVersion() == versionEnum ? ChatFormatting.GREEN.toString() : ChatFormatting.DARK_RED.toString()) + versionEnum.getName(), width / 2, p_230432_3_, -1);
}
@Override
diff --git a/viaforge-mc120/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection.java b/viaforge-mc120/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection.java
index 0b96b18..ca933b2 100644
--- a/viaforge-mc120/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection.java
+++ b/viaforge-mc120/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection.java
@@ -17,6 +17,7 @@
*/
package de.florianmichael.viaforge.mixin;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import io.netty.channel.Channel;
import net.minecraft.network.Connection;
import net.raphimc.vialoader.netty.CompressionReorderEvent;
@@ -33,6 +34,6 @@ public class MixinConnection {
@Inject(method = "setupCompression", at = @At("RETURN"))
public void reorderPipeline(int p_129485_, boolean p_182682_, CallbackInfo ci) {
- channel.pipeline().fireUserEventTriggered(CompressionReorderEvent.INSTANCE);
+ ViaForgeCommon.getManager().reorderCompression(channel);
}
}
diff --git a/viaforge-mc117/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_1.java b/viaforge-mc120/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection_1.java
similarity index 64%
rename from viaforge-mc117/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_1.java
rename to viaforge-mc120/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection_1.java
index 73d505f..9988dd8 100644
--- a/viaforge-mc117/src/main/java/de/florianmichael/viaforge/mixin/MixinNetworkManager_1.java
+++ b/viaforge-mc120/src/main/java/de/florianmichael/viaforge/mixin/MixinConnection_1.java
@@ -17,28 +17,18 @@
*/
package de.florianmichael.viaforge.mixin;
-import com.viaversion.viaversion.api.connection.UserConnection;
-import com.viaversion.viaversion.connection.UserConnectionImpl;
-import com.viaversion.viaversion.protocol.ProtocolPipelineImpl;
-import de.florianmichael.viaforge.ViaForge;
-import de.florianmichael.viaforge.protocolhack.ViaForgeVLLegacyPipeline;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import io.netty.channel.Channel;
-import io.netty.channel.socket.SocketChannel;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(targets = "net.minecraft.network.Connection$1", remap = false)
-public class MixinNetworkManager_1 {
+public class MixinConnection_1 {
@Inject(method = "initChannel", at = @At(value = "TAIL"), remap = false)
private void onInitChannel(Channel channel, CallbackInfo ci) {
- if (channel instanceof SocketChannel && ViaForge.targetVersion != ViaForge.NATIVE_VERSION) {
- final UserConnection user = new UserConnectionImpl(channel, true);
- new ProtocolPipelineImpl(user);
-
- channel.pipeline().addLast(new ViaForgeVLLegacyPipeline(user, ViaForge.targetVersion));
- }
+ ViaForgeCommon.getManager().inject(channel);
}
}
diff --git a/viaforge-mc120/src/main/java/de/florianmichael/viaforge/mixin/MixinDirectJoinServerScreen.java b/viaforge-mc120/src/main/java/de/florianmichael/viaforge/mixin/MixinDirectJoinServerScreen.java
index 12d4c01..5ef680a 100644
--- a/viaforge-mc120/src/main/java/de/florianmichael/viaforge/mixin/MixinDirectJoinServerScreen.java
+++ b/viaforge-mc120/src/main/java/de/florianmichael/viaforge/mixin/MixinDirectJoinServerScreen.java
@@ -17,7 +17,7 @@
*/
package de.florianmichael.viaforge.mixin;
-import de.florianmichael.viaforge.ViaForge;
+import de.florianmichael.viaforge.ViaForge120;
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.screens.DirectJoinServerScreen;
@@ -38,7 +38,5 @@ public class MixinDirectJoinServerScreen extends Screen {
@Inject(method = "init", at = @At("RETURN"))
public void hookViaForgeButton(CallbackInfo ci) {
addRenderableWidget(new Button.Builder(Component.literal("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))).bounds(5, 6, 98, 20).build());
-
- ViaForge.initViaVersion();
}
}
diff --git a/viaforge-mc120/src/main/java/de/florianmichael/viaforge/mixin/MixinJoinMultiplayerScreen.java b/viaforge-mc120/src/main/java/de/florianmichael/viaforge/mixin/MixinJoinMultiplayerScreen.java
index 8b0a6dc..3ba722c 100644
--- a/viaforge-mc120/src/main/java/de/florianmichael/viaforge/mixin/MixinJoinMultiplayerScreen.java
+++ b/viaforge-mc120/src/main/java/de/florianmichael/viaforge/mixin/MixinJoinMultiplayerScreen.java
@@ -17,7 +17,7 @@
*/
package de.florianmichael.viaforge.mixin;
-import de.florianmichael.viaforge.ViaForge;
+import de.florianmichael.viaforge.ViaForge120;
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.screens.Screen;
@@ -38,7 +38,5 @@ public class MixinJoinMultiplayerScreen extends Screen {
@Inject(method = "init", at = @At("RETURN"))
public void hookViaForgeButton(CallbackInfo ci) {
addRenderableWidget(new Button.Builder(Component.literal("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))).bounds(5, 6, 98, 20).build());
-
- ViaForge.initViaVersion();
}
}
diff --git a/viaforge-mc120/src/main/java/de/florianmichael/viaforge/mixin/MixinTitleScreen.java b/viaforge-mc120/src/main/java/de/florianmichael/viaforge/mixin/MixinTitleScreen.java
index 9fc048d..f86d8e6 100644
--- a/viaforge-mc120/src/main/java/de/florianmichael/viaforge/mixin/MixinTitleScreen.java
+++ b/viaforge-mc120/src/main/java/de/florianmichael/viaforge/mixin/MixinTitleScreen.java
@@ -17,7 +17,8 @@
*/
package de.florianmichael.viaforge.mixin;
-import de.florianmichael.viaforge.ViaForge;
+import de.florianmichael.viaforge.ViaForge120;
+import de.florianmichael.viaforge.common.ViaForgeCommon;
import de.florianmichael.viaforge.gui.GuiProtocolSelector;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.screens.Screen;
@@ -39,6 +40,6 @@ public class MixinTitleScreen extends Screen {
public void hookViaForgeButton(CallbackInfo ci) {
addRenderableWidget(new Button.Builder(Component.literal("ViaForge"), b -> minecraft.setScreen(new GuiProtocolSelector(this))).bounds(5, 6, 98, 20).build());
- ViaForge.initViaVersion();
+ ViaForgeCommon.init(ViaForge120.PLATFORM);
}
}
diff --git a/viaforge-mc120/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java b/viaforge-mc120/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java
deleted file mode 100644
index 5a30719..0000000
--- a/viaforge-mc120/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLInjector.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge.protocolhack;
-
-import net.raphimc.vialoader.impl.viaversion.VLInjector;
-import net.raphimc.vialoader.netty.VLLegacyPipeline;
-
-public class ViaForgeVLInjector extends VLInjector {
-
- @Override
- public String getDecoderName() {
- return VLLegacyPipeline.VIA_DECODER_NAME;
- }
-
- @Override
- public String getEncoderName() {
- return VLLegacyPipeline.VIA_ENCODER_NAME;
- }
-}
diff --git a/viaforge-mc120/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java b/viaforge-mc120/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java
deleted file mode 100644
index 37da249..0000000
--- a/viaforge-mc120/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLegacyPipeline.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge.protocolhack;
-
-import com.viaversion.viaversion.api.connection.UserConnection;
-import net.raphimc.vialoader.netty.VLLegacyPipeline;
-import net.raphimc.vialoader.util.VersionEnum;
-
-public class ViaForgeVLLegacyPipeline extends VLLegacyPipeline {
-
- public ViaForgeVLLegacyPipeline(UserConnection user, VersionEnum version) {
- super(user, version);
- }
-
- @Override
- protected String decompressName() {
- return "decompress";
- }
-
- @Override
- protected String compressName() {
- return "compress";
- }
-
- @Override
- protected String packetDecoderName() {
- return "decoder";
- }
-
- @Override
- protected String packetEncoderName() {
- return "encoder";
- }
-
- @Override
- protected String lengthSplitterName() {
- return "splitter";
- }
-
- @Override
- protected String lengthPrependerName() {
- return "prepender";
- }
-}
diff --git a/viaforge-mc120/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java b/viaforge-mc120/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java
deleted file mode 100644
index 2158ad3..0000000
--- a/viaforge-mc120/src/main/java/de/florianmichael/viaforge/protocolhack/ViaForgeVLLoader.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * This file is part of ViaForge - https://github.com/FlorianMichael/ViaForge
- * Copyright (C) 2021-2023 FlorianMichael/EnZaXD and contributors
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package de.florianmichael.viaforge.protocolhack;
-
-import com.viaversion.viaversion.api.Via;
-import com.viaversion.viaversion.api.connection.UserConnection;
-import com.viaversion.viaversion.api.protocol.version.VersionProvider;
-import com.viaversion.viaversion.protocols.base.BaseVersionProvider;
-import de.florianmichael.viaforge.ViaForge;
-import net.minecraft.client.Minecraft;
-import net.raphimc.vialoader.impl.viaversion.VLLoader;
-
-public class ViaForgeVLLoader extends VLLoader {
-
- @Override
- public void load() {
- super.load();
-
- Via.getManager().getProviders().use(VersionProvider.class, new BaseVersionProvider() {
- @Override
- public int getClosestServerProtocol(UserConnection connection) throws Exception {
- if (connection.isClientSide() && !Minecraft.getInstance().hasSingleplayerServer()) {
- return ViaForge.targetVersion.getVersion();
- }
-
- return super.getClosestServerProtocol(connection);
- }
- });
- }
-}
diff --git a/viaforge-mc120/src/main/resources/META-INF/mods.toml b/viaforge-mc120/src/main/resources/META-INF/mods.toml
deleted file mode 100644
index b5beba3..0000000
--- a/viaforge-mc120/src/main/resources/META-INF/mods.toml
+++ /dev/null
@@ -1,17 +0,0 @@
-modLoader="javafml"
-loaderVersion="[1,)"
-
-license="GPL-3.0 license"
-issueTrackerURL="https://github.com/ViaVersion/ViaForge/issues"
-showAsResourcePack=false
-
-[[mods]]
-modId="viaforge"
-version="${version}"
-displayName="ViaForge"
-displayURL="https://github.com/FlorianMichael"
-credits="FlorianMichael/EnZaXD and all ViaVersion/ViaForge contributors"
-authors="FlorianMichael/EnZaXD"
-description='''
- Client-side Implementation of ViaVersion, ViaBackwards and ViaRewind for Legacy Minecraft Forge
- '''
\ No newline at end of file
diff --git a/viaforge-mc120/src/main/resources/mixins.viaforge-mc120.json b/viaforge-mc120/src/main/resources/mixins.viaforge-mc120.json
index 35aeca5..7e146fd 100644
--- a/viaforge-mc120/src/main/resources/mixins.viaforge-mc120.json
+++ b/viaforge-mc120/src/main/resources/mixins.viaforge-mc120.json
@@ -5,7 +5,7 @@
"package": "de.florianmichael.viaforge.mixin",
"mixins": [
"MixinConnection",
- "MixinNetworkManager_1",
+ "MixinConnection_1",
"MixinTitleScreen",
"MixinJoinMultiplayerScreen",
"MixinDirectJoinServerScreen"
diff --git a/viaforge-mc120/src/main/resources/pack.mcmeta b/viaforge-mc120/src/main/resources/pack.mcmeta
deleted file mode 100644
index 646ce57..0000000
--- a/viaforge-mc120/src/main/resources/pack.mcmeta
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "pack": {
- "description": "ViaForge",
- "pack_format": 6
- }
-}