aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/client/ClientHelper.java
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2019-04-18 22:00:45 +0800
committerUnknown <shekwancheung0528@gmail.com>2019-04-18 22:00:45 +0800
commita9a476f81d1547d8a14aa2e566487fcaead0954a (patch)
treeceb7a80517e35e513c88634a6a305f16cd13510b /src/main/java/me/shedaniel/rei/client/ClientHelper.java
parentc684a013be87b57ab7d690b4b33e0454a6379b92 (diff)
downloadRoughlyEnoughItems-a9a476f81d1547d8a14aa2e566487fcaead0954a.tar.gz
RoughlyEnoughItems-a9a476f81d1547d8a14aa2e566487fcaead0954a.tar.bz2
RoughlyEnoughItems-a9a476f81d1547d8a14aa2e566487fcaead0954a.zip
Wrap around plz (2.7.9.94)
Fix #66
Diffstat (limited to 'src/main/java/me/shedaniel/rei/client/ClientHelper.java')
-rw-r--r--src/main/java/me/shedaniel/rei/client/ClientHelper.java43
1 files changed, 33 insertions, 10 deletions
diff --git a/src/main/java/me/shedaniel/rei/client/ClientHelper.java b/src/main/java/me/shedaniel/rei/client/ClientHelper.java
index 2ccdcea43..1e274241d 100644
--- a/src/main/java/me/shedaniel/rei/client/ClientHelper.java
+++ b/src/main/java/me/shedaniel/rei/client/ClientHelper.java
@@ -1,6 +1,7 @@
package me.shedaniel.rei.client;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Maps;
import io.netty.buffer.Unpooled;
import me.shedaniel.rei.RoughlyEnoughItemsCore;
import me.shedaniel.rei.RoughlyEnoughItemsNetwork;
@@ -18,7 +19,9 @@ import net.fabricmc.loader.api.metadata.ModMetadata;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.ingame.CreativePlayerInventoryScreen;
import net.minecraft.client.util.InputUtil;
+import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
+import net.minecraft.item.Items;
import net.minecraft.text.TranslatableTextComponent;
import net.minecraft.util.DefaultedList;
import net.minecraft.util.Identifier;
@@ -29,24 +32,44 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
public class ClientHelper implements ClientModInitializer {
private static final Identifier RECIPE_KEYBIND = new Identifier("roughlyenoughitems", "recipe_keybind");
private static final Identifier USAGE_KEYBIND = new Identifier("roughlyenoughitems", "usage_keybind");
private static final Identifier HIDE_KEYBIND = new Identifier("roughlyenoughitems", "hide_keybind");
+ private static final Map<String, String> MOD_NAME_CACHE = Maps.newHashMap();
public static FabricKeyBinding RECIPE, USAGE, HIDE;
- public static String getModFromItemStack(ItemStack stack) {
- if (!stack.isEmpty()) {
- Identifier location = Registry.ITEM.getId(stack.getItem());
- assert location != null;
- String modid = location.getNamespace();
- if (modid.equalsIgnoreCase("minecraft"))
- return "Minecraft";
- return FabricLoader.getInstance().getModContainer(modid).map(ModContainer::getMetadata).map(ModMetadata::getName).orElse(modid);
- }
- return "";
+ static {
+ MOD_NAME_CACHE.put("minecraft", "Minecraft");
+ MOD_NAME_CACHE.put("c", "Common");
+ }
+
+ public static String getFormattedModFromItem(Item item) {
+ String mod = getModFromItem(item);
+ if (mod.equalsIgnoreCase(""))
+ return "";
+ return "§9§o" + mod;
+ }
+
+ public static String getModFromItem(Item item) {
+ if (item.equals(Items.AIR))
+ return "";
+ return getModFromIdentifier(Registry.ITEM.getId(item));
+ }
+
+ public static String getModFromIdentifier(Identifier identifier) {
+ if (identifier == null)
+ return "";
+ Optional<String> any = Optional.ofNullable(MOD_NAME_CACHE.getOrDefault(identifier.getNamespace(), null));
+ if (any.isPresent())
+ return any.get();
+ String modid = identifier.getNamespace();
+ String s = FabricLoader.getInstance().getModContainer(modid).map(ModContainer::getMetadata).map(ModMetadata::getName).orElse(modid);
+ MOD_NAME_CACHE.put(modid, s);
+ return s;
}
public static boolean isCheating() {