aboutsummaryrefslogtreecommitdiff
path: root/fabric/src
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-11-18 02:39:22 +0800
committershedaniel <daniel@shedaniel.me>2021-11-18 02:39:22 +0800
commitce883fe60c9d5e27e6ebddd1d048c593d1ac7370 (patch)
treeeaa1c1a1d6805715912cc8a1495a6940d702f464 /fabric/src
parentcb3f4e2ff2e495e82f58a828cb8f0e32d87f2fe2 (diff)
parent0ad79cc5f5460cda2184d7be22e19fda187d07ba (diff)
downloadRoughlyEnoughItems-ce883fe60c9d5e27e6ebddd1d048c593d1ac7370.tar.gz
RoughlyEnoughItems-ce883fe60c9d5e27e6ebddd1d048c593d1ac7370.tar.bz2
RoughlyEnoughItems-ce883fe60c9d5e27e6ebddd1d048c593d1ac7370.zip
Merge remote-tracking branch 'origin/6.x-1.17' into 7.x-1.18
Diffstat (limited to 'fabric/src')
-rw-r--r--fabric/src/main/java/me/shedaniel/rei/impl/client/gui/credits/fabric/CreditsScreenImpl.java69
-rw-r--r--fabric/src/main/resources/fabric.mod.json81
2 files changed, 136 insertions, 14 deletions
diff --git a/fabric/src/main/java/me/shedaniel/rei/impl/client/gui/credits/fabric/CreditsScreenImpl.java b/fabric/src/main/java/me/shedaniel/rei/impl/client/gui/credits/fabric/CreditsScreenImpl.java
new file mode 100644
index 000000000..b392bb04c
--- /dev/null
+++ b/fabric/src/main/java/me/shedaniel/rei/impl/client/gui/credits/fabric/CreditsScreenImpl.java
@@ -0,0 +1,69 @@
+/*
+ * This file is licensed under the MIT License, part of Roughly Enough Items.
+ * Copyright (c) 2018, 2019, 2020, 2021 shedaniel
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+package me.shedaniel.rei.impl.client.gui.credits.fabric;
+
+import com.google.common.collect.Lists;
+import me.shedaniel.rei.impl.client.gui.credits.CreditsScreen;
+import net.fabricmc.loader.api.FabricLoader;
+import net.fabricmc.loader.api.metadata.CustomValue;
+import net.minecraft.util.Tuple;
+
+import java.util.Comparator;
+import java.util.List;
+import java.util.stream.Collectors;
+
+public class CreditsScreenImpl {
+ public static void fillTranslators(Exception[] exception, List<Tuple<String, List<CreditsScreen.TranslatorEntry>>> translators) {
+ FabricLoader.getInstance().getModContainer("roughlyenoughitems").ifPresent(rei -> {
+ try {
+ if (rei.getMetadata().containsCustomValue("rei:translators")) {
+ CustomValue.CvObject jsonObject = rei.getMetadata().getCustomValue("rei:translators").getAsObject();
+ jsonObject.forEach(entry -> {
+ CustomValue value = entry.getValue();
+ List<CreditsScreen.TranslatorEntry> behind = value.getType() == CustomValue.CvType.ARRAY ? Lists.newArrayList(value.getAsArray().iterator()).stream()
+ .map(customValue -> {
+ if (customValue.getType() == CustomValue.CvType.OBJECT) {
+ CustomValue.CvObject object = customValue.getAsObject();
+ // name and proofreader
+ String name = object.get("name").getAsString();
+ boolean proofreader = object.containsKey("proofreader") && object.get("proofreader").getAsBoolean();
+ return new CreditsScreen.TranslatorEntry(name, proofreader);
+ } else {
+ return new CreditsScreen.TranslatorEntry(customValue.getAsString(), false);
+ }
+ })
+ .sorted(Comparator.comparing(CreditsScreen.TranslatorEntry::getName, String::compareToIgnoreCase))
+ .collect(Collectors.toList())
+ : Lists.newArrayList(new CreditsScreen.TranslatorEntry(value.getAsString()));
+ translators.add(new Tuple<>(entry.getKey(), behind));
+ });
+ }
+ translators.sort(Comparator.comparing(Tuple::getA, String::compareToIgnoreCase));
+ } catch (Exception e) {
+ exception[0] = e;
+ e.printStackTrace();
+ }
+ });
+ }
+}
diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json
index 6efe5ff94..f2f3d6179 100644
--- a/fabric/src/main/resources/fabric.mod.json
+++ b/fabric/src/main/resources/fabric.mod.json
@@ -35,28 +35,81 @@
],
"custom": {
"rei:translators": {
- "English": ["shedaniel"],
- "Japanese": ["swordglowsblue", "hinataaki"],
+ "English": [
+ {
+ "name": "shedaniel",
+ "proofreader": true
+ }
+ ],
+ "Japanese": ["swordglowsblue", "hinataaki", "LiuTed", "wolf0023"],
"Chinese Simplified": [
"XuyuEre", "shedaniel", "SciUniv_Moring", "Takakura-Anri", "liushuyu", "lkxian17084", "MynameisTT", "detiam", "Snapshot_light", "JerryHan", "WarrenWN",
- "Lograthmic"
+ "Lograthmic", "LiuTed", "judema", "SmallMAZ", "ChengBing", "HCIO", "WeiHengYi"
+ ],
+ "Chinese Traditional": [
+ "hugoalh", "gxy17886", {
+ "name": "shedaniel",
+ "proofreader": true
+ }, "961111ray", "s36845283", "sileence114"
+ ],
+ "Chinese Traditional Hong Kong": [
+ {
+ "name": "shedaniel",
+ "proofreader": true
+ }, "timo301105", "Limeboy0603"
+ ],
+ "French": [
+ "Yanis48", "Koockies", "dagdar", "samnamstyle123", "Hugman76", "AdriaAyl", "schlaft", "YanisBft", "jean.jarno", "Juknum",
+ "JustSky", "Myuui"
+ ],
+ "German": [
+ "MelanX", "guntram7", "tabmeier12", "Siphalor", "M-S-72", "SirClaver", "bugginggg", "wohlhabend", "Eiim", "valoeghese", "luro02", "MrPiggo",
+ "firippukun", "ProManu09", "HeikoHDE", "Slav_Anime_Blin", "maunben", "Mari_023", "cctitan53", "Jummit"
+ ],
+ "Estonian": [
+ {
+ "name": "MadisO",
+ "proofreader": true
+ }
+ ],
+ "Portuguese": ["thiagokenis", "KewaiiGamer", "manuel.canhoto"],
+ "Portuguese Brazilian": [
+ "thiagokenis", "joaoh1", "yuriob262", "Pinkstyles", "felipemk67", "Stevolaff", "stann0x", "_ImKing", "filipesn1512", {
+ "name": "Maneschy",
+ "proofreader": true
+ },
+ "zLuket", "MathrusRibeiro0770"
+ ],
+ "LOLCAT": [
+ {
+ "name": "shedaniel",
+ "proofreader": true
+ }, "RaxedMC", "lkxian17084"
+ ],
+ "Upside Down English": [
+ {
+ "name": "shedaniel",
+ "proofreader": true
+ }, "magnusk28", "scarzdz"
],
- "Chinese Traditional": ["hugoalh", "gxy17886", "shedaniel", "961111ray"],
- "French": ["Yanis48", "Koockies", "dagdar", "samnamstyle123"],
- "German": ["MelanX", "guntram7", "tabmeier12", "Siphalor", "M-S-72", "SirClaver", "bugginggg", "wohlhabend", "Eiim", "valoeghese", "luro02"],
- "Estonian": ["Madis0"],
- "Portuguese": ["thiagokenis", "KewaiiGamer"],
- "Portuguese Brazilian": ["thiagokenis", "joaoh1", "yuriob262", "Pinkstyles", "felipemk67", "Stevolaff", "stann0x"],
- "LOLCAT": ["shedaniel", "RaxedMC", "lkxian17084"],
- "Upside Down English": ["shedaniel", "magnusk28", "scarzdz"],
"Bulgarian": ["geniiii", "Dremski"],
"Russian": [
+ {
+ "name": "alicecarroll",
+ "proofreader": true
+ },
"MrYonter", "kwmika1girl", "LimyChitou", "Great_Manalal", "s3rbug", "TheByKotik", "ebogish", "xqr.", "scarzdz", "JCat", "map788", "kyrtion", "CanslerW",
- "MinerChAI", "nef1k"
+ "MinerChAI", "nef1k", "Romz24", "zhesnyovskyy", "FormerlyAndying", "aiexz", "parkurnic", "axelBaher", "Martden", "CherryBloom"
],
- "Polish": ["mikolajkazmierczak", "Piteriuz", "BeetMacol"],
+ "Polish": ["mikolajkazmierczak", "Piteriuz", "BeetMacol", "Sebuniasty", "agarman12345", "ArtSnail", "K0RR"],
"Norwegian": ["CanslerW"],
- "Turkish": ["NOYB"]
+ "Turkish": ["NOYB", "ege_e", "Winnerxl", "MrEnoX"],
+ "Ukrainian": ["bilchuk.radomyr"],
+ "Spanish": ["jeremysolis33", "acookienot", "The_Biome", "itzsara200707", "Ekain06", "DEStruyyec", "holakasecabra"],
+ "Italian": ["luciobortoletto", "b.carmelo.92"],
+ "Czech": ["stanik123"],
+ "Danish": ["ChristianLW"],
+ "Hebrew": ["avivyona", "OddedC"]
}
},
"depends": {