package mekanism.common.util;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.common.Loader;
import net.minecraftforge.fml.common.ModContainer;
import org.apache.commons.lang3.text.WordUtils;
public final class ItemRegistryUtils
{
private static final Map<String, String> modIDMap = new HashMap<String, String>();
private static void populateMap()
{
for(Map.Entry<String, ModContainer> entry : Loader.instance().getIndexedModList().entrySet())
{
modIDMap.put(entry.getKey().toLowerCase(), entry.getValue().getName());
}
}
/* Mod ID lookup thanks to JEI */
public static String getMod(ItemStack stack)
{
if(stack == null || stack.getItem() == null)
{
return "null";
}
if(modIDMap.isEmpty())
{
populateMap();
}
ResourceLocation itemResourceLocation = Item.REGISTRY.getNameForObject(stack.getItem());
if(itemResourceLocation == null)
{
return "null";
}
String modId = itemResourceLocation.getResourceDomain();
String lowercaseModId = modId.toLowerCase(Locale.ENGLISH);
String modName = modIDMap.get(lowercaseModId);
if(modName == null)
{
modName = WordUtils.capitalize(modId);
modIDMap.put(lowercaseModId, modName);
}
return modName;
}
}