public TableRecipeWrapper(TableRecipe recipe) { this.recipe = recipe; for(Object input : this.recipe.getIngredients()) { if(input instanceof ItemStack) { ItemStack itemStack = (ItemStack) input; if(itemStack.getCount() != 1) { itemStack.setCount(1); } } } this.width = ObfuscationReflectionHelper.getPrivateValue(ShapedOreRecipe.class, this.recipe, "width"); this.height = ObfuscationReflectionHelper.getPrivateValue(ShapedOreRecipe.class, this.recipe, "height"); // sort the output entries into lists of items ImmutableList.Builder<ItemStack> builder = ImmutableList.builder(); for(ItemStack stack : recipe.ingredients.getMatchingStacks()) { BlockTable block = (BlockTable) BlockTable.getBlockFromItem(recipe.getRecipeOutput().getItem()); Block legBlock = Block.getBlockFromItem(stack.getItem()); if(stack.getItemDamage() == OreDictionary.WILDCARD_VALUE) { for(ItemStack sub : JEIPlugin.jeiHelpers.getStackHelper().getSubtypes(stack)) { builder.add(BlockTable.createItemstack(block, recipe.getRecipeOutput().getItemDamage(), legBlock, sub.getItemDamage())); } } else { builder.add(BlockTable.createItemstack(block, recipe.getRecipeOutput().getItemDamage(), legBlock, stack.getItemDamage())); } } outputs = ImmutableList.of(builder.build()); }
public NBTList(NBTTagList nbtList) { this.nbtList = nbtList; backingList = ObfuscationReflectionHelper.getPrivateValue(NBTTagList.class, nbtList, 1); }
private static List<SoundEvent> getInstruments() { if (instruments == null) { instruments = ObfuscationReflectionHelper.getPrivateValue(BlockNote.class, null, "field_176434_a"); } return instruments; }
public static long[] getLongArray(NBTBase nbt) { if (!(nbt instanceof NBTTagLongArray)) { return new long[0]; } return ObfuscationReflectionHelper.getPrivateValue(NBTTagLongArray.class, (NBTTagLongArray) nbt, 0); }
private static int[][][] getMatrix() { if (matrix == null) { matrix = ObfuscationReflectionHelper.getPrivateValue(EntityMinecart.class, null, "field_70500_g"); } return matrix; }
private static boolean isEntityInPortal(Entity entity) { return ObfuscationReflectionHelper.getPrivateValue(Entity.class, entity, inPortalFieldNames); } }
/** * Pulls the raw list out of the NBTTagList */ public static ArrayList<NBTBase> getTagList(NBTTagList tag) { return ObfuscationReflectionHelper.getPrivateValue(NBTTagList.class, tag, new String[]{"tagList", "field_74747_a"}); }
public static int getVillagerCareer(EntityVillager merchant) { return ObfuscationReflectionHelper.getPrivateValue(EntityVillager.class, merchant, "careerId", "field_175563_bv"); }
return ObfuscationReflectionHelper.getPrivateValue(ModelSquid.class, (ModelSquid) model, "field_78202_a"); } else if (model instanceof ModelBlaze) { return ObfuscationReflectionHelper.getPrivateValue(ModelBlaze.class, (ModelBlaze) model, "field_78105_b"); } else if (model instanceof ModelOcelot) { return ObfuscationReflectionHelper.getPrivateValue(ModelOcelot.class, (ModelOcelot) model, "field_78156_g"); } else if (model instanceof ModelEnderman) { return ((ModelEnderman) model).bipedHeadwear; } else if (model instanceof ModelGuardian) { return ObfuscationReflectionHelper.getPrivateValue(ModelGuardian.class, (ModelGuardian) model, "field_178708_b"); } else if (model instanceof ModelRabbit) { return ObfuscationReflectionHelper.getPrivateValue(ModelRabbit.class, (ModelRabbit) model, "field_178704_h"); } else if (model instanceof ModelSlime) { return ObfuscationReflectionHelper.getPrivateValue(ModelSlime.class, (ModelSlime) model, "field_78200_a"); } else if (model instanceof ModelMagmaCube) { return ObfuscationReflectionHelper.getPrivateValue(ModelMagmaCube.class, (ModelMagmaCube) model, "field_78108_b"); } else if (model instanceof ModelSpider) { return ((ModelSpider) model).spiderHead; } else if (model instanceof ModelGhast) { return ObfuscationReflectionHelper.getPrivateValue(ModelGhast.class, (ModelGhast) model, "field_78128_a"); } else if (model instanceof ModelHorse) { return ObfuscationReflectionHelper.getPrivateValue(ModelHorse.class, (ModelHorse) model, "field_110709_a");
@SideOnly(Side.CLIENT) public static void updateOptionsButtonVisibility(GuiCreateWorld gui) { _optionsGuiButton.visible = !(Boolean)ObfuscationReflectionHelper.getPrivateValue(GuiCreateWorld.class, gui, 12); }
public void postInit(FMLPostInitializationEvent e) { Set<Item> temptationItems = ObfuscationReflectionHelper.getPrivateValue(EntityPig.class, null, "TEMPTATION_ITEMS", "field_184764_bw"); temptationItems.add(ItemRegistry.harvestcarrotItem); temptationItems.add(ItemRegistry.harvestpotatoItem); temptationItems.add(ItemRegistry.harvestbeetItem); for (ItemStack stack : OreDictionary.getOres("listAllveggie")) { temptationItems.add(stack.getItem()); } Set<Item> temptationItems2 = ObfuscationReflectionHelper.getPrivateValue(EntityChicken.class, null, "TEMPTATION_ITEMS", "field_184761_bD"); for (ItemStack stack : OreDictionary.getOres("listAllseed")) { temptationItems2.add(stack.getItem()); } //Cow and Sheep dont have Temptation Items /* Set<Item> temptationItems3 = ObfuscationReflectionHelper.getPrivateValue(EntityCow.class, null, "TEMPTATION_ITEMS", "field_184761_bD"); for (ItemStack stack : OreDictionary.getOres("listAllgrain")) { temptationItems3.add(stack.getItem()); } */ }
@Nonnull @Override public Map<Object, Object> getMeta(@Nonnull ItemStack object) { IMedia media = object.getItem() instanceof IMedia ? (IMedia) object.getItem() : ComputerCraft.getMedia(object); if (media == null) return Collections.emptyMap(); Map<Object, Object> out = Maps.newHashMap(); out.put("label", media.getLabel(object)); out.put("recordTitle", media.getAudioTitle(object)); SoundEvent soundEvent = media.getAudio(object); if (soundEvent != null) { out.put("recordName", ObfuscationReflectionHelper.getPrivateValue(SoundEvent.class, soundEvent, "field_187506_b").toString()); } return out; }
/** * Disables the potion effects from rendering by telling the Gui that the player has no potion effects applied. * Uses reflection to grab the class's private variable. * @param guiScreen the screen the player is looking at which extends InventoryEffectRenderer */ public static void DisableInventoryPotionEffects(InventoryEffectRenderer guiScreen) { if(PotionTimers.Enabled && HidePotionEffectsInInventory) { //Note for future Forge versions: field "field_147045_u" will probably be renamed to something like "playerHasPotionEffects" boolean playerHasPotionEffects = ObfuscationReflectionHelper.getPrivateValue(InventoryEffectRenderer.class, (InventoryEffectRenderer)guiScreen, "field_147045_u"); if(playerHasPotionEffects) { int guiLeftPx = (guiScreen.width - 176) / 2; ObfuscationReflectionHelper.setPrivateValue(GuiContainer.class, (GuiContainer)guiScreen, guiLeftPx, "field_147003_i","guiLeft"); ObfuscationReflectionHelper.setPrivateValue(InventoryEffectRenderer.class, (InventoryEffectRenderer)guiScreen, false, "field_147045_u"); } } }
private void lazyInitializeRenderers() { if(waterRenderer == null) { Minecraft minecraft = Minecraft.getMinecraft(); BlockRendererDispatcher dispatcher = minecraft.getBlockRendererDispatcher(); this.blockColors = minecraft.getBlockColors(); this.waterRenderer = ObfuscationReflectionHelper.getPrivateValue(BlockRendererDispatcher.class, dispatcher, 3); //fluidRenderer } }
private void addElytraLayer() { RenderManager renderManager = Minecraft.getMinecraft().getRenderManager(); try { Map<String, RenderPlayer> skinMap = ObfuscationReflectionHelper.getPrivateValue(RenderManager.class, renderManager, "skinMap", "field_178636_l"); skinMap.get("default").addLayer(new LayerBloodElytra(skinMap.get("default"))); skinMap.get("slim").addLayer(new LayerBloodElytra(skinMap.get("slim"))); BMLog.DEBUG.info("Elytra layer added"); } catch (Exception e) { BMLog.DEBUG.error("Failed to set custom Elytra Layer for Elytra Living Armour Upgrade: {}", e.getMessage()); } }
@Nonnull @Override public Map<Object, Object> getMeta(@Nonnull ItemStack stack) { if (!(stack.getItem() instanceof ItemBanner)) return Collections.emptyMap(); int idx = 0; Map<Object, Object> out = Maps.newHashMap(); NBTTagCompound tag = stack.getSubCompound("BlockEntityTag"); if (tag != null && tag.hasKey("Patterns")) { NBTTagList nbttaglist = tag.getTagList("Patterns", 10); for (int i = 0; i < nbttaglist.tagCount() && i < 6; ++i) { NBTTagCompound patternTag = nbttaglist.getCompoundTagAt(i); EnumDyeColor color = EnumDyeColor.byDyeDamage(patternTag.getInteger("Color")); BannerPattern pattern = getPatternByID(patternTag.getString("Pattern")); if (pattern != null) { Map<String, String> entry = Maps.newHashMap(); entry.put("id", pattern.getHashname()); // patternName String name = ObfuscationReflectionHelper.getPrivateValue(BannerPattern.class, pattern, "field_191014_N"); entry.put("name", name); entry.put("colour", color.toString()); entry.put("color", color.toString()); out.put(++idx, entry); } } } return out; }
private void startConverting(EntityZombieVillager v, int t) { // v.conversionTime = t; ObfuscationReflectionHelper.setPrivateValue(EntityZombieVillager.class, v, t, "conversionTime", "field_82234_d"); v.addPotionEffect(new PotionEffect(MobEffects.STRENGTH, t, Math.min(v.world.getDifficulty().getId() - 1, 0))); v.world.setEntityState(v, (byte) 16); try { // v.getDataManager().set(CONVERTING, Boolean.valueOf(true)); DataParameter<Boolean> CONVERTING = ObfuscationReflectionHelper.getPrivateValue(EntityZombieVillager.class, v, "CONVERTING", "field_184739_bx"); v.getDataManager().set(CONVERTING, Boolean.valueOf(true)); } catch (Exception e) {} } }
@Override public boolean textboxKeyTyped(char typedChar, int keyCode) { boolean canLoseFocus = ObfuscationReflectionHelper.getPrivateValue(GuiTextField.class, this, 10); boolean result = super.textboxKeyTyped(typedChar, keyCode); if (isFocused()) { if (keyCode == Keyboard.KEY_UP) { updateSearchHistory(-1); result = true; } else if (keyCode == Keyboard.KEY_DOWN) { updateSearchHistory(1); result = true; } else if (keyCode == Keyboard.KEY_RETURN) { saveHistory(); if (canLoseFocus) { setFocused(false); } result = true; } } if (keyCode == RSKeyBindings.FOCUS_SEARCH_BAR.getKeyCode() && canLoseFocus) { setFocused(!isFocused()); saveHistory(); result = true; } if (result) { listeners.forEach(Runnable::run); } return result; }
@SubscribeEvent public void onModelsBake(ModelBakeEvent event) { for(BlockFluidBase fluidBlock : fluidBlocks) { Fluid fluid = ObfuscationReflectionHelper.getPrivateValue(BlockFluidBase.class, fluidBlock, "definedFluid"); ModelFluid modelFluid = new ModelFluid(fluid); IBakedModel bakedModel = modelFluid.bake(modelFluid.getDefaultState(), DefaultVertexFormats.ITEM, TextureUtils::getTexture); ModelResourceLocation resourceLocation = getSimpleModelLocation(fluidBlock); event.getModelRegistry().putObject(resourceLocation, bakedModel); } for(Tuple<Block, String> tuple : builtInBlocks) { ModelResourceLocation resourceLocation = getSimpleModelLocation(tuple.getFirst()); ModelBuiltInRenderer bakedModel = new ModelBuiltInRenderer(tuple.getSecond()); event.getModelRegistry().putObject(resourceLocation, bakedModel); } }
ArrayList list = ObfuscationReflectionHelper.getPrivateValue(Minecraft.class, Minecraft.getMinecraft(), "defaultResourcePacks", "field_110449_ao"); QuestResourcesFolder qRes1 = new QuestResourcesFolder(); QuestResourcesFile qRes2 = new QuestResourcesFile();