Skip to content

Commit f16ed52

Browse files
authored
Merge pull request #3680 from CrazySaying/1.20.1
update Language.java.patch
2 parents 8b58922 + 87b418c commit f16ed52

1 file changed

Lines changed: 187 additions & 30 deletions

File tree

Lines changed: 187 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,191 @@
11
--- a/net/minecraft/locale/Language.java
22
+++ b/net/minecraft/locale/Language.java
3-
@@ -34,7 +_,8 @@
4-
ImmutableMap.Builder<String, String> builder = ImmutableMap.builder();
5-
BiConsumer<String, String> biconsumer = builder::put;
6-
m_280428_(biconsumer, "/assets/minecraft/lang/en_us.json");
7-
- final Map<String, String> map = builder.build();
8-
+ final Map<String, String> map = new java.util.HashMap<>(builder.build());
9-
+ net.minecraftforge.server.LanguageHook.captureLanguageMap(map);
10-
return new Language() {
11-
public String m_118919_(String p_128127_, String p_265421_) {
12-
return map.getOrDefault(p_128127_, p_265421_);
13-
@@ -55,6 +_,11 @@
14-
}, Style.f_131099_).isPresent();
15-
};
16-
}
17-
+
18-
+ @Override
19-
+ public Map<String, String> getLanguageData() {
20-
+ return map;
21-
+ }
22-
};
23-
}
3+
@@ -6,6 +_,8 @@
4+
import com.google.gson.JsonElement;
5+
import com.google.gson.JsonObject;
6+
import com.google.gson.JsonParseException;
7+
+import com.mohistmc.MohistConfig;
8+
+import com.mohistmc.MohistMC;
9+
import com.mojang.logging.LogUtils;
10+
import java.io.IOException;
11+
import java.io.InputStream;
12+
@@ -24,80 +_,103 @@
13+
import org.slf4j.Logger;
2414

25-
@@ -84,6 +_,9 @@
26-
public static void m_128114_(Language p_128115_) {
27-
f_128104_ = p_128115_;
28-
}
15+
public abstract class Language {
16+
- private static final Logger f_128101_ = LogUtils.getLogger();
17+
- private static final Gson f_128102_ = new Gson();
18+
- private static final Pattern f_128103_ = Pattern.compile("%(\\d+\\$)?[\\d.]*[df]");
19+
- public static final String f_177832_ = "en_us";
20+
- private static volatile Language f_128104_ = m_128118_();
21+
-
22+
- private static Language m_128118_() {
23+
- ImmutableMap.Builder<String, String> builder = ImmutableMap.builder();
24+
- BiConsumer<String, String> biconsumer = builder::put;
25+
- m_280428_(biconsumer, "/assets/minecraft/lang/en_us.json");
26+
- final Map<String, String> map = builder.build();
27+
- return new Language() {
28+
- public String m_118919_(String p_128127_, String p_265421_) {
29+
- return map.getOrDefault(p_128127_, p_265421_);
30+
- }
31+
-
32+
- public boolean m_6722_(String p_128135_) {
33+
- return map.containsKey(p_128135_);
34+
- }
35+
-
36+
- public boolean m_6627_() {
37+
- return false;
38+
- }
39+
-
40+
- public FormattedCharSequence m_5536_(FormattedText p_128129_) {
41+
- return (p_128132_) -> {
42+
- return p_128129_.m_7451_((p_177835_, p_177836_) -> {
43+
- return StringDecomposer.m_14346_(p_177836_, p_177835_, p_128132_) ? Optional.empty() : FormattedText.f_130759_;
44+
- }, Style.f_131099_).isPresent();
45+
- };
46+
- }
47+
- };
48+
- }
49+
-
50+
- private static void m_280428_(BiConsumer<String, String> p_282031_, String p_283638_) {
51+
- try (InputStream inputstream = Language.class.getResourceAsStream(p_283638_)) {
52+
- m_128108_(inputstream, p_282031_);
53+
- } catch (JsonParseException | IOException ioexception) {
54+
- f_128101_.error("Couldn't read strings from {}", p_283638_, ioexception);
55+
- }
56+
-
57+
- }
58+
-
59+
- public static void m_128108_(InputStream p_128109_, BiConsumer<String, String> p_128110_) {
60+
- JsonObject jsonobject = f_128102_.fromJson(new InputStreamReader(p_128109_, StandardCharsets.UTF_8), JsonObject.class);
61+
-
62+
- for(Map.Entry<String, JsonElement> entry : jsonobject.entrySet()) {
63+
- String s = f_128103_.matcher(GsonHelper.m_13805_(entry.getValue(), entry.getKey())).replaceAll("%$1s");
64+
- p_128110_.accept(entry.getKey(), s);
65+
- }
66+
-
67+
- }
68+
-
69+
- public static Language m_128107_() {
70+
- return f_128104_;
71+
- }
72+
-
73+
- public static void m_128114_(Language p_128115_) {
74+
- f_128104_ = p_128115_;
75+
- }
76+
-
77+
- public String m_6834_(String p_128111_) {
78+
- return this.m_118919_(p_128111_, p_128111_);
79+
- }
80+
-
81+
- public abstract String m_118919_(String p_265702_, String p_265599_);
82+
-
83+
- public abstract boolean m_6722_(String p_128117_);
84+
-
85+
- public abstract boolean m_6627_();
86+
-
87+
- public abstract FormattedCharSequence m_5536_(FormattedText p_128116_);
88+
-
89+
- public List<FormattedCharSequence> m_128112_(List<FormattedText> p_128113_) {
90+
- return p_128113_.stream().map(this::m_5536_).collect(ImmutableList.toImmutableList());
91+
- }
92+
+ private static final Logger f_128101_ = LogUtils.getLogger();
93+
+ private static final Gson f_128102_ = new Gson();
94+
+ private static final Pattern f_128103_ = Pattern.compile("%(\\d+\\$)?[\\d.]*[df]");
95+
+ public static final String f_177832_ = "en_us";
96+
+ private static volatile Language f_128104_ = m_128118_();
2997
+
30-
+ // FORGE START
31-
+ public Map<String, String> getLanguageData() { return ImmutableMap.of(); }
32-
33-
public String m_6834_(String p_128111_) {
34-
return this.m_118919_(p_128111_, p_128111_);
98+
+ private static Language m_128118_() {
99+
+ ImmutableMap.Builder<String, String> builder = ImmutableMap.builder();
100+
+ BiConsumer<String, String> biconsumer = builder::put;
101+
+ String lang = MohistConfig.mohist_lang().toLowerCase();
102+
+ InputStream inputstream1 = MohistMC.class.getResourceAsStream("/assets/minecraft/lang/" + lang + ".lang");
103+
+ InputStream inputstream2 = MohistMC.class.getResourceAsStream("/assets/minecraft/lang/en_us.lang");
104+
+ InputStream inputstream = (inputstream1 == null ? inputstream2 : inputstream1);
105+
+ injectLang(inputstream, biconsumer, "/assets/minecraft/lang/" + lang + ".lang");
106+
+ // parseTranslations(biconsumer, "/assets/minecraft/lang/en_us.json");// NeoTenet - use parse i18n instead
107+
+ final Map<String, String> map = new java.util.HashMap<>(builder.build());
108+
+ net.minecraftforge.server.LanguageHook.captureLanguageMap(map);
109+
+ return new Language() {
110+
+ public String m_118919_(String p_128127_, String p_265421_) {
111+
+ return map.getOrDefault(p_128127_, p_265421_);
112+
+ }
113+
+
114+
+ public boolean m_6722_(String p_128135_) {
115+
+ return map.containsKey(p_128135_);
116+
+ }
117+
+
118+
+ public boolean m_6627_() {
119+
+ return false;
120+
+ }
121+
+
122+
+ public FormattedCharSequence m_5536_(FormattedText p_128129_) {
123+
+ return (p_128132_) -> {
124+
+ return p_128129_.m_7451_((p_177835_, p_177836_) -> {
125+
+ return StringDecomposer.m_14346_(p_177836_, p_177835_, p_128132_) ? Optional.empty() : FormattedText.f_130759_;
126+
+ }, Style.f_131099_).isPresent();
127+
+ };
128+
+ }
129+
+
130+
+ @Override
131+
+ public Map<String, String> getLanguageData() {
132+
+ return map;
133+
+ }
134+
+ };
135+
+ }
136+
+
137+
+ private static void m_280428_(BiConsumer<String, String> p_282031_, String p_283638_) {
138+
+ try (InputStream inputstream = Language.class.getResourceAsStream(p_283638_)) {
139+
+ m_128108_(inputstream, p_282031_);
140+
+ } catch (JsonParseException | IOException ioexception) {
141+
+ f_128101_.error("Couldn't read strings from {}", p_283638_, ioexception);
142+
+ }
143+
+
144+
+ }
145+
+
146+
+ private static void injectLang(InputStream inputstreamLang, BiConsumer<String, String> p_282031_, String p_283638_) {
147+
+ try (InputStream inputstream = inputstreamLang) {
148+
+ m_128108_(inputstream, p_282031_);
149+
+ } catch (JsonParseException | IOException ioexception) {
150+
+ f_128101_.error("Couldn't read strings from {}", p_283638_, ioexception);
151+
+ }
152+
+
153+
+ }
154+
+
155+
+ public static void m_128108_(InputStream p_128109_, BiConsumer<String, String> p_128110_) {
156+
+ JsonObject jsonobject = f_128102_.fromJson(new InputStreamReader(p_128109_, StandardCharsets.UTF_8), JsonObject.class);
157+
+
158+
+ for(Map.Entry<String, JsonElement> entry : jsonobject.entrySet()) {
159+
+ String s = f_128103_.matcher(GsonHelper.m_13805_(entry.getValue(), entry.getKey())).replaceAll("%$1s");
160+
+ p_128110_.accept(entry.getKey(), s);
161+
+ }
162+
+
163+
+ }
164+
+
165+
+ public static Language m_128107_() {
166+
+ return f_128104_;
167+
+ }
168+
+
169+
+ public static void m_128114_(Language p_128115_) {
170+
+ f_128104_ = p_128115_;
171+
+ }
172+
+
173+
+ // FORGE START
174+
+ public Map<String, String> getLanguageData() { return ImmutableMap.of(); }
175+
+
176+
+ public String m_6834_(String p_128111_) {
177+
+ return this.m_118919_(p_128111_, p_128111_);
178+
+ }
179+
+
180+
+ public abstract String m_118919_(String p_265702_, String p_265599_);
181+
+
182+
+ public abstract boolean m_6722_(String p_128117_);
183+
+
184+
+ public abstract boolean m_6627_();
185+
+
186+
+ public abstract FormattedCharSequence m_5536_(FormattedText p_128116_);
187+
+
188+
+ public List<FormattedCharSequence> m_128112_(List<FormattedText> p_128113_) {
189+
+ return p_128113_.stream().map(this::m_5536_).collect(ImmutableList.toImmutableList());
190+
+ }
191+
}

0 commit comments

Comments
 (0)