From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Bud Gidiere Date: Sun, 25 Oct 2020 11:45:38 -0500 Subject: [PATCH] Custom Locale Support All Server Jars Come with a pre-baked, usually English, locale file. This patch allows you to change the locale file by creating a locale.json file in the root directory of your server. Note that while custom locale files are supported by the server no support will be given for non-official Mojang locale files. diff --git a/src/main/java/net/minecraft/server/LocaleLanguage.java b/src/main/java/net/minecraft/server/LocaleLanguage.java index 29d55483510d3644a1edd3a01d7314232c358ac6..9909dd07d47ec86b71b74f66ab0e252de3441e23 100644 --- a/src/main/java/net/minecraft/server/LocaleLanguage.java +++ b/src/main/java/net/minecraft/server/LocaleLanguage.java @@ -30,9 +30,19 @@ public abstract class LocaleLanguage { private static LocaleLanguage c() { Builder builder = ImmutableMap.builder(); BiConsumer biconsumer = builder::put; // Paper - decompile fix + boolean usingCustomLocale = false; // Yatopia try { - InputStream inputstream = LocaleLanguage.class.getResourceAsStream("/assets/minecraft/lang/en_us.json"); + // Yatopia Start - Custom Locale + InputStream inputstream; + java.io.File file = new java.io.File("./locale.json"); + if (file.isFile() && file.canRead()) { + usingCustomLocale = true; + inputstream = new java.io.FileInputStream(file); + } else { + inputstream = LocaleLanguage.class.getResourceAsStream("/assets/minecraft/lang/en_us.json"); + } + // Yatopia End Throwable throwable = null; try { @@ -55,7 +65,11 @@ public abstract class LocaleLanguage { } } catch (JsonParseException | IOException ioexception) { + if (!usingCustomLocale) { // Yatopia LocaleLanguage.LOGGER.error("Couldn't read strings from /assets/minecraft/lang/en_us.json", ioexception); + } else { // Yatopia start + LocaleLanguage.LOGGER.error("Couldn't read strings from custom locale file. Please check that your custom Locale File is formatted correctly", ioexception); + } // Yatopia end } final Map map = builder.build();