diff options
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/infopanes/DevInfoPane.java')
| -rw-r--r-- | src/main/java/io/github/moulberry/notenoughupdates/infopanes/DevInfoPane.java | 1781 |
1 files changed, 894 insertions, 887 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/infopanes/DevInfoPane.java b/src/main/java/io/github/moulberry/notenoughupdates/infopanes/DevInfoPane.java index 8c856c95..945dd71c 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/infopanes/DevInfoPane.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/infopanes/DevInfoPane.java @@ -1,6 +1,5 @@ package io.github.moulberry.notenoughupdates.infopanes; -import com.google.gson.JsonElement; import com.google.gson.JsonObject; import io.github.moulberry.notenoughupdates.NEUManager; import io.github.moulberry.notenoughupdates.NEUOverlay; @@ -23,24 +22,24 @@ import net.minecraftforge.oredict.ShapelessOreRecipe; import org.lwjgl.input.Keyboard; import java.io.IOException; -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.atomic.AtomicBoolean; +/** + * Provides some dev functions used to help with adding new items/detecting missing items. + */ public class DevInfoPane extends TextInfoPane { + public DevInfoPane(NEUOverlay overlay, NEUManager manager) { + super(overlay, manager, "Missing Items", ""); + text = getText(); + } - /** - * Provides some dev functions used to help with adding new items/detecting missing items. - */ - - public DevInfoPane(NEUOverlay overlay, NEUManager manager) { - super(overlay, manager, "Missing Items", ""); - text = getText(); - } - - private String getText() { - String text = ""; + private String getText() { + String text = ""; /*for(Map.Entry<String, JsonObject> item : manager.getItemInformation().entrySet()) { if(!item.getValue().has("infoType") || item.getValue().get("infoType").getAsString().isEmpty()) { @@ -58,14 +57,14 @@ public class DevInfoPane extends TextInfoPane { text += item.getKey() + "\n"; } }*/ - //if(true) return text; + //if(true) return text; - for(String internalname : manager.auctionManager.getItemAuctionInfoKeySet()) { - if (internalname.matches("^.*-[0-9]{1,3}$")) continue; - if(!manager.getItemInformation().containsKey(internalname)) { - text += internalname + "\n"; - } - } + for (String internalname : manager.auctionManager.getItemAuctionInfoKeySet()) { + if (internalname.matches("^.*-[0-9]{1,3}$")) continue; + if (!manager.getItemInformation().containsKey(internalname)) { + text += internalname + "\n"; + } + } /*for(Map.Entry<String, JsonElement> entry : manager.getAuctionPricesJson().get("prices").getAsJsonObject().entrySet()) { if(!manager.getItemInformation().keySet().contains(entry.getKey())) { @@ -79,868 +78,876 @@ public class DevInfoPane extends TextInfoPane { text += entry.getKey() + "\n"; } }*/ - return text; - } - - //#region add vanilla items - - AtomicBoolean running = new AtomicBoolean(false); - ScheduledExecutorService ses = Executors.newScheduledThreadPool(1); - - String[] bukkitList = new String[] { - "ACACIA_DOOR_ITEM", - "ACACIA_FENCE", - "ACACIA_FENCE_GATE", - "ACACIA_STAIRS", - "ACTIVATOR_RAIL", - "ANVIL", - "APPLE", - "ARMOR_STAND", - "ARROW", - "BAKED_POTATO", - "BANNER", - "BARRIER", - "BEACON", - "BED", - "BEDROCK", - "BIRCH_DOOR_ITEM", - "BIRCH_FENCE", - "BIRCH_FENCE_GATE", - "BIRCH_WOOD_STAIRS@birch_stairs", - "BLAZE_POWDER", - "BLAZE_ROD", - "BOAT", - "BONE", - "BOOK", - "BOOK_AND_QUILL@writable_book", - "BOOKSHELF", - "BOW", - "BOWL", - "BREAD", - "BREWING_STAND_ITEM", - "BRICK@brick_block", - "BRICK_STAIRS", - "BROWN_MUSHROOM", - "BUCKET", - "CACTUS", - "CAKE", - "CARPET", - "CARROT_ITEM", - "CARROT_STICK@carrot_on_a_stick", - "CAULDRON_ITEM", - "CHAINMAIL_BOOTS", - "CHAINMAIL_CHESTPLATE", - "CHAINMAIL_HELMET", - "CHAINMAIL_LEGGINGS", - "CHEST", - "CLAY", - "CLAY_BALL", - "CLAY_BRICK@brick", - "COAL", - "COAL_BLOCK", - "COAL_ORE", - "COBBLE_WALL@cobblestone_wall", - "COBBLESTONE", - "COBBLESTONE_STAIRS@stone_stairs", - "COMMAND@command_block", - "COMMAND_MINECART@command_block_minecart", - "COMPASS", - "COOKED_BEEF", - "COOKED_CHICKEN", - "COOKED_FISH", - "COOKED_MUTTON", - "COOKED_RABBIT", - "COOKIE", - "DARK_OAK_DOOR_ITEM", - "DARK_OAK_FENCE", - "DARK_OAK_FENCE_GATE", - "DARK_OAK_STAIRS", - "DAYLIGHT_DETECTOR", - "DEAD_BUSH@deadbush", - "DETECTOR_RAIL", - "DIAMOND", - "DIAMOND_AXE", - "DIAMOND_BARDING@diamond_horse_armor", - "DIAMOND_BLOCK", - "DIAMOND_BOOTS", - "DIAMOND_CHESTPLATE", - "DIAMOND_HELMET", - "DIAMOND_HOE", - "DIAMOND_LEGGINGS", - "DIAMOND_ORE", - "DIAMOND_PICKAXE", - "DIAMOND_SPADE@diamond_shovel", - "DIAMOND_SWORD", - "DIODE@repeater", - "DIRT", - "DISPENSER", - "DOUBLE_PLANT", - "DRAGON_EGG", - "DROPPER", - "EGG", - "EMERALD", - "EMERALD_BLOCK", - "EMERALD_ORE", - "EMPTY_MAP@map", - "ENCHANTED_BOOK", - "ENCHANTMENT_TABLE@enchanting_table", - "ENDER_CHEST", - "ENDER_PEARL", - "ENDER_PORTAL_FRAME@end_portal_frame", - "ENDER_STONE@end_stone", - "EXP_BOTTLE@experience_bottle", - "EXPLOSIVE_MINECART@tnt_minecart", - "EYE_OF_ENDER@ender_eye", - "FEATHER", - "FENCE", - "FENCE_GATE", - "FERMENTED_SPIDER_EYE", - "FIREBALL@fire_charge", - "FIREWORK@fireworks", - "FIREWORK_CHARGE", - "FISHING_ROD", - "FLINT", - "FLINT_AND_STEEL", - "FLOWER_POT_ITEM", - "FURNACE", - "GHAST_TEAR", - "GLASS", - "GLASS_BOTTLE", - "GLOWSTONE", - "GLOWSTONE_DUST", - "GOLD_AXE@golden_axe", - "GOLD_BARDING@golden_horse_armor", - "GOLD_BLOCK", - "GOLD_BOOTS@golden_boots", - "GOLD_CHESTPLATE@golden_chestplate", - "GOLD_HELMET@golden_helmet", - "GOLD_HOE@golden_hoe", - "GOLD_INGOT", - "GOLD_LEGGINGS@golden_leggings", - "GOLD_NUGGET", - "GOLD_ORE", - "GOLD_PICKAXE@golden_pickaxe", - "GOLD_PLATE@light_weighted_pressure_plate", - "GOLD_RECORD@record_13", - "GOLD_SPADE@golden_shovel", - "GOLD_SWORD@golden_sword", - "GOLDEN_APPLE", - "GOLDEN_CARROT", - "GRASS", - "GRAVEL", - "GREEN_RECORD@record_cat", - "GRILLED_PORK@cooked_porkchop", - "HARD_CLAY@hardened_clay", - "HAY_BLOCK", - "HOPPER", - "HOPPER_MINECART", - "ICE", - "INK_SACK@dye", - "IRON_AXE", - "IRON_BARDING@iron_horse_armor", - "IRON_BLOCK", - "IRON_BOOTS", - "IRON_CHESTPLATE", - "IRON_DOOR", - "IRON_FENCE@iron_bars", - "IRON_HELMET", - "IRON_HOE", - "IRON_INGOT", - "IRON_LEGGINGS", - "IRON_ORE", - "IRON_PICKAXE", - "IRON_PLATE@heavy_weighted_pressure_plate", - "IRON_SPADE@iron_shovel", - "IRON_SWORD", - "IRON_TRAPDOOR", - "ITEM_FRAME", - "JACK_O_LANTERN@lit_pumpkin", - "JUKEBOX", - "JUNGLE_DOOR_ITEM", - "JUNGLE_FENCE", - "JUNGLE_FENCE_GATE", - "JUNGLE_WOOD_STAIRS@jungle_stairs", - "LADDER", - "LAPIS_BLOCK", - "LAPIS_ORE", - "LAVA_BUCKET", - "LEASH@lead", - "LEATHER", - "LEATHER_BOOTS", - "LEATHER_CHESTPLATE", - "LEATHER_HELMET", - "LEATHER_LEGGINGS", - "LEAVES", - "LEAVES_2@leaves2", - "LEVER", - "LOG", - "LOG_2@log2", - "LONG_GRASS@tallgrass", - "MAGMA_CREAM", - "MAP", - "MELON", - "MELON_BLOCK", - "MELON_SEEDS", - "MILK_BUCKET", - "MINECART", - "MOB_SPAWNER", - "MONSTER_EGG", - "MONSTER_EGGS@spawn_egg", - "MOSSY_COBBLESTONE", - "MUSHROOM_SOUP@mushroom_stew", - "MUTTON", - "MYCEL@mycelium", - "NAME_TAG", - "NETHER_BRICK", - "NETHER_BRICK_ITEM", - "NETHER_BRICK_STAIRS", - "NETHER_FENCE@nether_brick_fence", - "NETHER_STAR", - "NETHER_WARTS@nether_wart", - "NETHERRACK", - "NOTE_BLOCK@noteblock", - "OBSIDIAN", - "PACKED_ICE", - "PAINTING", - "PAPER", - "PISTON_BASE@piston", - "PISTON_STICKY_BASE@sticky_piston", - "POISONOUS_POTATO", - "PORK@porkchop", - "POTATO_ITEM", - "POTION", - "POWERED_MINECART@furnace_minecart", - "POWERED_RAIL@golden_rail", - "PRISMARINE", - "PRISMARINE_CRYSTALS", - "PRISMARINE_SHARD", - "PUMPKIN", - "PUMPKIN_PIE", - "PUMPKIN_SEEDS", - "QUARTZ", - "QUARTZ_BLOCK", - "QUARTZ_ORE", - "QUARTZ_STAIRS", - "RABBIT", - "RABBIT_FOOT", - "RABBIT_HIDE", - "RABBIT_STEW", - "RAILS@rail", - "RAW_BEEF@beef", - "RAW_CHICKEN@chicken", - "RAW_FISH@fish", - "RECORD_10@record_ward", - "RECORD_11", - "RECORD_12@record_wait", - "RECORD_3@record_blocks", - "RECORD_4@record_chirp", - "RECORD_5@record_far", - "RECORD_6@record_mall", - "RECORD_7@record_mellohi", - "RECORD_8@record_stal", - "RECORD_9@record_strad", - "RED_MUSHROOM", - "RED_ROSE@red_flower", - "RED_SANDSTONE", - "RED_SANDSTONE_STAIRS", - "REDSTONE", - "REDSTONE_BLOCK", - "REDSTONE_COMPARATOR@comparator", - "REDSTONE_LAMP_OFF@redstone_lamp", - "REDSTONE_ORE", - "REDSTONE_TORCH_ON@redstone_torch", - "ROTTEN_FLESH", - "SADDLE", - "SAND", - "SANDSTONE", - "SANDSTONE_STAIRS", - "SAPLING", - "SEA_LANTERN", - "SEEDS@wheat_seeds", - "SHEARS", - "SIGN", - "SKULL_ITEM", - "SLIME_BALL", - "SLIME_BLOCK@slime", - "SMOOTH_BRICK@stonebrick", - "SMOOTH_STAIRS@stone_brick_stairs", - "SNOW@snow_layer", - "SNOW_BALL@snowball", - "SNOW_BLOCK@snow", - "SOUL_SAND", - "SPECKLED_MELON", - "SPIDER_EYE", - "SPONGE", - "SPRUCE_DOOR_ITEM", - "SPRUCE_FENCE", - "SPRUCE_FENCE_GATE", - "SPRUCE_WOOD_STAIRS@spruce_stairs", - "STAINED_CLAY@stained_hardened_clay", - "STAINED_GLASS", - "STAINED_GLASS_PANE", - "STEP@stone_slab", - "STICK", - "STONE", - "STONE_AXE", - "STONE_BUTTON", - "STONE_HOE", - "STONE_PICKAXE", - "STONE_PLATE@stone_pressure_plate", - "STONE_SLAB2", - "STONE_SPADE@stone_shovel", - "STONE_SWORD", - "STORAGE_MINECART@chest_minecart", - "STRING", - "SUGAR", - "SUGAR_CANE@reeds", - "SULPHUR@gunpowder", - "THIN_GLASS@glass_pane", - "TNT", - "TORCH", - "TRAP_DOOR@trapdoor", - "TRAPPED_CHEST", - "TRIPWIRE_HOOK", - "VINE", - "WATCH@clock", - "WATER_BUCKET", - "WATER_LILY@waterlily", - "WEB", - "WHEAT", - "WOOD@planks", - "WOOD_AXE@wooden_axe", - "WOOD_BUTTON@wooden_button", - "WOOD_DOOR@wooden_door", - "WOOD_HOE@wooden_hoe", - "WOOD_PICKAXE@wooden_pickaxe", - "WOOD_PLATE@wooden_pressure_plate", - "WOOD_SPADE@wooden_shovel", - "WOOD_STAIRS@oak_stairs", - "WOOD_STEP@wooden_slab", - "WOOD_SWORD@wooden_sword", - "WOOL", - "WORKBENCH@crafting_table", - "WRITTEN_BOOK", - "YELLOW_FLOWER" - }; - - private void addStack(ItemStack stackToAdd, int depth) { - if(depth > 16) return; - - String regName2 = stackToAdd.getItem().getRegistryName().replace("minecraft:", ""); - String internalname = null; - for(String bukkit2 : bukkitList) { - if(bukkit2.equalsIgnoreCase(regName2) || - (bukkit2.contains("@") && bukkit2.split("@")[1].equalsIgnoreCase(regName2))) { - internalname = bukkit2.split("@")[0]; - break; - } - } - if(internalname == null) return; - - if(stackToAdd.getItemDamage() != 0 && stackToAdd.getItemDamage() < 32000) { - internalname += "-" + stackToAdd.getItemDamage(); - } - - if(manager.getItemInformation().containsKey(internalname)) return; - - JsonObject recipeJson = null; - for(IRecipe recipe : CraftingManager.getInstance().getRecipeList()) { - ItemStack out = recipe.getRecipeOutput(); - if(out != null && out.getItem() == stackToAdd.getItem() && - (stackToAdd.getItemDamage() >= 32000 || out.getItemDamage() == stackToAdd.getItemDamage())) { - recipeJson = new JsonObject(); - - if (recipe instanceof ShapedRecipes) { - ShapedRecipes shaped = (ShapedRecipes) recipe; - - String[] x = {"1","2","3"}; - String[] y = {"A","B","C"}; - for(int i=0; i<9; i++) { - int xi = i%3; - int yi = i/3; - - String stacki = ""; - - int recipeIndex = i-(3-shaped.recipeWidth)*yi; - if(xi < shaped.recipeWidth && recipeIndex < shaped.recipeItems.length) { - ItemStack stack = shaped.recipeItems[recipeIndex]; - if(stack != null) { - if(stack.getItem() != stackToAdd.getItem() || - (stackToAdd.getItemDamage() < 32000 && stack.getItemDamage() != stackToAdd.getItemDamage())) { - addStack(stack, depth+1); - } - - Item stackItem = stack.getItem(); - String regName = stackItem.getRegistryName().replace("minecraft:", ""); - for(String bukkit2 : bukkitList) { - if(bukkit2.equalsIgnoreCase(regName) || - (bukkit2.contains("@") && bukkit2.split("@")[1].equalsIgnoreCase(regName))) { - stacki = bukkit2.split("@")[0]; - break; - } - } - if(!stacki.isEmpty()) { - if(stack.getItemDamage() != 0 && stack.getItemDamage() < 32000) { - stacki += "-" + stack.getItemDamage(); - } - stacki += ":"+stack.stackSize; - } - } - } - - recipeJson.addProperty(y[yi]+x[xi], stacki); - } - break; - } else if(recipe instanceof ShapedOreRecipe) { - ShapedOreRecipe shaped = (ShapedOreRecipe) recipe; - int width = (int)Utils.getField(ShapedOreRecipe.class, recipe, "width"); - String[] x = {"1","2","3"}; - String[] y = {"A","B","C"}; - for(int i=0; i<9; i++) { - int xi = i%3; - int yi = i/3; - - String stacki = ""; - - int recipeIndex = i - (3 - width) * yi; - if (xi < width && recipeIndex < shaped.getRecipeSize()) { - ItemStack stack = null; - if(recipeIndex < shaped.getRecipeSize()) { - Object o = shaped.getInput()[recipeIndex]; - if(o instanceof ItemStack) { - stack = (ItemStack) o; - } else if(o instanceof List<?>) { - for(Object o2 : (List<?>)o) { - if(o2 instanceof ItemStack) { - stack = (ItemStack) o2; - break; - } - } - } - } - if(stack != null) { - if(stack.getItem() != stackToAdd.getItem() || - (stackToAdd.getItemDamage() < 32000 && stack.getItemDamage() != stackToAdd.getItemDamage())) { - addStack(stack, depth+1); - } - Item stackItem = stack.getItem(); - String regName = stackItem.getRegistryName().replace("minecraft:", ""); - for(String bukkit2 : bukkitList) { - if(bukkit2.equalsIgnoreCase(regName) || bukkit2.equalsIgnoreCase(regName+"_ITEM") || - (bukkit2.contains("@") && bukkit2.split("@")[1].equalsIgnoreCase(regName))) { - stacki = bukkit2.split("@")[0]; - break; - } - } - if(!stacki.isEmpty()) { - if(stack.getItemDamage() != 0 && stack.getItemDamage() < 32000) { - stacki += "-" + stack.getItemDamage(); - } - //stacki += ":"+stack.stackSize; - stacki += ":1"; - } - } - } - - recipeJson.addProperty(y[yi]+x[xi], stacki); - } - } else if (recipe instanceof ShapelessRecipes) { - ShapelessRecipes shapeless = (ShapelessRecipes) recipe; - String[] x = {"1","2","3"}; - String[] y = {"A","B","C"}; - for(int i=0; i<9; i++) { - int xi = i%3; - int yi = i/3; - - String stacki = ""; - - ItemStack stack = null; - if(i < shapeless.recipeItems.size()) { - stack = shapeless.recipeItems.get(i); - } - if(stack != null) { - if(stack.getItem() != stackToAdd.getItem() || - (stackToAdd.getItemDamage() < 32000 && stack.getItemDamage() != stackToAdd.getItemDamage())) { - addStack(stack, depth + 1); - } - Item stackItem = stack.getItem(); - String regName = stackItem.getRegistryName().replace("minecraft:", ""); - for(String bukkit2 : bukkitList) { - if(bukkit2.equalsIgnoreCase(regName) || bukkit2.equalsIgnoreCase(regName+"_ITEM") || - (bukkit2.contains("@") && bukkit2.split("@")[1].equalsIgnoreCase(regName))) { - stacki = bukkit2.split("@")[0]; - break; - } - } - if(!stacki.isEmpty()) { - if(stack.getItemDamage() != 0 && stack.getItemDamage() < 32000) { - stacki += "-" + stack.getItemDamage(); - } - //stacki += ":"+stack.stackSize; - stacki += ":1"; - } - } - - recipeJson.addProperty(y[yi]+x[xi], stacki); - } - break; - } else if (recipe instanceof ShapelessOreRecipe) { - ShapelessOreRecipe shapeless = (ShapelessOreRecipe) recipe; - String[] x = {"1","2","3"}; - String[] y = {"A","B","C"}; - for(int i=0; i<9; i++) { - int xi = i%3; - int yi = i/3; - - String stacki = ""; - - ItemStack stack = null; - if(i < shapeless.getRecipeSize()) { - Object o = shapeless.getInput().get(i); - if(o instanceof ItemStack) { - stack = (ItemStack) o; - } else if(o instanceof List<?>) { - for(Object o2 : (List<?>)o) { - if(o2 instanceof ItemStack) { - stack = (ItemStack) o2; - break; - } - } - } - } - if(stack != null) { - if(stack.getItem() != stackToAdd.getItem() || - (stackToAdd.getItemDamage() < 32000 && stack.getItemDamage() != stackToAdd.getItemDamage())) { - addStack(stack, depth+1); - } - Item stackItem = stack.getItem(); - String regName = stackItem.getRegistryName().replace("minecraft:", ""); - for(String bukkit2 : bukkitList) { - if(bukkit2.equalsIgnoreCase(regName) || bukkit2.equalsIgnoreCase(regName+"_ITEM") || - (bukkit2.contains("@") && bukkit2.split("@")[1].equalsIgnoreCase(regName))) { - stacki = bukkit2.split("@")[0]; - break; - } - } - if(!stacki.isEmpty()) { - if(stack.getItemDamage() != 0 && stack.getItemDamage() < 32000) { - stacki += "-" + stack.getItemDamage(); - } - //stacki += ":"+stack.stackSize; - stacki += ":1"; - } - } - - recipeJson.addProperty(y[yi]+x[xi], stacki); - } - break; - } - } - - } - ItemStack res = Utils.createItemStack(stackToAdd.getItem(), - EnumChatFormatting.WHITE+stackToAdd.getItem().getItemStackDisplayName(stackToAdd), - EnumChatFormatting.WHITE.toString()+EnumChatFormatting.BOLD+"COMMON"); - if(stackToAdd.getItemDamage() != 0 && stackToAdd.getItemDamage() < 32000) { - res.setItemDamage(stackToAdd.getItemDamage()); - } - res.getTagCompound().setInteger("HideFlags", 254); - NBTTagCompound ea = new NBTTagCompound(); - ea.setString("id", internalname); - res.getTagCompound().setTag("ExtraAttributes", ea); - - - JsonObject json = manager.getJsonForItem(res); - if(stackToAdd.getItemDamage() != 0 && stackToAdd.getItemDamage() < 32000) { - json.addProperty("parent", internalname.split("-")[0]); - } - - json.addProperty("internalname", internalname); - json.addProperty("modver", NotEnoughUpdates.VERSION); - json.addProperty("vanilla", true); - - if(recipeJson != null) { - json.add("recipe", recipeJson); - json.addProperty("clickcommand", "viewrecipe"); - } else { - json.addProperty("clickcommand", ""); - } - - json.addProperty("modver", NotEnoughUpdates.VERSION); - - try { - Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("Added: " + internalname)); - manager.writeJsonDefaultDir(json, internalname+".json"); - manager.loadItem(internalname); - } catch(IOException e) {} - } - - @Override - public boolean keyboardInput() { - if(running.get() || true) return false; - if(Keyboard.isKeyDown(Keyboard.KEY_J)) { - running.set(!running.get()); - - for(String bukkit : bukkitList) { - String internalname = bukkit.split("@")[0]; - if(true || !manager.getItemInformation().containsKey(internalname)) { - //System.out.println("adding vanilla: " + internalname); - String vanilla = internalname.toLowerCase().replace("_item", ""); - if(bukkit.contains("@")) { - vanilla = bukkit.split("@")[1]; - } - Item item = Item.itemRegistry.getObject(new ResourceLocation(vanilla)); - if(item == null) { - item = Item.getItemFromBlock(Block.blockRegistry.getObject(new ResourceLocation(vanilla))); - } - if(item != null) { - HashMap<Integer, JsonObject> recipeJsonForDamage = new HashMap<>(); - for(IRecipe recipe : CraftingManager.getInstance().getRecipeList()) { - ItemStack out = recipe.getRecipeOutput(); - if(out != null && out.getItem() == item) { - System.out.println("Found recipe for : " + internalname + ":" + recipe); - JsonObject obj = new JsonObject(); - - if (recipe instanceof ShapedRecipes) { - ShapedRecipes shaped = (ShapedRecipes) recipe; - String[] x = {"1", "2", "3"}; - String[] y = {"A", "B", "C"}; - for (int i = 0; i < 9; i++) { - int xi = i % 3; - int yi = i / 3; - - String stacki = ""; - - int recipeIndex = i - (3 - shaped.recipeWidth) * yi; - if (xi < shaped.recipeWidth && recipeIndex < shaped.recipeItems.length) { - ItemStack stack = shaped.recipeItems[recipeIndex]; - if (stack != null) { - addStack(stack, 0); - Item stackItem = stack.getItem(); - String regName = stackItem.getRegistryName().replace("minecraft:", ""); - for (String bukkit2 : bukkitList) { - if (bukkit2.equalsIgnoreCase(regName) || bukkit2.equalsIgnoreCase(regName + "_ITEM") || - (bukkit2.contains("@") && bukkit2.split("@")[1].equalsIgnoreCase(regName))) { - stacki = bukkit2.split("@")[0]; - break; - } - } - if (!stacki.isEmpty()) { - if (stack.getItemDamage() != 0 && stack.getItemDamage() < 32000) { - stacki += "-" + stack.getItemDamage(); - } - //stacki += ":"+stack.stackSize; - stacki += ":1"; - } - } - } - - obj.addProperty(y[yi] + x[xi], stacki); - } - recipeJsonForDamage.put(out.getItemDamage() > 32000 ? 0 : out.getItemDamage(), obj); - } else if(recipe instanceof ShapedOreRecipe) { - ShapedOreRecipe shaped = (ShapedOreRecipe) recipe; - int width = (int)Utils.getField(ShapedOreRecipe.class, recipe, "width"); - String[] x = {"1","2","3"}; - String[] y = {"A","B","C"}; - for(int i=0; i<9; i++) { - int xi = i%3; - int yi = i/3; - - String stacki = ""; - - int recipeIndex = i - (3 - width) * yi; - if (xi < width && recipeIndex < shaped.getRecipeSize()) { - ItemStack stack = null; - if(recipeIndex < shaped.getRecipeSize()) { - Object o = shaped.getInput()[recipeIndex]; - if(o instanceof ItemStack) { - stack = (ItemStack) o; - } else if(o instanceof List<?>) { - for(Object o2 : (List<?>)o) { - if(o2 instanceof ItemStack) { - stack = (ItemStack) o2; - break; - } - } - } - } - if(stack != null) { - addStack(stack, 0); - Item stackItem = stack.getItem(); - String regName = stackItem.getRegistryName().replace("minecraft:", ""); - for(String bukkit2 : bukkitList) { - if(bukkit2.equalsIgnoreCase(regName) || bukkit2.equalsIgnoreCase(regName+"_ITEM") || - (bukkit2.contains("@") && bukkit2.split("@")[1].equalsIgnoreCase(regName))) { - stacki = bukkit2.split("@")[0]; - break; - } - } - if(!stacki.isEmpty()) { - if(stack.getItemDamage() != 0 && stack.getItemDamage() < 32000) { - stacki += "-" + stack.getItemDamage(); - } - //stacki += ":"+stack.stackSize; - stacki += ":1"; - } - } - } - - obj.addProperty(y[yi]+x[xi], stacki); - } - recipeJsonForDamage.put(out.getItemDamage()>32000?0:out.getItemDamage(), obj); - } else if (recipe instanceof ShapelessRecipes) { - ShapelessRecipes shapeless = (ShapelessRecipes) recipe; - String[] x = {"1","2","3"}; - String[] y = {"A","B","C"}; - for(int i=0; i<9; i++) { - int xi = i%3; - int yi = i/3; - - String stacki = ""; - - ItemStack stack = null; - if(i < shapeless.recipeItems.size()) { - stack = shapeless.recipeItems.get(i); - } - if(stack != null) { - addStack(stack, 0); - Item stackItem = stack.getItem(); - String regName = stackItem.getRegistryName().replace("minecraft:", ""); - for(String bukkit2 : bukkitList) { - if(bukkit2.equalsIgnoreCase(regName) || bukkit2.equalsIgnoreCase(regName+"_ITEM") || - (bukkit2.contains("@") && bukkit2.split("@")[1].equalsIgnoreCase(regName))) { - stacki = bukkit2.split("@")[0]; - break; - } - } - if(!stacki.isEmpty()) { - if(stack.getItemDamage() != 0 && stack.getItemDamage() < 32000) { - stacki += "-" + stack.getItemDamage(); - } - //stacki += ":"+stack.stackSize; - stacki += ":1"; - } - } - - obj.addProperty(y[yi]+x[xi], stacki); - } - recipeJsonForDamage.put(out.getItemDamage() > 32000 ? 0 : out.getItemDamage(), obj); - break; - } else if (recipe instanceof ShapelessOreRecipe) { - ShapelessOreRecipe shapeless = (ShapelessOreRecipe) recipe; - String[] x = {"1","2","3"}; - String[] y = {"A","B","C"}; - for(int i=0; i<9; i++) { - int xi = i%3; - int yi = i/3; - - String stacki = ""; - - ItemStack stack = null; - if(i < shapeless.getRecipeSize()) { - Object o = shapeless.getInput().get(i); - if(o instanceof ItemStack) { - stack = (ItemStack) o; - } else if(o instanceof List<?>) { - for(Object o2 : (List<?>)o) { - if(o2 instanceof ItemStack) { - stack = (ItemStack) o2; - break; - } - } - } - } - if(stack != null) { - addStack(stack, 0); - Item stackItem = stack.getItem(); - String regName = stackItem.getRegistryName().replace("minecraft:", ""); - for(String bukkit2 : bukkitList) { - if(bukkit2.equalsIgnoreCase(regName) || bukkit2.equalsIgnoreCase(regName+"_ITEM") || - (bukkit2.contains("@") && bukkit2.split("@")[1].equalsIgnoreCase(regName))) { - stacki = bukkit2.split("@")[0]; - |
