Skip to content

Commit a1c2c20

Browse files
committed
Improve Far Lands patch
Closes #18, #16
1 parent aff170b commit a1c2c20

2 files changed

Lines changed: 14 additions & 6 deletions

File tree

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ apply plugin: 'net.minecraftforge.gradle.forge'
1111
//Only edit below this line, the above code adds and enables the necessary things for Forge to be setup.
1212

1313

14-
version = "2.1"
14+
version = "2.1.1"
1515
group = "com.thistestuser.farlands" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
1616
archivesBaseName = "farlands"
1717

src/main/java/com/thistestuser/farlands/FarLandsTransformer.java

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,21 @@ public byte[] patchClassASMOcto(String name, byte[] classBytes, boolean obfuscat
6767
boolean pass = false;
6868
for(MethodNode method : classNode.methods)
6969
if(method.desc.equals("([DIIIIIIDDD)[D"))
70-
for(AbstractInsnNode ain : method.instructions.toArray())
71-
if(ain.getOpcode() == Opcodes.LDC
72-
&& ((LdcInsnNode)ain).cst instanceof Long && (Long)((LdcInsnNode)ain).cst == 16777216L)
70+
{
71+
AbstractInsnNode[] insns = method.instructions.toArray();
72+
for(int i = 0; i < insns.length; i++)
73+
{
74+
AbstractInsnNode ain = insns[i];
75+
if(ain.getOpcode() == Opcodes.LDC
76+
&& ((LdcInsnNode)ain).cst instanceof Long && (Long)((LdcInsnNode)ain).cst == 16777216L
77+
&& ain.getNext() != null && ain.getNext().getOpcode() == Opcodes.LREM)
7378
{
74-
((LdcInsnNode)ain).cst = Long.MAX_VALUE;
75-
pass = true;
79+
method.instructions.remove(ain.getNext());
80+
method.instructions.remove(ain);
81+
pass = true;
7682
}
83+
}
84+
}
7785
if(pass)
7886
LogManager.getLogger().info("[FarLands] Noise generator patched successfully!");
7987

0 commit comments

Comments
 (0)