(fix) transformer issue

This commit is contained in:
kirillsaint 2024-05-09 14:42:41 +06:00
parent 3a3b5c05e8
commit 0a30dec288
7 changed files with 48 additions and 26 deletions

View File

@ -93,8 +93,7 @@ jar {
"MixinConfigs": 'mixins.SilentClient.json',
"TweakClass": "net.silentclient.client.mixin.SilentClientTweaker",
"TweakOrder": 0,
"Manifest-Version": 1.0,
'FMLAT': 'silentclient_at.cfg'
"Manifest-Version": 1.0
)
configurations.embed.each { dep ->

View File

@ -1,8 +1,8 @@
package net.silentclient.client.mixin;
import net.minecraft.launchwrapper.IClassTransformer;
import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.MethodVisitor;
import net.silentclient.client.Client;
import org.objectweb.asm.*;
import java.lang.reflect.Modifier;
@ -15,14 +15,14 @@ public class SilentClientTransformer implements IClassTransformer {
return null;
}
// if(transformedName.equals("bfl$e") || transformedName.equals("bfl$r") || transformedName.equals("bnm$a") || transformedName.equals("ajd$a") || transformedName.equals("bha$a")) {
// Client.logger.info("Transforming class: " + transformedName);
// ClassReader classreader = new ClassReader(bytes);
// ClassWriter classwriter = new ClassWriter(1);
// SilentClientTransformer.AccessTransformerVisitor visitor = new SilentClientTransformer.AccessTransformerVisitor(262144, classwriter);
// classreader.accept(visitor, 0);
// return classwriter.toByteArray();
// }
if(transformedName.equals("bfl$e") || transformedName.equals("bfl$r") || transformedName.equals("bnm$a") || transformedName.equals("ajd$a") || transformedName.equals("bha$a") || transformedName.equals("re$a")) {
Client.logger.info("Transforming class: " + transformedName);
ClassReader classreader = new ClassReader(bytes);
ClassWriter classwriter = new ClassWriter(1);
SilentClientTransformer.AccessTransformerVisitor visitor = new AccessTransformerVisitor(262144, classwriter);
classreader.accept(visitor, 0);
return classwriter.toByteArray();
}
return bytes;
}
@ -31,7 +31,7 @@ public class SilentClientTransformer implements IClassTransformer {
return clazz.getName().replace(".", "/");
}
public class AccessTransformerVisitor extends ClassVisitor {
public static class AccessTransformerVisitor extends ClassVisitor {
public AccessTransformerVisitor(int api, ClassVisitor cv) {
super(api, cv);

View File

@ -0,0 +1,5 @@
package net.silentclient.client.mixin.ducks;
public interface EntityLookHelperExt {
Object client$getEntity();
}

View File

@ -0,0 +1,17 @@
package net.silentclient.client.mixin.mixins;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.ai.EntityLookHelper;
import net.silentclient.client.mixin.ducks.EntityLookHelperExt;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
@Mixin(EntityLookHelper.class)
public class EntityLookHelperMixin implements EntityLookHelperExt {
@Shadow private EntityLiving entity;
@Override
public Object client$getEntity() {
return this.entity;
}
}

View File

@ -4,6 +4,7 @@ import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.ai.EntityLookHelper;
import net.minecraft.util.MathHelper;
import net.silentclient.client.mixin.accessors.EntityLookHelperAccessor;
import net.silentclient.client.mixin.ducks.EntityLookHelperExt;
/**
* Created by Dark on 7/20/2015.
@ -17,27 +18,27 @@ public class FixedEntityLookHelper extends EntityLookHelper
@Override
public void onUpdateLook() {
this.entity.rotationPitch = 0.0f;
((EntityLiving) ((EntityLookHelperExt) this).client$getEntity()).rotationPitch = 0.0f;
if (((EntityLookHelperAccessor)((Object)this)).isLooking()) {
((EntityLookHelperAccessor)((Object)this)).setLooking(false);
double d0 = ((EntityLookHelperAccessor)((Object)this)).getPosX() - this.entity.posX;
double d1 = ((EntityLookHelperAccessor)((Object)this)).getPosY() - (this.entity.posY + (double)this.entity.getEyeHeight());
double d2 = ((EntityLookHelperAccessor)((Object)this)).getPosZ() - this.entity.posZ;
double d0 = ((EntityLookHelperAccessor)((Object)this)).getPosX() - ((EntityLiving) ((EntityLookHelperExt) this).client$getEntity()).posX;
double d1 = ((EntityLookHelperAccessor)((Object)this)).getPosY() - (((EntityLiving) ((EntityLookHelperExt) this).client$getEntity()).posY + (double)((EntityLiving) ((EntityLookHelperExt) this).client$getEntity()).getEyeHeight());
double d2 = ((EntityLookHelperAccessor)((Object)this)).getPosZ() - ((EntityLiving) ((EntityLookHelperExt) this).client$getEntity()).posZ;
double d3 = MathHelper.sqrt_double(d0 * d0 + d2 * d2);
float f = (float)((double)FixedEntityLookHelper.tan(d2, d0) * 180.0 / Math.PI) - 90.0f;
float f1 = (float)(-((double)FixedEntityLookHelper.tan(d1, d3) * 180.0 / Math.PI));
this.entity.rotationPitch = this.updateRotation(this.entity.rotationPitch, f1, ((EntityLookHelperAccessor)((Object)this)).getDeltaLookPitch());
this.entity.rotationYawHead = this.updateRotation(this.entity.rotationYawHead, f, ((EntityLookHelperAccessor)((Object)this)).getDeltaLookYaw());
((EntityLiving) ((EntityLookHelperExt) this).client$getEntity()).rotationPitch = this.updateRotation(((EntityLiving) ((EntityLookHelperExt) this).client$getEntity()).rotationPitch, f1, ((EntityLookHelperAccessor)((Object)this)).getDeltaLookPitch());
((EntityLiving) ((EntityLookHelperExt) this).client$getEntity()).rotationYawHead = this.updateRotation(((EntityLiving) ((EntityLookHelperExt) this).client$getEntity()).rotationYawHead, f, ((EntityLookHelperAccessor)((Object)this)).getDeltaLookYaw());
} else {
this.entity.rotationYawHead = this.updateRotation(this.entity.rotationYawHead, this.entity.renderYawOffset, 10.0f);
((EntityLiving) ((EntityLookHelperExt) this).client$getEntity()).rotationYawHead = this.updateRotation(((EntityLiving) ((EntityLookHelperExt) this).client$getEntity()).rotationYawHead, ((EntityLiving) ((EntityLookHelperExt) this).client$getEntity()).renderYawOffset, 10.0f);
}
float f2 = MathHelper.wrapAngleTo180_float(this.entity.rotationYawHead - this.entity.renderYawOffset);
if (!this.entity.getNavigator().noPath()) {
float f2 = MathHelper.wrapAngleTo180_float(((EntityLiving) ((EntityLookHelperExt) this).client$getEntity()).rotationYawHead - ((EntityLiving) ((EntityLookHelperExt) this).client$getEntity()).renderYawOffset);
if (!((EntityLiving) ((EntityLookHelperExt) this).client$getEntity()).getNavigator().noPath()) {
if (f2 < -75.0f) {
this.entity.rotationYawHead = this.entity.renderYawOffset - 75.0f;
((EntityLiving) ((EntityLookHelperExt) this).client$getEntity()).rotationYawHead = ((EntityLiving) ((EntityLookHelperExt) this).client$getEntity()).renderYawOffset - 75.0f;
}
if (f2 > 75.0f) {
this.entity.rotationYawHead = this.entity.renderYawOffset + 75.0f;
((EntityLiving) ((EntityLookHelperExt) this).client$getEntity()).rotationYawHead = ((EntityLiving) ((EntityLookHelperExt) this).client$getEntity()).renderYawOffset + 75.0f;
}
}
}

View File

@ -38,6 +38,7 @@
"mixins.EntityFXMixin",
"mixins.EntityLivingBaseMixin",
"mixins.EntityLivingMixin",
"mixins.EntityLookHelperMixin",
"mixins.EntityMixin",
"mixins.EntityOtherPlayerMPMixin",
"mixins.EntityPacketsMixin",

View File

@ -14,4 +14,3 @@ public net.minecraft.block.BlockRedstoneTorch$Toggle
# EntityAITasks
public net.minecraft.entity.ai.EntityAITasks$EntityAITaskEntry
public net.minecraft.entity.ai.EntityLookHelper field_75659_a #EntityLiving entity;