From efbb35d945b4c03c936efaa7b3ec33a7f5d2becf Mon Sep 17 00:00:00 2001
From: modmuss50 <modmuss50@gmail.com>
Date: Sun, 20 Nov 2022 14:11:53 +0000
Subject: [PATCH] Only load default language on the server.

(cherry picked from commit f9594cb682b1dfd3bda02d5553b096e9cec81a3c)
---
 fabric-resource-loader-v0/build.gradle                      | 3 ++-
 .../mixin/resource/loader/{ => server}/LanguageMixin.java   | 4 ++--
 .../main/resources/fabric-resource-loader-v0.mixins.json    | 4 +++-
 .../fabric/test/resource/loader/LanguageTestMod.java        | 6 +++---
 .../src/testmod/resources/fabric.mod.json                   | 4 +++-
 5 files changed, 13 insertions(+), 8 deletions(-)
 rename fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/{ => server}/LanguageMixin.java (92%)

diff --git a/fabric-resource-loader-v0/build.gradle b/fabric-resource-loader-v0/build.gradle
index f65ec6e1d..e6c827bfa 100644
--- a/fabric-resource-loader-v0/build.gradle
+++ b/fabric-resource-loader-v0/build.gradle
@@ -7,5 +7,6 @@ loom {
 
 testDependencies(project, [
 	':fabric-lifecycle-events-v1',
-	':fabric-api-base'
+	':fabric-api-base',
+	':fabric-resource-loader-v0'
 ])
diff --git a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/LanguageMixin.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/server/LanguageMixin.java
similarity index 92%
rename from fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/LanguageMixin.java
rename to fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/server/LanguageMixin.java
index c50532ea5..ca443ad69 100644
--- a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/LanguageMixin.java
+++ b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/server/LanguageMixin.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package net.fabricmc.fabric.mixin.resource.loader;
+package net.fabricmc.fabric.mixin.resource.loader.server;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -60,7 +60,7 @@ class LanguageMixin {
 	}
 
 	private static void loadModLanguage(ModContainer container, BiConsumer<String, String> entryConsumer) {
-		Path path = container.findPath("/assets/" + container.getMetadata().getId() + "/lang/" + DEFAULT_LANGUAGE + ".json").orElse(null);
+		Path path = container.findPath("assets/" + container.getMetadata().getId() + "/lang/" + DEFAULT_LANGUAGE + ".json").orElse(null);
 		if (path == null || !Files.isRegularFile(path)) return;
 
 		try (InputStream stream = Files.newInputStream(path)) {
diff --git a/fabric-resource-loader-v0/src/main/resources/fabric-resource-loader-v0.mixins.json b/fabric-resource-loader-v0/src/main/resources/fabric-resource-loader-v0.mixins.json
index d5ea8300d..bfd04ab95 100644
--- a/fabric-resource-loader-v0/src/main/resources/fabric-resource-loader-v0.mixins.json
+++ b/fabric-resource-loader-v0/src/main/resources/fabric-resource-loader-v0.mixins.json
@@ -4,7 +4,6 @@
   "compatibilityLevel": "JAVA_16",
   "mixins": [
     "KeyedResourceReloadListenerMixin",
-    "LanguageMixin",
     "LifecycledResourceManagerImplMixin",
     "MinecraftServerMixin",
     "NamespaceResourceManagerMixin",
@@ -16,6 +15,9 @@
     "SimpleResourceReloadMixin",
     "TestServerMixin"
   ],
+  "server": [
+    "server.LanguageMixin"
+  ],
   "injectors": {
     "defaultRequire": 1
   }
diff --git a/fabric-resource-loader-v0/src/testmod/java/net/fabricmc/fabric/test/resource/loader/LanguageTestMod.java b/fabric-resource-loader-v0/src/testmod/java/net/fabricmc/fabric/test/resource/loader/LanguageTestMod.java
index 33d9394f9..ae13bdfe1 100644
--- a/fabric-resource-loader-v0/src/testmod/java/net/fabricmc/fabric/test/resource/loader/LanguageTestMod.java
+++ b/fabric-resource-loader-v0/src/testmod/java/net/fabricmc/fabric/test/resource/loader/LanguageTestMod.java
@@ -18,11 +18,11 @@ package net.fabricmc.fabric.test.resource.loader;
 
 import net.minecraft.text.Text;
 
-import net.fabricmc.api.ModInitializer;
+import net.fabricmc.api.DedicatedServerModInitializer;
 
-public class LanguageTestMod implements ModInitializer {
+public class LanguageTestMod implements DedicatedServerModInitializer {
 	@Override
-	public void onInitialize() {
+	public void onInitializeServer() {
 		testTranslationLoaded();
 	}
 
diff --git a/fabric-resource-loader-v0/src/testmod/resources/fabric.mod.json b/fabric-resource-loader-v0/src/testmod/resources/fabric.mod.json
index 9b6178338..659a391f8 100644
--- a/fabric-resource-loader-v0/src/testmod/resources/fabric.mod.json
+++ b/fabric-resource-loader-v0/src/testmod/resources/fabric.mod.json
@@ -11,8 +11,10 @@
   "entrypoints": {
     "main": [
       "net.fabricmc.fabric.test.resource.loader.BuiltinResourcePackTestMod",
-      "net.fabricmc.fabric.test.resource.loader.LanguageTestMod",
       "net.fabricmc.fabric.test.resource.loader.ResourceReloadListenerTestMod"
+    ],
+    "server": [
+      "net.fabricmc.fabric.test.resource.loader.LanguageTestMod"
     ]
   }
 }