2
0
Fork 0

materials work, but crafting material is mad

frozen
KeyLime17 2 years ago
parent 4022eb06a6
commit 6f4b585373

@ -97,6 +97,29 @@ public class CinderLoE {
public static LOTRMaterial MATERIAL_BREE; public static LOTRMaterial MATERIAL_BREE;
public static LOTRMaterial MATERIAL_BATTLENUN; public static LOTRMaterial MATERIAL_BATTLENUN;
public static LOTRMaterial MATERIAL_ASH; public static LOTRMaterial MATERIAL_ASH;
public static LOTRMaterial WOOD_ELVEN;
public static LOTRMaterial MOREDAIN;
public static LOTRMaterial UMBAR;
public static LOTRMaterial GULF_HARAD;
public static LOTRMaterial CORSAIR;
public static LOTRMaterial HARNEDOR;
public static LOTRMaterial NEAR_HARAD;
public static LOTRMaterial DUNLENDING;
public static LOTRMaterial RHUN;
public static LOTRMaterial RHUN_GOLD;
public static LOTRMaterial LOSSARNACH;
public static LOTRMaterial DORWINION;
public static LOTRMaterial TAUREDAIN;
public static LOTRMaterial ROHAN;
public static LOTRMaterial DORWINION_ELF;
public static LOTRMaterial GONDOR;
public static LOTRMaterial DALE;
public static LOTRMaterial HALF_TROLL;
public static LOTRMaterial BLACK_URUK;
public static LOTRMaterial URUK;
public static LOTRMaterial ANGMAR;
public static LOTRMaterial LAMEDON;
// Blocks // Blocks
public static Block cinderBlock; public static Block cinderBlock;

@ -26,6 +26,36 @@ public class Materials {
modifyMaterial("BATTLENUN", 300, 3F, 0.6F, 2, 6.0F, 10, Items.iron_ingot); modifyMaterial("BATTLENUN", 300, 3F, 0.6F, 2, 6.0F, 10, Items.iron_ingot);
modifyMaterial("ASH", 2000, 0.0F, 0.6F, 2, 7.0F, 10, CinderLoE.ingotAsh); modifyMaterial("ASH", 2000, 0.0F, 0.6F, 2, 7.0F, 10, CinderLoE.ingotAsh);
// Modified Vanilla Material, for Royal armor and prot (1000 - Original Durability) * 0.25
// Orcs
modifyMaterial("ANGMAR", 480, 2.5F, 0.6F, 2, 6.0F, 10, LOTRMod.orcSteel); //Original Durability = 350 | Add 162 | 1/4
modifyMaterial("URUK", 662, 3.0F, 0.7F, 2, 6.0F, 5, LOTRMod.urukSteel); //Original Durability = 550 | Add 112 | 1/4
modifyMaterial("BLACK_URUK", 774, 3.0F, 0.7F, 2, 6.0F, 6, LOTRMod.blackUrukSteel); //Original Durability = 550 | Add 112 | 2/4
modifyMaterial("HALF_TROLL", 475, 2.5F, 0.6F, 1, 5.0F, 6, LOTRMod.gemsbokHide); //Original Durability = 300 | Add 175 | 1/4
// Good Humans
modifyMaterial("DALE", 475, 2.5F, 0.6F, 2, 6.0F, 10, Items.iron_ingot); //Original Durability = 300 | Add 175 | 1/4
modifyMaterial("GONDOR", 725, 2.5F, 0.6F, 2, 6.0F, 10, Items.iron_ingot); //Original Durability = 450 | Add 137 | 2/4
modifyMaterial("DORWINION_ELF", 875, 3.0F, 0.6F, 2, 7.0F, 15, LOTRMod.elfSteel); //Original Durability = 500 | Add 125 | 2/4
modifyMaterial("ROHAN", 300, 2.5F, 0.6F, 2, 6.0F, 10, Items.iron_ingot); //Original Durability = 300 | Add 175 | 0/4
modifyMaterial("TAUREDAIN", 300, 2.5F, 0.6F, 3, 8.0F, 10, LOTRMod.bronze); //Original Durability = 300 | Add 175 | 0/4
modifyMaterial("DORWINION", 400, 2.5F, 0.6F, 2, 6.0F, 10, Items.iron_ingot); //Original Durability = 400 | Add 150 | 0/4
modifyMaterial("LOSSARNACH", 300, 2.5F, 0.6F, 3, 8.0F, 10, Items.iron_ingot); //Original Durability = 300 | Add 175 | 0/4
modifyMaterial("LAMEDON", 300, 2.5F, 0.6F, 3, 8.0F, 10, Items.iron_ingot); //Original Durability = 300 | Add 175 | 0/4
// Evil Humans
modifyMaterial("RHUN_GOLD", 558, 2.5F, 0.6F, 2, 6.0F, 10, LOTRMod.gildedIron); //Original Durability = 450 | Add 137 | 1/4
modifyMaterial("RHUN", 400, 2.5F, 0.6F, 2, 6.0F, 10, Items.iron_ingot); //Original Durability = 400 | Add 150 | 0/4
modifyMaterial("DUNLENDING", 437, 2.0F, 0.6F, 2, 6.0F, 8, Items.iron_ingot); //Original Durability = 250 | Add 187 | 1/4
modifyMaterial("NEAR_HARAD", 650, 2.5F, 0.6F, 2, 6.0F, 10, LOTRMod.bronze); //Original Durability = 300 | Add 175 | 2/4
modifyMaterial("HARNEDOR", 250, 2.0F, 0.6F, 2, 6.0F, 8, LOTRMod.bronze); //Original Durability = 250 | Add 187 | 0/4
modifyMaterial("CORSAIR", 300, 2.5F, 0.6F, 2, 6.0F, 10, Items.iron_ingot); //Original Durability = 300 | Add 175 | 0/4
modifyMaterial("GULF_HARAD", 350, 2.5F, 0.6F, 2, 6.0F, 10, LOTRMod.bronze); //Original Durability = 350 | Add 162 | 0/4
modifyMaterial("UMBAR", 450, 2.5F, 0.6F, 2, 6.0F, 10, Items.iron_ingot); //Original Durability = 450 | Add 137 | 0/4
modifyMaterial("MOREDAIN", 250, 2.0F, 0.6F, 2, 6.0F, 8, LOTRMod.gemsbokHide); //Original Durability = 250 | Add 187 | 0/4
//Elves
modifyMaterial("WOOD_ELVEN", 1000, 3.0F, 0.6F, 2, 9.0F, 15, LOTRMod.elfSteel); //Original Durability = 500 | Add 125 | 4/4
} }
public static void modifyMaterial(String fieldName, int uses, float weapon_damage, float protection, int harvest_level, float speed, int enchantability, Item crafting_item) { public static void modifyMaterial(String fieldName, int uses, float weapon_damage, float protection, int harvest_level, float speed, int enchantability, Item crafting_item) {
@ -46,6 +76,7 @@ public class Materials {
Method setSpeed = lotrMaterialClass.getDeclaredMethod("setSpeed", float.class); Method setSpeed = lotrMaterialClass.getDeclaredMethod("setSpeed", float.class);
Method setEnchantability = lotrMaterialClass.getDeclaredMethod("setEnchantability", int.class); Method setEnchantability = lotrMaterialClass.getDeclaredMethod("setEnchantability", int.class);
Method setCraftingItem = lotrMaterialClass.getDeclaredMethod("setCraftingItem", Item.class); Method setCraftingItem = lotrMaterialClass.getDeclaredMethod("setCraftingItem", Item.class);
// Method setManFlesh = lotrMaterialClass.getDeclaredMethod("canHarvestManFlesh", boolean.class);
setUses.setAccessible(true); setUses.setAccessible(true);
setDamage.setAccessible(true); setDamage.setAccessible(true);
@ -54,6 +85,7 @@ public class Materials {
setSpeed.setAccessible(true); setSpeed.setAccessible(true);
setEnchantability.setAccessible(true); setEnchantability.setAccessible(true);
setCraftingItem.setAccessible(true); setCraftingItem.setAccessible(true);
// setManFlesh.setAccessible(true);
setUses.invoke(materialLocal, uses); setUses.invoke(materialLocal, uses);
setDamage.invoke(materialLocal, weapon_damage); setDamage.invoke(materialLocal, weapon_damage);
@ -61,6 +93,7 @@ public class Materials {
setHarvestLevel.invoke(materialLocal, harvest_level); setHarvestLevel.invoke(materialLocal, harvest_level);
setSpeed.invoke(materialLocal, speed); setSpeed.invoke(materialLocal, speed);
setEnchantability.invoke(materialLocal, enchantability); setEnchantability.invoke(materialLocal, enchantability);
// setManFlesh.invoke(materialLocal, canHarvestManFlesh);
if (crafting_item != null) { if (crafting_item != null) {
setCraftingItem.invoke(materialLocal, crafting_item); setCraftingItem.invoke(materialLocal, crafting_item);
} }

@ -1,18 +1,29 @@
package com.zivilon.cinder_loe.blocks; package com.zivilon.cinder_loe.blocks;
import lotr.common.LOTRCreativeTabs;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.world.World; import net.minecraft.world.World;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import java.lang.reflect.Field;
public class CinderBlock extends Block { public class CinderBlock extends Block {
public CinderBlock() { public CinderBlock() {
super(Material.rock); super(Material.rock);
try {
Field tabField = LOTRCreativeTabs.class.getDeclaredField("tabBlock"); // Stupid workaround because ForgeGradle tries to obfuscate field LOTRCreativeTabs.tabBlock when it's not supposed to
LOTRCreativeTabs tab = (LOTRCreativeTabs)tabField.get(null);
setCreativeTab((CreativeTabs)tab);
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
setHardness(2.0F); setHardness(2.0F);
setResistance(5.0F); setResistance(5.0F);
setBlockTextureName("lotr:cinder_block"); setBlockTextureName("lotr:cinder_block");

@ -15,6 +15,13 @@ public class FishBarrel extends StaticBlockBase3 {
public FishBarrel() { public FishBarrel() {
super(Material.wood, "lotr:fishbarrel"); super(Material.wood, "lotr:fishbarrel");
try {
Field tabField = LOTRCreativeTabs.class.getDeclaredField("tabDeco"); // Stupid workaround because ForgeGradle tries to obfuscate field LOTRCreativeTabs.tabBlock when it's not supposed to
LOTRCreativeTabs tab = (LOTRCreativeTabs)tabField.get(null);
setCreativeTab((CreativeTabs)tab);
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
setStepSound(Block.soundTypeWood); setStepSound(Block.soundTypeWood);
setBlockName("lotr:fishbarrel"); setBlockName("lotr:fishbarrel");
setHardness(1.0F); setHardness(1.0F);

@ -7,9 +7,18 @@ import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import java.lang.reflect.Field;
public class FurBundle extends RotatableBlockBase3 { public class FurBundle extends RotatableBlockBase3 {
public FurBundle() { public FurBundle() {
super(Material.cloth, "lotr:furBundle"); super(Material.cloth, "lotr:furBundle");
try {
Field tabField = LOTRCreativeTabs.class.getDeclaredField("tabDeco"); // Stupid workaround because ForgeGradle tries to obfuscate field LOTRCreativeTabs.tabBlock when it's not supposed to
LOTRCreativeTabs tab = (LOTRCreativeTabs)tabField.get(null);
setCreativeTab((CreativeTabs)tab);
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
setStepSound(Block.soundTypeCloth); setStepSound(Block.soundTypeCloth);
setBlockName("lotr:furBundle"); setBlockName("lotr:furBundle");
setHardness(0.5F); setHardness(0.5F);

@ -7,9 +7,18 @@ import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import java.lang.reflect.Field;
public class LeatherBundle extends RotatableBlockBase3 { public class LeatherBundle extends RotatableBlockBase3 {
public LeatherBundle() { public LeatherBundle() {
super(Material.cloth, "lotr:leatherBundle"); super(Material.cloth, "lotr:leatherBundle");
try {
Field tabField = LOTRCreativeTabs.class.getDeclaredField("tabDeco"); // Stupid workaround because ForgeGradle tries to obfuscate field LOTRCreativeTabs.tabBlock when it's not supposed to
LOTRCreativeTabs tab = (LOTRCreativeTabs)tabField.get(null);
setCreativeTab((CreativeTabs)tab);
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
setStepSound(Block.soundTypeCloth); setStepSound(Block.soundTypeCloth);
setBlockName("lotr:leatherBundle"); setBlockName("lotr:leatherBundle");
setHardness(0.5F); setHardness(0.5F);

@ -7,9 +7,18 @@ import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import java.lang.reflect.Field;
public class ReedBale extends RotatableBlockBase3 { public class ReedBale extends RotatableBlockBase3 {
public ReedBale() { public ReedBale() {
super(Material.grass, "lotr:reedBale"); super(Material.grass, "lotr:reedBale");
try {
Field tabField = LOTRCreativeTabs.class.getDeclaredField("tabDeco"); // Stupid workaround because ForgeGradle tries to obfuscate field LOTRCreativeTabs.tabBlock when it's not supposed to
LOTRCreativeTabs tab = (LOTRCreativeTabs)tabField.get(null);
setCreativeTab((CreativeTabs)tab);
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
setStepSound(Block.soundTypeGrass); setStepSound(Block.soundTypeGrass);
setBlockName("lotr:reedBale"); setBlockName("lotr:reedBale");
setHardness(0.5F); setHardness(0.5F);

@ -13,10 +13,19 @@ import cpw.mods.fml.relauncher.SideOnly;
import com.zivilon.cinder_loe.util.Utilities; import com.zivilon.cinder_loe.util.Utilities;
import java.lang.reflect.Field;
public class RunedDwarvenBrick extends Block { public class RunedDwarvenBrick extends Block {
public RunedDwarvenBrick() { public RunedDwarvenBrick() {
super(Material.rock); // Choose the appropriate material super(Material.rock); // Choose the appropriate material
try {
Field tabField = LOTRCreativeTabs.class.getDeclaredField("tabDeco"); // Stupid workaround because ForgeGradle tries to obfuscate field LOTRCreativeTabs.tabBlock when it's not supposed to
LOTRCreativeTabs tab = (LOTRCreativeTabs)tabField.get(null);
setCreativeTab((CreativeTabs)tab);
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
// Set other properties like hardness, resistance, name, etc. // Set other properties like hardness, resistance, name, etc.
setHardness(2.0F); setHardness(2.0F);
setResistance(5.0F); setResistance(5.0F);

@ -9,10 +9,19 @@ import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import java.lang.reflect.Field;
public class cobbleDrystone extends Block { public class cobbleDrystone extends Block {
public cobbleDrystone() { public cobbleDrystone() {
super(Material.rock); // Choose the appropriate material super(Material.rock); // Choose the appropriate material
try {
Field tabField = LOTRCreativeTabs.class.getDeclaredField("tabBlock"); // Stupid workaround because ForgeGradle tries to obfuscate field LOTRCreativeTabs.tabBlock when it's not supposed to
LOTRCreativeTabs tab = (LOTRCreativeTabs)tabField.get(null);
setCreativeTab((CreativeTabs)tab);
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
// Set other properties like hardness, resistance, name, etc. // Set other properties like hardness, resistance, name, etc.
setHardness(2.0F); setHardness(2.0F);
setResistance(5.0F); setResistance(5.0F);

@ -9,11 +9,20 @@ import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import java.lang.reflect.Field;
public class cutDrystone extends Block { public class cutDrystone extends Block {
public cutDrystone() { public cutDrystone() {
super(Material.rock); // Choose the appropriate material super(Material.rock); // Choose the appropriate material
// Set other properties like hardness, resistance, name, etc. // Set other properties like hardness, resistance, name, etc.
try {
Field tabField = LOTRCreativeTabs.class.getDeclaredField("tabBlock"); // Stupid workaround because ForgeGradle tries to obfuscate field LOTRCreativeTabs.tabBlock when it's not supposed to
LOTRCreativeTabs tab = (LOTRCreativeTabs)tabField.get(null);
setCreativeTab((CreativeTabs)tab);
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
setHardness(2.0F); setHardness(2.0F);
setResistance(5.0F); setResistance(5.0F);
setBlockTextureName(Utilities.toSnakeCase("lotr:cut_drystone")); setBlockTextureName(Utilities.toSnakeCase("lotr:cut_drystone"));

@ -9,10 +9,19 @@ import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import java.lang.reflect.Field;
public class plaster extends Block { public class plaster extends Block {
public plaster() { public plaster() {
super(Material.rock); // Choose the appropriate material super(Material.rock); // Choose the appropriate material
try {
Field tabField = LOTRCreativeTabs.class.getDeclaredField("tabBlock"); // Stupid workaround because ForgeGradle tries to obfuscate field LOTRCreativeTabs.tabBlock when it's not supposed to
LOTRCreativeTabs tab = (LOTRCreativeTabs)tabField.get(null);
setCreativeTab((CreativeTabs)tab);
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
// Set other properties like hardness, resistance, name, etc. // Set other properties like hardness, resistance, name, etc.
setHardness(2.0F); setHardness(2.0F);
setResistance(5.0F); setResistance(5.0F);

@ -9,10 +9,19 @@ import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import java.lang.reflect.Field;
public class reeflessCoral extends Block { public class reeflessCoral extends Block {
public reeflessCoral() { public reeflessCoral() {
super(Material.rock); // Choose the appropriate material super(Material.rock); // Choose the appropriate material
try {
Field tabField = LOTRCreativeTabs.class.getDeclaredField("tabDeco"); // Stupid workaround because ForgeGradle tries to obfuscate field LOTRCreativeTabs.tabBlock when it's not supposed to
LOTRCreativeTabs tab = (LOTRCreativeTabs)tabField.get(null);
setCreativeTab((CreativeTabs)tab);
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
// Set other properties like hardness, resistance, name, etc. // Set other properties like hardness, resistance, name, etc.
setHardness(2.0F); setHardness(2.0F);
setResistance(5.0F); setResistance(5.0F);

@ -1,5 +1,7 @@
package com.zivilon.cinder_loe.mixins; package com.zivilon.cinder_loe.mixins;
import lotr.common.LOTRMod;
import net.minecraft.block.Block;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
@ -22,47 +24,19 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(LOTRMaterial.class) @Mixin(LOTRMaterial.class)
public abstract class MixinLOTRMaterial { public abstract class MixinLOTRMaterial {
@Shadow
public static LOTRMaterial BRONZE;
@Inject(method = "<clinit>", at = @At("RETURN"))
private static void modifyMaterial(CallbackInfo ci) {
try {
// Get the BRONZE field from LOTRMaterial
Field bronzeField = LOTRMaterial.class.getDeclaredField("BRONZE");
bronzeField.setAccessible(true);
// Get the current BRONZE instance
LOTRMaterial bronze = (LOTRMaterial) bronzeField.get(null);
// Use reflection to set the 'uses' field of the BRONZE instance to 2000
Field usesField = LOTRMaterial.class.getDeclaredField("uses");
usesField.setAccessible(true);
usesField.setInt(bronze, 2000);
// Use reflection to set the 'protection' field of the BRONZE instance to 0.8f
Field protectionField = LOTRMaterial.class.getDeclaredField("protection");
protectionField.setAccessible(true);
float[] protectionValues = (float[]) protectionField.get(null);
int bronzeIndex = LOTRMaterial.allLOTRMaterials.indexOf(bronze);
protectionValues[bronzeIndex] = 0.8f;
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
}
static { static {
try { try {
Class<?> lotrMaterialClass = Class.forName("lotr.common.item.LOTRMaterial"); Class<?> lotrMaterialClass = Class.forName("lotr.common.item.LOTRMaterial");
Field redDwarfSteelField = lotrMaterialClass.getField("RED_DWARF_STEEL"); Field redDwarfSteelField = lotrMaterialClass.getField("RED_DWARF_STEEL");
// Reflection to access and instantiate the private constructor of LOTRMaterial // Reflection to access and instantiate the private constructor of LOTRMaterial
Constructor<?> constructor = lotrMaterialClass.getDeclaredConstructor(String.class); Constructor<?> constructor = lotrMaterialClass.getDeclaredConstructor(String.class);
constructor.setAccessible(true); constructor.setAccessible(true);
Object redDwarfSteelMaterial = constructor.newInstance("RED_DWARF_STEEL"); Object redDwarfSteelMaterial = constructor.newInstance("RED_DWARF_STEEL");
// Reflection to call the private methods on the new instance // Reflection to call the private methods on the new instance
Method setUses = lotrMaterialClass.getDeclaredMethod("setUses", int.class); Method setUses = lotrMaterialClass.getDeclaredMethod("setUses", int.class);
Method setDamage = lotrMaterialClass.getDeclaredMethod("setDamage", float.class); Method setDamage = lotrMaterialClass.getDeclaredMethod("setDamage", float.class);
@ -78,6 +52,7 @@ public abstract class MixinLOTRMaterial {
setSpeed.setAccessible(true); setSpeed.setAccessible(true);
setEnchantability.setAccessible(true); setEnchantability.setAccessible(true);
// Red Dwarf
setUses.invoke(redDwarfSteelMaterial, 700); setUses.invoke(redDwarfSteelMaterial, 700);
setDamage.invoke(redDwarfSteelMaterial, 3.0F); setDamage.invoke(redDwarfSteelMaterial, 3.0F);
setProtection.invoke(redDwarfSteelMaterial, 0.7F); setProtection.invoke(redDwarfSteelMaterial, 0.7F);
@ -85,13 +60,17 @@ public abstract class MixinLOTRMaterial {
setSpeed.invoke(redDwarfSteelMaterial, 7.0F); setSpeed.invoke(redDwarfSteelMaterial, 7.0F);
setEnchantability.invoke(redDwarfSteelMaterial, 10); setEnchantability.invoke(redDwarfSteelMaterial, 10);
// Assuming a public method to set the crafting item exists // Assuming a public method to set the crafting item exists
Method setCraftingItem = lotrMaterialClass.getDeclaredMethod("setCraftingItem", Item.class); Method setCraftingItem = lotrMaterialClass.getDeclaredMethod("setCraftingItem", Item.class);
setCraftingItem.setAccessible(true); setCraftingItem.setAccessible(true);
setCraftingItem.invoke(redDwarfSteelMaterial, CinderLoE.redDwarfSteel); setCraftingItem.invoke(redDwarfSteelMaterial, CinderLoE.redDwarfSteel);
// Now, assign the created and configured LOTRMaterial instance to the static field // Now, assign the created and configured LOTRMaterial instance to the static field
redDwarfSteelField.set(null, redDwarfSteelMaterial); redDwarfSteelField.set(null, redDwarfSteelMaterial);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }

Loading…
Cancel
Save