package mods.recipear; import java.util.ArrayList; import java.util.HashSet; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.server.MinecraftServer; import net.minecraft.util.ChatMessageComponent; import net.minecraftforge.oredict.OreDictionary; public class RecipearUtil { public static boolean isOP(EntityPlayer player) { return (MinecraftServer.getServer().getConfigurationManager().getOps().contains(player.username.toLowerCase()) ? true : false); } public static ItemStack[] concat(ItemStack[] A, ItemStack[] B) { int aLen = A.length; int bLen = B.length; ItemStack[] C= new ItemStack[aLen+bLen]; System.arraycopy(A, 0, C, 0, aLen); System.arraycopy(B, 0, C, aLen, bLen); return C; } public static String getLanguageRegistryEntry (ItemStack itemstack) { String name = "Unknown"; try { if(itemstack.getUnlocalizedName() != null) { name = itemstack.getUnlocalizedName(); } } catch (NullPointerException ex) { return "Unknown"; } return name; } public static boolean isInteger(String s) { try { Integer.parseInt(s); } catch(NumberFormatException e) { return false; } return true; } public static void RemoveBannedItemsFromInventory(EntityPlayer player) { if (!isOP(player) && (BannedRecipes.GetBannedRecipeAmount() > 0)) { ItemStack[] whole_inventory = concat( player.inventory.mainInventory, player.inventory.armorInventory); for (ItemStack ITEM : whole_inventory) { if (ITEM != null) { String DISPLAYNAME = RecipearUtil.getLanguageRegistryEntry(ITEM); if (BannedRecipes.CheckSpecifically(ITEM.itemID, ITEM.getItemDamage(), "INVENTORY") || BannedRecipes.CheckSpecifically(DISPLAYNAME, "INVENTORY")) { player.inventory.clearInventory(ITEM.itemID, ITEM.getItemDamage()); msgPlayer(player, String.format(RecipearConfig.removeIngameMsg.replace("$", "\u00A7"), DISPLAYNAME)); RecipearLogger.info(String.format("Removing %s(%s:%s) from " + player.username, DISPLAYNAME, ITEM.itemID, ITEM.getItemDamage())); } } } whole_inventory = null; } } public static String getOreName(ItemStack itemstack) { int oreid = OreDictionary.getOreID(itemstack); if(oreid >= 0) { return OreDictionary.getOreName(oreid); } return "Unknown"; } public static void msgPlayer(EntityPlayer player, String msg) { player.sendChatToPlayer(new ChatMessageComponent().createFromText(msg.replace("$", "\u00A7"))); } public static String getFancyItemStackInfo(ItemStack itemstack) { return getLanguageRegistryEntry(itemstack) + "@" + itemstack.itemID + ":" + itemstack.getItemDamage() + " x " + itemstack.stackSize; } public static ItemStack[] getitem(int id) { ArrayList<ItemStack> items = new ArrayList<ItemStack>(); if(id <= 32000) { int index = 0; while(index < 16) { ItemStack itemstack = new ItemStack(id, 1, index); if(itemstack != null) { if((index > 0) && !(getLanguageRegistryEntry(items.get(0)).equals(getLanguageRegistryEntry(itemstack)))) { items.add(itemstack); } else if (index == 0) { items.add(itemstack); } } index++; } } return items.toArray(new ItemStack[0]); } }