2
0
Fork 0

Changed uruk berserker cleaver to greatsword

main
Shinare 4 months ago
parent 70a2444c9a
commit 857309c2e4

@ -775,10 +775,10 @@ public class CinderLoE {
linkLOTRWeapon(welfRelic, "welfRelic");
//Great swords idk where to put them
greatswordAngmar = (new LoEGreatSword(LOTRMaterial.ANGMAR, LOTRMod.orcSteel)).addWeaponDamage(1.0f).setUnlocalizedName("lotr:greatswordAngmar").setTextureName("lotr:greatswordAngmar");
greatswordLindon = new LoEGreatSword(LOTRMaterial.HIGH_ELVEN, LOTRMod.elfSteel).addWeaponDamage(1.0f).setIsElvenBlade().setUnlocalizedName("lotr:greatswordLindon").setTextureName("lotr:greatswordLindon");
greatswordDale = (new LoEGreatSword(LOTRMaterial.DALE, Items.iron_ingot)).addWeaponDamage(1.0f).setUnlocalizedName("lotr:greatswordDale").setTextureName("lotr:greatswordDale");
greatswordNumenor = (new LoEGreatSword(LOTRMaterial.BLACK_NUMENOREAN, Items.iron_ingot)).addWeaponDamage(1.0f).setUnlocalizedName("lotr:greatswordNumenor").setTextureName("lotr:greatswordNumenor");
greatswordAngmar = (new LoEGreatSword(LOTRMaterial.ANGMAR, LOTRMod.orcSteel)).setUnlocalizedName("lotr:greatswordAngmar").setTextureName("lotr:greatswordAngmar");
greatswordLindon = new LoEGreatSword(LOTRMaterial.HIGH_ELVEN, LOTRMod.elfSteel).setIsElvenBlade().setUnlocalizedName("lotr:greatswordLindon").setTextureName("lotr:greatswordLindon");
greatswordDale = (new LoEGreatSword(LOTRMaterial.DALE, Items.iron_ingot)).setUnlocalizedName("lotr:greatswordDale").setTextureName("lotr:greatswordDale");
greatswordNumenor = (new LoEGreatSword(LOTRMaterial.BLACK_NUMENOREAN, Items.iron_ingot)).setUnlocalizedName("lotr:greatswordNumenor").setTextureName("lotr:greatswordNumenor");
ItemRegistration.register(greatswordAngmar,"greatswordAngmar",6707);
ItemRegistration.register(greatswordLindon,"greatswordLindon",6708);
@ -1168,7 +1168,7 @@ public class CinderLoE {
bodySunlitWarden = (new LoEArmor(MATERIAL_SUNLIT_WARDEN, 1, LOTRMod.elfSteel)).setUnlocalizedName("lotr:bodySunlitWarden").setTextureName("lotr:bodySunlitWarden");
legsSunlitWarden = (new LoEArmor(MATERIAL_SUNLIT_WARDEN, 2, LOTRMod.elfSteel)).setUnlocalizedName("lotr:legsSunlitWarden").setTextureName("lotr:legsSunlitWarden");
bootsSunlitWarden = (new LoEArmor(MATERIAL_SUNLIT_WARDEN, 3, LOTRMod.elfSteel)).setUnlocalizedName("lotr:bootsSunlitWarden").setTextureName("lotr:bootsSunlitWarden");
greatswordLight = (new LoEGreatSword(MATERIAL_SUNLIT_WARDEN, (Item)LOTRMod.mithril)).addWeaponDamage(1.0f).setIsElvenBlade().setUnlocalizedName("lotr:greatswordLight").setTextureName("lotr:greatswordLight");
greatswordLight = (new LoEGreatSword(MATERIAL_SUNLIT_WARDEN, (Item)LOTRMod.mithril)).setIsElvenBlade().setUnlocalizedName("lotr:greatswordLight").setTextureName("lotr:greatswordLight");
effigyOfWrath = new LOTRItemEnchantment(LOTREnchantment.getEnchantmentByName("wrath")).setUnlocalizedName("lotr:effigy_of_wrath").setTextureName("lotr:effigy_of_wrath").setCreativeTab(LoECreativeTabs.tabMiscLoE);;
ItemRegistration.register(helmetSunlitWarden, "helmetSunlitWarden", 7001);

@ -14,7 +14,7 @@ import java.util.Map;
public class CoreMod implements IFMLLoadingPlugin {
@Override
public String[] getASMTransformerClass() {
return new String[] {"com.zivilon.cinder_loe.coremod.LOTRMaterialTransformer","com.zivilon.cinder_loe.coremod.LOTRWeaponLinker", "com.zivilon.cinder_loe.coremod.LOTRBannerAdder", "com.zivilon.cinder_loe.coremod.LOTRDimensionAdder", "com.zivilon.cinder_loe.coremod.LOTRSpawnListLinker", "com.zivilon.cinder_loe.coremod.OptiFinePatcher"};
return new String[] {"com.zivilon.cinder_loe.coremod.LOTRMaterialTransformer","com.zivilon.cinder_loe.coremod.LOTRWeaponLinker", "com.zivilon.cinder_loe.coremod.LOTRBannerAdder", "com.zivilon.cinder_loe.coremod.LOTRDimensionAdder", "com.zivilon.cinder_loe.coremod.LOTRSpawnListLinker", "com.zivilon.cinder_loe.coremod.OptiFinePatcher", "com.zivilon.cinder_loe.coremod.UrukBerserkerGreatswordPatcher"};
}
@Override

@ -0,0 +1,81 @@
package com.zivilon.cinder_loe.coremod;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassWriter;
import org.objectweb.asm.Opcodes;
import org.objectweb.asm.tree.AbstractInsnNode;
import org.objectweb.asm.tree.ClassNode;
import org.objectweb.asm.tree.FieldInsnNode;
import org.objectweb.asm.tree.FieldNode;
import org.objectweb.asm.tree.InsnList;
import org.objectweb.asm.tree.InsnNode;
import org.objectweb.asm.tree.LdcInsnNode;
import org.objectweb.asm.tree.MethodInsnNode;
import org.objectweb.asm.tree.TypeInsnNode;
import org.objectweb.asm.tree.MethodNode;
import org.objectweb.asm.util.Printer;
import org.objectweb.asm.util.Textifier;
import org.objectweb.asm.util.TraceMethodVisitor;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Iterator;
import net.minecraft.launchwrapper.IClassTransformer;
public class UrukBerserkerGreatswordPatcher implements IClassTransformer {
@Override
public byte[] transform(String name, String transformedName, byte[] basicClass) {
if (!name.equals("lotr.common.LOTRMod")) return basicClass;
ClassReader cr = new ClassReader(basicClass);
ClassNode cn = new ClassNode();
cr.accept(cn, 0);
for (MethodNode mn : cn.methods) {
if (!mn.name.equals("preload")) continue;
AbstractInsnNode insn = mn.instructions.getFirst();
while (insn != null) {
if (insn.getOpcode() == Opcodes.NEW && insn instanceof TypeInsnNode) {
if (((TypeInsnNode) insn).desc.equals("lotr/common/item/LOTRItemSword")) {
AbstractInsnNode search = insn.getNext();
boolean patchThis = false;
while (search != null) {
if (search.getOpcode() == Opcodes.NEW && search != insn) {
break;
}
if (search.getOpcode() == Opcodes.PUTSTATIC && search instanceof FieldInsnNode) {
FieldInsnNode fin = (FieldInsnNode) search;
if (fin.owner.equals("lotr/common/LOTRMod") &&
fin.name.equals("scimitarUrukBerserker")) {
patchThis = true;
break;
}
}
search = search.getNext();
}
if (patchThis) {
((TypeInsnNode) insn).desc = "com/zivilon/cinder_loe/items/LoEGreatSword";
AbstractInsnNode patch = insn.getNext();
while (patch != null) {
if (patch.getOpcode() == Opcodes.INVOKESPECIAL && patch instanceof MethodInsnNode) {
MethodInsnNode mi = (MethodInsnNode) patch;
if (mi.owner.equals("lotr/common/item/LOTRItemSword")) {
mi.owner = "com/zivilon/cinder_loe/items/LoEGreatSword";
break;
}
}
patch = patch.getNext();
}
System.out.println("[UrukBerserkerGreatswordPatcher] Patched the scimitarUrukBerserker sword to LoEGreatSword");
}
}
}
insn = insn.getNext();
}
}
ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES);
cn.accept(cw);
return cw.toByteArray();
}
}

@ -23,6 +23,7 @@ public class LoEGreatSword extends LOTRItemSword {
super(material);
repair_item = item;
setCreativeTab(LoECreativeTabs.tabCombatLoE);
addWeaponDamage(1.0f);
}
public LoEGreatSword setWeaponDamage(float damage) {

Loading…
Cancel
Save