diff --git a/build.gradle b/build.gradle deleted file mode 100644 index c93c5aa..0000000 --- a/build.gradle +++ /dev/null @@ -1,132 +0,0 @@ -buildscript { - repositories { - mavenCentral() - maven { url 'https://plugins.gradle.org/m2/' } - maven { - name = "forge" - url = "http://files.minecraftforge.net/maven" - } - maven { - url 'https://repo.spongepowered.org/maven' - } - } - dependencies { - classpath 'net.minecraftforge.gradle:ForgeGradle:2.1-SNAPSHOT' - classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.1' - classpath 'org.spongepowered:mixingradle:0.6-SNAPSHOT' - } -} - -apply plugin: 'com.github.johnrengelman.shadow' -apply plugin: 'net.minecraftforge.gradle.forge' -apply plugin: 'org.spongepowered.mixin' -apply plugin: 'java' - -group = "keystrokesmod" -archivesBaseName = "raven-bS" - -compileJava { - sourceCompatibility = '1.8' - targetCompatibility = '1.8' - options.encoding 'UTF-8' -} - -minecraft { - version = "1.8.9-11.15.1.2318-1.8.9" - runDir = "run" - - mappings = "stable_22" - makeObfSourceJar = false - clientJvmArgs += '-Dfml.coreMods.load=keystrokesmod.mixins.MixinLoader' -} - -mixin { - defaultObfuscationEnv searge - sourceSets { - main { - ext.refMap = 'mixins.raven.refmap.json' - } - } -} - -repositories { - mavenCentral() - maven { - url 'https://repo.spongepowered.org/maven' - } -} - -configurations { - embed - compile.extendsFrom embed -} - -dependencies { - implementation group: 'commons-io', name: 'commons-io', version: '2.11.0' - embed('org.spongepowered:mixin:0.6-SNAPSHOT') { - exclude module: 'gson' - exclude module: 'guava' - exclude module: 'jarjar' - exclude module: 'commons-codec' - exclude module: 'commons-io' - exclude module: 'launchwrapper' - exclude module: 'asm-commons' - exclude module: 'slf4j-api' - } - implementation 'org.jetbrains:annotations:24.1.0' -} - -processResources { - inputs.property "version", project.version - inputs.property "mcversion", project.minecraft.version - - from(sourceSets.main.resources.srcDirs) { - include 'mcmod.info' - - expand 'version': project.version, 'mcversion': project.minecraft.version - } - - from(sourceSets.main.resources.srcDirs) { - exclude 'mcmod.info' - } -} - -jar { - from(configurations.embed.collect { - it.isDirectory() ? it : zipTree(it) - }) { - exclude 'dummyThing', - 'LICENSE.txt', - 'META-INF/MUMFREY.RSA', - 'META-INF/maven/**', - 'org/**/*.html' - exclude 'LICENSE.md' - exclude 'pack.mcmeta' - exclude '**/module-info.class' - exclude '*.so' - exclude '*.dylib' - exclude '*.dll' - exclude '*.jnilib' - exclude 'ibxm/**' - exclude 'com/jcraft/**' - exclude 'org/lwjgl/**' - exclude 'net/java/**' - - exclude 'META-INF/proguard/**' - exclude 'META-INF/versions/**' - exclude 'META-INF/com.android.tools/**' - - exclude 'fabric.mod.json' - } - manifest { - attributes( - 'MixinConfigs': 'mixins.raven.json', - 'TweakClass': 'org.spongepowered.asm.launch.MixinTweaker', - 'TweakOrder': 0, - "FMLCorePlugin": "keystrokesmod.mixins.MixinLoader", - "ForceLoadAsMod": true, - 'FMLCorePluginContainsFMLMod': true, - "ModSide": "CLIENT" - ) - } -} \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 13b4b2c..db55676 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.7-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip \ No newline at end of file diff --git a/src/main/java/keystrokesmod/Raven.java b/src/main/java/keystrokesmod/Raven.java index 7d728b9..42e6e59 100644 --- a/src/main/java/keystrokesmod/Raven.java +++ b/src/main/java/keystrokesmod/Raven.java @@ -1,5 +1,6 @@ package keystrokesmod; +import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; @@ -19,6 +20,7 @@ import keystrokesmod.utility.profile.Profile; import keystrokesmod.utility.profile.ProfileManager; import net.minecraft.client.Minecraft; import net.minecraftforge.client.ClientCommandHandler; +import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.EntityJoinWorldEvent; import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.Mod; @@ -39,7 +41,8 @@ public class Raven { public static Minecraft mc = Minecraft.getMinecraft(); private static KeySrokeRenderer keySrokeRenderer; private static boolean isKeyStrokeConfigGuiToggled; - private static final ScheduledExecutorService ex = Executors.newScheduledThreadPool(2); + private static final ScheduledExecutorService scheduledExecutor = Executors.newScheduledThreadPool(2); + private static final ExecutorService cachedExecutor = Executors.newCachedThreadPool(); public static ModuleManager moduleManager; public static ClickGui clickGui; public static ProfileManager profileManager; @@ -55,18 +58,18 @@ public class Raven { @EventHandler public void init(FMLInitializationEvent e) { - Runtime.getRuntime().addShutdownHook(new Thread(ex::shutdown)); + Runtime.getRuntime().addShutdownHook(new Thread(scheduledExecutor::shutdown)); + Runtime.getRuntime().addShutdownHook(new Thread(cachedExecutor::shutdown)); ClientCommandHandler.instance.registerCommand(new keystrokeCommand()); - FMLCommonHandler.instance().bus().register(this); - FMLCommonHandler.instance().bus().register(new DebugInfoRenderer()); - FMLCommonHandler.instance().bus().register(new CPSCalculator()); - FMLCommonHandler.instance().bus().register(new MovementFix(mc)); - FMLCommonHandler.instance().bus().register(new KeySrokeRenderer()); - FMLCommonHandler.instance().bus().register(new Ping()); - FMLCommonHandler.instance().bus().register(packetsHandler = new PacketsHandler()); - FMLCommonHandler.instance().bus().register(new ModuleUtils(mc)); + MinecraftForge.EVENT_BUS.register(this); + MinecraftForge.EVENT_BUS.register(new DebugInfoRenderer()); + MinecraftForge.EVENT_BUS.register(new CPSCalculator()); + MinecraftForge.EVENT_BUS.register(new MovementFix(mc)); + MinecraftForge.EVENT_BUS.register(new KeySrokeRenderer()); + MinecraftForge.EVENT_BUS.register(new Ping()); + MinecraftForge.EVENT_BUS.register(packetsHandler = new PacketsHandler()); + MinecraftForge.EVENT_BUS.register(new ModuleUtils(mc)); Reflection.getFields(); - Reflection.getMethods(); moduleManager.register(); scriptManager = new ScriptManager(); keySrokeRenderer = new KeySrokeRenderer(); @@ -76,8 +79,8 @@ public class Raven { profileManager.loadProfiles(); profileManager.loadProfile("default"); Reflection.setKeyBindings(); - FMLCommonHandler.instance().bus().register(ModuleManager.scaffold); - FMLCommonHandler.instance().bus().register(ModuleManager.tower); + MinecraftForge.EVENT_BUS.register(ModuleManager.scaffold); + MinecraftForge.EVENT_BUS.register(ModuleManager.tower); commandManager = new CommandManager(); } @@ -139,8 +142,12 @@ public class Raven { return moduleManager; } - public static ScheduledExecutorService getExecutor() { - return ex; + public static ScheduledExecutorService getScheduledExecutor() { + return scheduledExecutor; + } + + public static ExecutorService getCachedExecutor() { + return cachedExecutor; } public static KeySrokeRenderer getKeyStrokeRenderer() { diff --git a/src/main/java/keystrokesmod/clickgui/ClickGui.java b/src/main/java/keystrokesmod/clickgui/ClickGui.java index af00fbc..f9495f7 100644 --- a/src/main/java/keystrokesmod/clickgui/ClickGui.java +++ b/src/main/java/keystrokesmod/clickgui/ClickGui.java @@ -64,7 +64,7 @@ public class ClickGui extends GuiScreen { public void initMain() { (this.logoSmoothWidth = this.smoothEntity = this.blurSmooth = this.backgroundFade = new Timer(500.0F)).start(); - this.sf = Raven.getExecutor().schedule(() -> { + this.sf = Raven.getScheduledExecutor().schedule(() -> { (this.logoSmoothLength = new Timer(650.0F)).start(); }, 650L, TimeUnit.MILLISECONDS); } diff --git a/src/main/java/keystrokesmod/event/AllPacketsEvent.java b/src/main/java/keystrokesmod/event/NoEventPacketEvent.java similarity index 72% rename from src/main/java/keystrokesmod/event/AllPacketsEvent.java rename to src/main/java/keystrokesmod/event/NoEventPacketEvent.java index 4eb872f..0f37de0 100644 --- a/src/main/java/keystrokesmod/event/AllPacketsEvent.java +++ b/src/main/java/keystrokesmod/event/NoEventPacketEvent.java @@ -3,10 +3,10 @@ package keystrokesmod.event; import net.minecraft.network.Packet; import net.minecraftforge.fml.common.eventhandler.Event; -public class AllPacketsEvent extends Event { +public class NoEventPacketEvent extends Event { private Packet packet; - public AllPacketsEvent(Packet packet) { + public NoEventPacketEvent(Packet packet) { this.packet = packet; } diff --git a/src/main/java/keystrokesmod/event/PreMotionEvent.java b/src/main/java/keystrokesmod/event/PreMotionEvent.java index 84e2dd2..2888b46 100644 --- a/src/main/java/keystrokesmod/event/PreMotionEvent.java +++ b/src/main/java/keystrokesmod/event/PreMotionEvent.java @@ -68,6 +68,11 @@ public class PreMotionEvent extends Event { setRotations = true; } + public void setYawSilent(float yaw) { + this.yaw = yaw; + setRotations = true; + } + public void setPitch(float pitch) { this.pitch = pitch; setRotations = true; @@ -81,9 +86,10 @@ public class PreMotionEvent extends Event { return setRenderYaw; } - public void setRenderYaw(boolean setRenderYaw) { - this.setRenderYaw = setRenderYaw; + public static void setRenderYaw(boolean setYaw) { + setRenderYaw = setYaw; } + public boolean isSprinting() { return isSprinting; } @@ -103,4 +109,4 @@ public class PreMotionEvent extends Event { public boolean isEquals(PlayerState e) { return e.x == this.posX && e.y == this.posY && e.z == this.posZ && e.yaw == this.yaw && e.pitch == this.pitch && e.onGround == this.onGround && e.isSprinting == this.isSprinting && e.isSneaking == this.isSneaking; } -} +} \ No newline at end of file diff --git a/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorEntityArrow.java b/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorEntityArrow.java new file mode 100644 index 0000000..139de3e --- /dev/null +++ b/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorEntityArrow.java @@ -0,0 +1,11 @@ +package keystrokesmod.mixin.impl.accessor; + +import net.minecraft.entity.projectile.EntityArrow; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(EntityArrow.class) +public interface IAccessorEntityArrow { + @Accessor("inGround") + boolean getInGround(); +} diff --git a/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorEntityLivingBase.java b/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorEntityLivingBase.java new file mode 100644 index 0000000..89e0c63 --- /dev/null +++ b/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorEntityLivingBase.java @@ -0,0 +1,14 @@ +package keystrokesmod.mixin.impl.accessor; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@SideOnly(Side.CLIENT) +@Mixin(EntityLivingBase.class) +public interface IAccessorEntityLivingBase { + @Accessor("jumpTicks") + void setJumpTicks(int ticks); +} diff --git a/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorEntityPlayer.java b/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorEntityPlayer.java new file mode 100644 index 0000000..ad2463b --- /dev/null +++ b/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorEntityPlayer.java @@ -0,0 +1,14 @@ +package keystrokesmod.mixin.impl.accessor; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@SideOnly(Side.CLIENT) +@Mixin(EntityPlayer.class) +public interface IAccessorEntityPlayer { + @Accessor("itemInUseCount") + void setItemInUseCount(int count); +} diff --git a/src/main/java/keystrokesmod/mixins/impl/entity/IAccessorEntityPlayerSP.java b/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorEntityPlayerSP.java similarity index 92% rename from src/main/java/keystrokesmod/mixins/impl/entity/IAccessorEntityPlayerSP.java rename to src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorEntityPlayerSP.java index ae43680..f9feba9 100644 --- a/src/main/java/keystrokesmod/mixins/impl/entity/IAccessorEntityPlayerSP.java +++ b/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorEntityPlayerSP.java @@ -1,4 +1,4 @@ -package keystrokesmod.mixins.impl.entity; +package keystrokesmod.mixin.impl.accessor; import net.minecraftforge.fml.relauncher.*; import org.spongepowered.asm.mixin.*; @@ -8,7 +8,6 @@ import org.spongepowered.asm.mixin.gen.*; @SideOnly(Side.CLIENT) @Mixin(EntityPlayerSP.class) public interface IAccessorEntityPlayerSP { - @Accessor("lastReportedPosX") double getLastReportedPosX(); @@ -20,5 +19,4 @@ public interface IAccessorEntityPlayerSP { @Accessor("lastReportedYaw") float getLastReportedYaw(); - } \ No newline at end of file diff --git a/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorEntityRenderer.java b/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorEntityRenderer.java new file mode 100644 index 0000000..6291ceb --- /dev/null +++ b/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorEntityRenderer.java @@ -0,0 +1,37 @@ +package keystrokesmod.mixin.impl.accessor; + +import net.minecraft.client.renderer.EntityRenderer; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; +import org.spongepowered.asm.mixin.gen.Invoker; + +@SideOnly(Side.CLIENT) +@Mixin(EntityRenderer.class) +public interface IAccessorEntityRenderer { + @Invoker("setupCameraTransform") + void callSetupCameraTransform(float partialTicks, int pass); + + @Invoker("loadShader") + void callLoadShader(ResourceLocation resourceLocationIn); + + @Accessor("shaderResourceLocations") + ResourceLocation[] getShaderResourceLocations(); + + @Accessor("useShader") + boolean getUseShader(); + + @Accessor("useShader") + void setUseShader(boolean useShader); + + @Accessor("shaderIndex") + int getShaderIndex(); + + @Accessor("shaderIndex") + void setShaderIndex(int index); + + @Accessor("thirdPersonDistance") + void setThirdPersonDistance(float distance); +} \ No newline at end of file diff --git a/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorGuiIngame.java b/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorGuiIngame.java new file mode 100644 index 0000000..39961c7 --- /dev/null +++ b/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorGuiIngame.java @@ -0,0 +1,20 @@ +package keystrokesmod.mixin.impl.accessor; + +import net.minecraft.client.gui.GuiIngame; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@SideOnly(Side.CLIENT) +@Mixin(GuiIngame.class) +public interface IAccessorGuiIngame { + @Accessor("recordPlaying") + String getRecordPlaying(); + + @Accessor("displayedTitle") + String getDisplayedTitle(); + + @Accessor("displayedSubTitle") + String getDisplayedSubTitle(); +} diff --git a/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorGuiPlayerTabOverlay.java b/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorGuiPlayerTabOverlay.java new file mode 100644 index 0000000..e45721e --- /dev/null +++ b/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorGuiPlayerTabOverlay.java @@ -0,0 +1,18 @@ +package keystrokesmod.mixin.impl.accessor; + +import net.minecraft.client.gui.GuiPlayerTabOverlay; +import net.minecraft.util.IChatComponent; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@SideOnly(Side.CLIENT) +@Mixin(GuiPlayerTabOverlay.class) +public interface IAccessorGuiPlayerTabOverlay { + @Accessor("header") + IChatComponent getHeader(); + + @Accessor("footer") + IChatComponent getFooter(); +} diff --git a/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorGuiScreenBook.java b/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorGuiScreenBook.java new file mode 100644 index 0000000..ff6c30d --- /dev/null +++ b/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorGuiScreenBook.java @@ -0,0 +1,14 @@ +package keystrokesmod.mixin.impl.accessor; + +import net.minecraft.client.gui.GuiScreenBook; +import net.minecraft.util.IChatComponent; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +import java.util.List; + +@Mixin(GuiScreenBook.class) +public interface IAccessorGuiScreenBook { + @Accessor("field_175386_A") + List getBookContents(); +} diff --git a/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorItemFood.java b/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorItemFood.java new file mode 100644 index 0000000..729b839 --- /dev/null +++ b/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorItemFood.java @@ -0,0 +1,14 @@ +package keystrokesmod.mixin.impl.accessor; + +import net.minecraft.item.ItemFood; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@SideOnly(Side.CLIENT) +@Mixin(ItemFood.class) +public interface IAccessorItemFood { + @Accessor("alwaysEdible") + boolean getAlwaysEdible(); +} diff --git a/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorMinecraft.java b/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorMinecraft.java new file mode 100644 index 0000000..7d2d58a --- /dev/null +++ b/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorMinecraft.java @@ -0,0 +1,31 @@ +package keystrokesmod.mixin.impl.accessor; + +import net.minecraft.client.Minecraft; +import net.minecraft.util.Timer; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; +import org.spongepowered.asm.mixin.gen.Invoker; + +@SideOnly(Side.CLIENT) +@Mixin(Minecraft.class) +public interface IAccessorMinecraft { + @Accessor("timer") + Timer getTimer(); + + @Accessor("rightClickDelayTimer") + int getRightClickDelayTimer(); + + @Accessor("rightClickDelayTimer") + void setRightClickDelayTimer(int delay); + + @Accessor("leftClickCounter") + void setLeftClickCounter(int delay); + + @Invoker("rightClickMouse") + void callRightClickMouse(); + + @Invoker("clickMouse") + void callClickMouse(); +} \ No newline at end of file diff --git a/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorPlayerControllerMP.java b/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorPlayerControllerMP.java new file mode 100644 index 0000000..fd19770 --- /dev/null +++ b/src/main/java/keystrokesmod/mixin/impl/accessor/IAccessorPlayerControllerMP.java @@ -0,0 +1,22 @@ +package keystrokesmod.mixin.impl.accessor; + +import net.minecraftforge.fml.relauncher.*; +import org.spongepowered.asm.mixin.*; +import net.minecraft.client.multiplayer.*; +import org.spongepowered.asm.mixin.gen.*; + +@SideOnly(Side.CLIENT) +@Mixin(PlayerControllerMP.class) +public interface IAccessorPlayerControllerMP { + @Accessor + float getCurBlockDamageMP(); + + @Accessor + void setCurBlockDamageMP(float damage); + + @Accessor + int getBlockHitDelay(); + + @Accessor + void setBlockHitDelay(int delay); +} diff --git a/src/main/java/keystrokesmod/mixins/impl/client/MixinMinecraft.java b/src/main/java/keystrokesmod/mixin/impl/client/MixinMinecraft.java similarity index 96% rename from src/main/java/keystrokesmod/mixins/impl/client/MixinMinecraft.java rename to src/main/java/keystrokesmod/mixin/impl/client/MixinMinecraft.java index 99f9bec..3d6da81 100644 --- a/src/main/java/keystrokesmod/mixins/impl/client/MixinMinecraft.java +++ b/src/main/java/keystrokesmod/mixin/impl/client/MixinMinecraft.java @@ -1,4 +1,4 @@ -package keystrokesmod.mixins.impl.client; +package keystrokesmod.mixin.impl.client; import keystrokesmod.event.GuiUpdateEvent; import keystrokesmod.event.PreInputEvent; diff --git a/src/main/java/keystrokesmod/mixins/impl/client/MixinMovementInputFromOptions.java b/src/main/java/keystrokesmod/mixin/impl/client/MixinMovementInputFromOptions.java similarity index 97% rename from src/main/java/keystrokesmod/mixins/impl/client/MixinMovementInputFromOptions.java rename to src/main/java/keystrokesmod/mixin/impl/client/MixinMovementInputFromOptions.java index 56915dd..3f80b69 100644 --- a/src/main/java/keystrokesmod/mixins/impl/client/MixinMovementInputFromOptions.java +++ b/src/main/java/keystrokesmod/mixin/impl/client/MixinMovementInputFromOptions.java @@ -1,4 +1,4 @@ -package keystrokesmod.mixins.impl.client; +package keystrokesmod.mixin.impl.client; import keystrokesmod.event.PostPlayerInputEvent; import keystrokesmod.event.PrePlayerInputEvent; diff --git a/src/main/java/keystrokesmod/mixins/impl/client/MixinWorld.java b/src/main/java/keystrokesmod/mixin/impl/client/MixinWorld.java similarity index 60% rename from src/main/java/keystrokesmod/mixins/impl/client/MixinWorld.java rename to src/main/java/keystrokesmod/mixin/impl/client/MixinWorld.java index cae9fc3..51eaf78 100644 --- a/src/main/java/keystrokesmod/mixins/impl/client/MixinWorld.java +++ b/src/main/java/keystrokesmod/mixin/impl/client/MixinWorld.java @@ -1,17 +1,25 @@ -package keystrokesmod.mixins.impl.client; +package keystrokesmod.mixin.impl.client; import keystrokesmod.module.ModuleManager; +import net.minecraft.util.MathHelper; import net.minecraft.world.World; +import net.minecraft.world.storage.WorldInfo; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; +import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.Redirect; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @SideOnly(Side.CLIENT) @Mixin(World.class) public class MixinWorld { + @Shadow + @Final + public boolean isRemote; @Inject(method = "getThunderStrength", at = @At("RETURN"), cancellable = true) public void setThunderStrength(CallbackInfoReturnable clr) { @@ -26,4 +34,12 @@ public class MixinWorld { clr.setReturnValue(1F); } } + + @Redirect(method = {"getMoonPhase", "getCelestialAngle"}, at = @At(value = "INVOKE", target = "Lnet/minecraft/world/storage/WorldInfo;getWorldTime()J")) + private long setTimeForMoonPhase(WorldInfo worldInfo) { + if (ModuleManager.weather != null && ModuleManager.weather.isEnabled()) { + return (long) MathHelper.clamp_double((ModuleManager.weather.time.getInput() * 1000), 0, 23999); + } + return worldInfo.getWorldTime(); + } } \ No newline at end of file diff --git a/src/main/java/keystrokesmod/mixins/impl/client/MixinWorldInfo.java b/src/main/java/keystrokesmod/mixin/impl/client/MixinWorldInfo.java similarity index 62% rename from src/main/java/keystrokesmod/mixins/impl/client/MixinWorldInfo.java rename to src/main/java/keystrokesmod/mixin/impl/client/MixinWorldInfo.java index b00361b..a042338 100644 --- a/src/main/java/keystrokesmod/mixins/impl/client/MixinWorldInfo.java +++ b/src/main/java/keystrokesmod/mixin/impl/client/MixinWorldInfo.java @@ -1,26 +1,17 @@ -package keystrokesmod.mixins.impl.client; +package keystrokesmod.mixin.impl.client; import keystrokesmod.module.ModuleManager; import net.minecraft.world.storage.WorldInfo; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Overwrite; -import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +@SideOnly(Side.CLIENT) @Mixin(WorldInfo.class) public abstract class MixinWorldInfo { - @Shadow - private long worldTime; - - @Overwrite - public long getWorldTime() { - if (ModuleManager.weather != null && ModuleManager.weather.isEnabled()) { - return (long) (ModuleManager.weather.time.getInput() * 1000); - } - return worldTime; - } @Inject(method = "isRaining", at = @At("RETURN"), cancellable = true) private void setPrecipitation(CallbackInfoReturnable clr) { diff --git a/src/main/java/keystrokesmod/mixins/impl/entity/MixinEntity.java b/src/main/java/keystrokesmod/mixin/impl/entity/MixinEntity.java similarity index 96% rename from src/main/java/keystrokesmod/mixins/impl/entity/MixinEntity.java rename to src/main/java/keystrokesmod/mixin/impl/entity/MixinEntity.java index 2b78ac0..2fc21e7 100644 --- a/src/main/java/keystrokesmod/mixins/impl/entity/MixinEntity.java +++ b/src/main/java/keystrokesmod/mixin/impl/entity/MixinEntity.java @@ -1,9 +1,8 @@ -package keystrokesmod.mixins.impl.entity; +package keystrokesmod.mixin.impl.entity; import keystrokesmod.event.StrafeEvent; import keystrokesmod.module.ModuleManager; import keystrokesmod.module.impl.player.Safewalk; -import keystrokesmod.utility.*; import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import net.minecraft.util.MathHelper; diff --git a/src/main/java/keystrokesmod/mixins/impl/entity/MixinEntityLivingBase.java b/src/main/java/keystrokesmod/mixin/impl/entity/MixinEntityLivingBase.java similarity index 97% rename from src/main/java/keystrokesmod/mixins/impl/entity/MixinEntityLivingBase.java rename to src/main/java/keystrokesmod/mixin/impl/entity/MixinEntityLivingBase.java index bfecb71..7648219 100644 --- a/src/main/java/keystrokesmod/mixins/impl/entity/MixinEntityLivingBase.java +++ b/src/main/java/keystrokesmod/mixin/impl/entity/MixinEntityLivingBase.java @@ -1,4 +1,4 @@ -package keystrokesmod.mixins.impl.entity; +package keystrokesmod.mixin.impl.entity; import com.google.common.collect.Maps; import keystrokesmod.event.JumpEvent; @@ -50,7 +50,7 @@ public abstract class MixinEntityLivingBase extends Entity { @Shadow public float swingProgress; - @Inject(method = "func_110146_f", at = @At("HEAD"), cancellable = true) + @Inject(method = { "updateDistance", "func_110146_f" }, at = @At("HEAD"), cancellable = true) protected void injectFunc110146_f(float p_110146_1_, float p_110146_2_, CallbackInfoReturnable cir) { float rotationYaw = this.rotationYaw; if (Settings.fullBody != null && Settings.rotateBody != null && !Settings.fullBody.isToggled() && Settings.rotateBody.isToggled() && (EntityLivingBase) (Object) this instanceof EntityPlayerSP) { diff --git a/src/main/java/keystrokesmod/mixin/impl/entity/MixinEntityPlayer.java b/src/main/java/keystrokesmod/mixin/impl/entity/MixinEntityPlayer.java new file mode 100644 index 0000000..6b486ac --- /dev/null +++ b/src/main/java/keystrokesmod/mixin/impl/entity/MixinEntityPlayer.java @@ -0,0 +1,177 @@ +package keystrokesmod.mixin.impl.entity; + +import keystrokesmod.module.ModuleManager; +import keystrokesmod.module.impl.combat.Reduce; +import keystrokesmod.module.impl.movement.KeepSprint; +import net.minecraft.client.Minecraft; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.*; +import net.minecraft.entity.boss.EntityDragonPart; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.ItemStack; +import net.minecraft.network.play.server.S12PacketEntityVelocity; +import net.minecraft.potion.Potion; +import net.minecraft.stats.AchievementList; +import net.minecraft.stats.StatBase; +import net.minecraft.stats.StatList; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeHooks; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(EntityPlayer.class) +public abstract class MixinEntityPlayer extends EntityLivingBase { + public MixinEntityPlayer(World p_i1594_1_) { + super(p_i1594_1_); + } + + @Shadow + public abstract ItemStack getHeldItem(); + + @Shadow + public abstract void onCriticalHit(Entity p_onCriticalHit_1_); + + @Shadow + public abstract void onEnchantmentCritical(Entity p_onEnchantmentCritical_1_); + + @Shadow + public abstract void triggerAchievement(StatBase p_triggerAchievement_1_); + + @Shadow + public abstract ItemStack getCurrentEquippedItem(); + + @Shadow + public abstract void destroyCurrentEquippedItem(); + + @Shadow + public abstract void addStat(StatBase p_addStat_1_, int p_addStat_2_); + + @Shadow + public abstract void addExhaustion(float p_addExhaustion_1_); + + @Overwrite + public void attackTargetEntityWithCurrentItem(Entity p_attackTargetEntityWithCurrentItem_1_) { + if (ForgeHooks.onPlayerAttackTarget(((EntityPlayer) (Object) this), p_attackTargetEntityWithCurrentItem_1_)) { + if (p_attackTargetEntityWithCurrentItem_1_.canAttackWithItem() && !p_attackTargetEntityWithCurrentItem_1_.hitByEntity(this)) { + float f = (float) this.getEntityAttribute(SharedMonsterAttributes.attackDamage).getAttributeValue(); + int i = 0; + float f1 = 0.0F; + if (p_attackTargetEntityWithCurrentItem_1_ instanceof EntityLivingBase) { + f1 = EnchantmentHelper.getModifierForCreature(this.getHeldItem(), ((EntityLivingBase) p_attackTargetEntityWithCurrentItem_1_).getCreatureAttribute()); + } else { + f1 = EnchantmentHelper.getModifierForCreature(this.getHeldItem(), EnumCreatureAttribute.UNDEFINED); + } + + i += EnchantmentHelper.getKnockbackModifier(this); + if (this.isSprinting()) { + ++i; + } + + if (f > 0.0F || f1 > 0.0F) { + boolean flag = this.fallDistance > 0.0F && !this.onGround && !this.isOnLadder() && !this.isInWater() && !this.isPotionActive(Potion.blindness) && this.ridingEntity == null && p_attackTargetEntityWithCurrentItem_1_ instanceof EntityLivingBase; + if (flag && f > 0.0F) { + f *= 1.5F; + } + + f += f1; + boolean flag1 = false; + int j = EnchantmentHelper.getFireAspectModifier(this); + if (p_attackTargetEntityWithCurrentItem_1_ instanceof EntityLivingBase && j > 0 && !p_attackTargetEntityWithCurrentItem_1_.isBurning()) { + flag1 = true; + p_attackTargetEntityWithCurrentItem_1_.setFire(1); + } + + double d0 = p_attackTargetEntityWithCurrentItem_1_.motionX; + double d1 = p_attackTargetEntityWithCurrentItem_1_.motionY; + double d2 = p_attackTargetEntityWithCurrentItem_1_.motionZ; + boolean flag2 = p_attackTargetEntityWithCurrentItem_1_.attackEntityFrom(DamageSource.causePlayerDamage(((EntityPlayer) (Object) this)), f); + if (flag2) { + if (i > 0) { + p_attackTargetEntityWithCurrentItem_1_.addVelocity((double) (-MathHelper.sin(this.rotationYaw * 3.1415927F / 180.0F) * (float) i * 0.5F), 0.1, (double) (MathHelper.cos(this.rotationYaw * 3.1415927F / 180.0F) * (float) i * 0.5F)); + if (ModuleManager.reduce != null && ModuleManager.reduce.isEnabled()) { + Reduce.reduce(p_attackTargetEntityWithCurrentItem_1_); + } + else if (ModuleManager.keepSprint != null && ModuleManager.keepSprint.isEnabled()) { + KeepSprint.keepSprint(p_attackTargetEntityWithCurrentItem_1_); + } + else { + this.motionX *= 0.6D; + this.motionZ *= 0.6D; + this.setSprinting(false); + } + } + + if (p_attackTargetEntityWithCurrentItem_1_ instanceof EntityPlayerMP && p_attackTargetEntityWithCurrentItem_1_.velocityChanged) { + ((EntityPlayerMP) p_attackTargetEntityWithCurrentItem_1_).playerNetServerHandler.sendPacket(new S12PacketEntityVelocity(p_attackTargetEntityWithCurrentItem_1_)); + p_attackTargetEntityWithCurrentItem_1_.velocityChanged = false; + p_attackTargetEntityWithCurrentItem_1_.motionX = d0; + p_attackTargetEntityWithCurrentItem_1_.motionY = d1; + p_attackTargetEntityWithCurrentItem_1_.motionZ = d2; + } + + if (flag) { + this.onCriticalHit(p_attackTargetEntityWithCurrentItem_1_); + } + + if (f1 > 0.0F) { + this.onEnchantmentCritical(p_attackTargetEntityWithCurrentItem_1_); + } + + if (f >= 18.0F) { + this.triggerAchievement(AchievementList.overkill); + } + + this.setLastAttacker(p_attackTargetEntityWithCurrentItem_1_); + if (p_attackTargetEntityWithCurrentItem_1_ instanceof EntityLivingBase) { + EnchantmentHelper.applyThornEnchantments((EntityLivingBase) p_attackTargetEntityWithCurrentItem_1_, this); + } + + EnchantmentHelper.applyArthropodEnchantments(this, p_attackTargetEntityWithCurrentItem_1_); + ItemStack itemstack = this.getCurrentEquippedItem(); + Entity entity = p_attackTargetEntityWithCurrentItem_1_; + if (p_attackTargetEntityWithCurrentItem_1_ instanceof EntityDragonPart) { + IEntityMultiPart ientitymultipart = ((EntityDragonPart) p_attackTargetEntityWithCurrentItem_1_).entityDragonObj; + if (ientitymultipart instanceof EntityLivingBase) { + entity = (EntityLivingBase) ientitymultipart; + } + } + + if (itemstack != null && entity instanceof EntityLivingBase) { + itemstack.hitEntity((EntityLivingBase) entity, ((EntityPlayer) (Object) this)); + if (itemstack.stackSize <= 0) { + this.destroyCurrentEquippedItem(); + } + } + + if (p_attackTargetEntityWithCurrentItem_1_ instanceof EntityLivingBase) { + this.addStat(StatList.damageDealtStat, Math.round(f * 10.0F)); + if (j > 0) { + p_attackTargetEntityWithCurrentItem_1_.setFire(j * 4); + } + } + + this.addExhaustion(0.3F); + } else if (flag1) { + p_attackTargetEntityWithCurrentItem_1_.extinguish(); + } + } + } + + } + } + + @Inject(method = "isBlocking", at = @At("RETURN"), cancellable = true) + private void isBlocking(CallbackInfoReturnable cir) { + if (ModuleManager.killAura != null && ModuleManager.killAura.isEnabled() && ModuleManager.killAura.blockingClient && ((Object) this) == Minecraft.getMinecraft().thePlayer) { + cir.setReturnValue(true); + } + cir.setReturnValue(cir.getReturnValue()); + } +} \ No newline at end of file diff --git a/src/main/java/keystrokesmod/mixins/impl/entity/MixinEntityPlayerSP.java b/src/main/java/keystrokesmod/mixin/impl/entity/MixinEntityPlayerSP.java similarity index 93% rename from src/main/java/keystrokesmod/mixins/impl/entity/MixinEntityPlayerSP.java rename to src/main/java/keystrokesmod/mixin/impl/entity/MixinEntityPlayerSP.java index cab9554..34a65c1 100644 --- a/src/main/java/keystrokesmod/mixins/impl/entity/MixinEntityPlayerSP.java +++ b/src/main/java/keystrokesmod/mixin/impl/entity/MixinEntityPlayerSP.java @@ -1,4 +1,4 @@ -package keystrokesmod.mixins.impl.entity; +package keystrokesmod.mixin.impl.entity; import com.mojang.authlib.GameProfile; import keystrokesmod.event.PostMotionEvent; @@ -9,14 +9,12 @@ import keystrokesmod.module.ModuleManager; import keystrokesmod.module.impl.combat.WTap; import keystrokesmod.module.impl.movement.NoSlow; import keystrokesmod.utility.RotationUtils; -import keystrokesmod.utility.Utils; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.entity.AbstractClientPlayer; import net.minecraft.client.entity.EntityPlayerSP; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.network.NetHandlerPlayClient; -import net.minecraft.client.settings.KeyBinding; import net.minecraft.network.play.client.C03PacketPlayer; import net.minecraft.network.play.client.C0BPacketEntityAction; import net.minecraft.network.play.client.C0CPacketInput; @@ -29,6 +27,9 @@ import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Overwrite; import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(EntityPlayerSP.class) public abstract class MixinEntityPlayerSP extends AbstractClientPlayer { @@ -99,29 +100,26 @@ public abstract class MixinEntityPlayerSP extends AbstractClientPlayer { @Shadow private int positionUpdateTicks; - @Overwrite - public void onUpdate() { + @Inject(method = "onUpdate", at = @At("HEAD")) + private void onUpdatePre(CallbackInfo c) { if (this.worldObj.isBlockLoaded(new BlockPos(this.posX, 0.0, this.posZ))) { RotationUtils.prevRenderPitch = RotationUtils.renderPitch; RotationUtils.prevRenderYaw = RotationUtils.renderYaw; net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new PreUpdateEvent()); + } + } - super.onUpdate(); - - if (this.isRiding()) { - this.sendQueue.addToSendQueue(new C03PacketPlayer.C05PacketPlayerLook(this.rotationYaw, this.rotationPitch, this.onGround)); - this.sendQueue.addToSendQueue(new C0CPacketInput(this.moveStrafing, this.moveForward, this.movementInput.jump, this.movementInput.sneak)); - } else { - this.onUpdateWalkingPlayer(); - } - + @Inject(method = "onUpdate", at = @At("RETURN")) + private void onUpdatePost(CallbackInfo c) { + if (this.worldObj.isBlockLoaded(new BlockPos(this.posX, 0.0, this.posZ))) { net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new PostUpdateEvent()); } } @Overwrite public void onUpdateWalkingPlayer() { + PreMotionEvent.setRenderYaw(false); PreMotionEvent preMotionEvent = new PreMotionEvent( this.posX, this.getEntityBoundingBox().minY, @@ -162,7 +160,6 @@ public abstract class MixinEntityPlayerSP extends AbstractClientPlayer { if (this.isCurrentViewEntity()) { if (PreMotionEvent.setRenderYaw()) { RotationUtils.setRenderYaw(preMotionEvent.getYaw()); - preMotionEvent.setRenderYaw(false); } RotationUtils.renderPitch = preMotionEvent.getPitch(); @@ -289,7 +286,7 @@ public abstract class MixinEntityPlayerSP extends AbstractClientPlayer { this.setSprinting(true); } - if (this.isSprinting() && (!ModuleManager.sprint.omniSprint() && !NoSlow.groundSpeed() && (this.movementInput.moveForward < f || !flag3)) || this.isCollidedHorizontally || ModuleManager.sprint.disableBack || this.mc.gameSettings.keyBindSneak.isKeyDown() || (ModuleManager.scaffold != null && ModuleManager.scaffold.isEnabled && (!ModuleManager.scaffold.sprint() || ModuleManager.tower.canTower())) || (ModuleManager.wTap.isEnabled() && WTap.stopSprint)) { + if (this.isSprinting() && (!ModuleManager.sprint.omniSprint() && !NoSlow.groundSpeed() && (this.movementInput.moveForward < f || !flag3)) || this.isCollidedHorizontally || ModuleManager.sprint.disableBackwards() || this.mc.gameSettings.keyBindSneak.isKeyDown() || (ModuleManager.scaffold != null && ModuleManager.scaffold.isEnabled && (!ModuleManager.scaffold.sprint() || ModuleManager.tower.canTower())) || (ModuleManager.wTap.isEnabled() && WTap.stopSprint)) { this.setSprinting(false); WTap.stopSprint = false; } diff --git a/src/main/java/keystrokesmod/mixins/impl/network/MixinModList.java b/src/main/java/keystrokesmod/mixin/impl/network/MixinModList.java similarity index 97% rename from src/main/java/keystrokesmod/mixins/impl/network/MixinModList.java rename to src/main/java/keystrokesmod/mixin/impl/network/MixinModList.java index 9339d12..d9c6285 100644 --- a/src/main/java/keystrokesmod/mixins/impl/network/MixinModList.java +++ b/src/main/java/keystrokesmod/mixin/impl/network/MixinModList.java @@ -1,4 +1,4 @@ -package keystrokesmod.mixins.impl.network; +package keystrokesmod.mixin.impl.network; import io.netty.buffer.ByteBuf; import net.minecraft.client.Minecraft; diff --git a/src/main/java/keystrokesmod/mixins/impl/network/MixinNetHandlerPlayClient.java b/src/main/java/keystrokesmod/mixin/impl/network/MixinNetHandlerPlayClient.java similarity index 95% rename from src/main/java/keystrokesmod/mixins/impl/network/MixinNetHandlerPlayClient.java rename to src/main/java/keystrokesmod/mixin/impl/network/MixinNetHandlerPlayClient.java index f49d1a5..0f23637 100644 --- a/src/main/java/keystrokesmod/mixins/impl/network/MixinNetHandlerPlayClient.java +++ b/src/main/java/keystrokesmod/mixin/impl/network/MixinNetHandlerPlayClient.java @@ -1,4 +1,4 @@ -package keystrokesmod.mixins.impl.network; +package keystrokesmod.mixin.impl.network; import keystrokesmod.module.ModuleManager; import net.minecraft.client.network.NetHandlerPlayClient; diff --git a/src/main/java/keystrokesmod/mixins/impl/network/MixinNetworkManager.java b/src/main/java/keystrokesmod/mixin/impl/network/MixinNetworkManager.java similarity index 90% rename from src/main/java/keystrokesmod/mixins/impl/network/MixinNetworkManager.java rename to src/main/java/keystrokesmod/mixin/impl/network/MixinNetworkManager.java index f33b260..44136a5 100644 --- a/src/main/java/keystrokesmod/mixins/impl/network/MixinNetworkManager.java +++ b/src/main/java/keystrokesmod/mixin/impl/network/MixinNetworkManager.java @@ -1,7 +1,7 @@ -package keystrokesmod.mixins.impl.network; +package keystrokesmod.mixin.impl.network; import io.netty.channel.ChannelHandlerContext; -import keystrokesmod.event.AllPacketsEvent; +import keystrokesmod.event.NoEventPacketEvent; import keystrokesmod.event.ReceivePacketEvent; import keystrokesmod.event.SendPacketEvent; import keystrokesmod.utility.PacketUtils; @@ -16,9 +16,9 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; public class MixinNetworkManager { @Inject(method = "sendPacket(Lnet/minecraft/network/Packet;)V", at = @At("HEAD"), cancellable = true) public void sendPacket(Packet p_sendPacket_1_, CallbackInfo ci) { - net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new AllPacketsEvent(p_sendPacket_1_)); if (PacketUtils.skipSendEvent.contains(p_sendPacket_1_)) { PacketUtils.skipSendEvent.remove(p_sendPacket_1_); + net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new NoEventPacketEvent(p_sendPacket_1_)); return; } diff --git a/src/main/java/keystrokesmod/mixin/impl/render/MixinCustomSky.java b/src/main/java/keystrokesmod/mixin/impl/render/MixinCustomSky.java new file mode 100644 index 0000000..1aafb64 --- /dev/null +++ b/src/main/java/keystrokesmod/mixin/impl/render/MixinCustomSky.java @@ -0,0 +1,22 @@ +package keystrokesmod.mixin.impl.render; + +import keystrokesmod.module.ModuleManager; +import net.minecraft.util.MathHelper; +import org.spongepowered.asm.mixin.Dynamic; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Pseudo; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyVariable; + +@Pseudo +@Mixin(targets = "net.optifine.CustomSky", remap = false) +public abstract class MixinCustomSky { + @Dynamic + @ModifyVariable(method = "renderSky", at = @At("STORE")) + private static long changeWorldTime(long time) { + if (ModuleManager.weather != null && ModuleManager.weather.isEnabled()) { + return (long) MathHelper.clamp_double((ModuleManager.weather.time.getInput() * 1000), 0, 23999); + } + return time; + } +} \ No newline at end of file diff --git a/src/main/java/keystrokesmod/mixins/impl/render/MixinEntityRenderer.java b/src/main/java/keystrokesmod/mixin/impl/render/MixinEntityRenderer.java similarity index 96% rename from src/main/java/keystrokesmod/mixins/impl/render/MixinEntityRenderer.java rename to src/main/java/keystrokesmod/mixin/impl/render/MixinEntityRenderer.java index d587b67..40092f7 100644 --- a/src/main/java/keystrokesmod/mixins/impl/render/MixinEntityRenderer.java +++ b/src/main/java/keystrokesmod/mixin/impl/render/MixinEntityRenderer.java @@ -1,4 +1,4 @@ -package keystrokesmod.mixins.impl.render; +package keystrokesmod.mixin.impl.render; import keystrokesmod.module.ModuleManager; import net.minecraft.client.renderer.EntityRenderer; diff --git a/src/main/java/keystrokesmod/mixins/impl/render/MixinFontRenderer.java b/src/main/java/keystrokesmod/mixin/impl/render/MixinFontRenderer.java similarity index 97% rename from src/main/java/keystrokesmod/mixins/impl/render/MixinFontRenderer.java rename to src/main/java/keystrokesmod/mixin/impl/render/MixinFontRenderer.java index 34369f3..8c77503 100644 --- a/src/main/java/keystrokesmod/mixins/impl/render/MixinFontRenderer.java +++ b/src/main/java/keystrokesmod/mixin/impl/render/MixinFontRenderer.java @@ -1,4 +1,4 @@ -package keystrokesmod.mixins.impl.render; +package keystrokesmod.mixin.impl.render; import keystrokesmod.module.ModuleManager; import keystrokesmod.module.impl.other.NameHider; diff --git a/src/main/java/keystrokesmod/mixins/impl/render/MixinGuiChat.java b/src/main/java/keystrokesmod/mixin/impl/render/MixinGuiChat.java similarity index 97% rename from src/main/java/keystrokesmod/mixins/impl/render/MixinGuiChat.java rename to src/main/java/keystrokesmod/mixin/impl/render/MixinGuiChat.java index aa21741..3a17b6c 100644 --- a/src/main/java/keystrokesmod/mixins/impl/render/MixinGuiChat.java +++ b/src/main/java/keystrokesmod/mixin/impl/render/MixinGuiChat.java @@ -1,4 +1,4 @@ -package keystrokesmod.mixins.impl.render; +package keystrokesmod.mixin.impl.render; import keystrokesmod.Raven; import keystrokesmod.module.ModuleManager; diff --git a/src/main/java/keystrokesmod/mixins/impl/render/MixinGuiScreen.java b/src/main/java/keystrokesmod/mixin/impl/render/MixinGuiScreen.java similarity index 95% rename from src/main/java/keystrokesmod/mixins/impl/render/MixinGuiScreen.java rename to src/main/java/keystrokesmod/mixin/impl/render/MixinGuiScreen.java index 2cb3b55..12d589e 100644 --- a/src/main/java/keystrokesmod/mixins/impl/render/MixinGuiScreen.java +++ b/src/main/java/keystrokesmod/mixin/impl/render/MixinGuiScreen.java @@ -1,4 +1,4 @@ -package keystrokesmod.mixins.impl.render; +package keystrokesmod.mixin.impl.render; import keystrokesmod.Raven; import keystrokesmod.module.ModuleManager; diff --git a/src/main/java/keystrokesmod/mixins/impl/render/MixinItemRenderer.java b/src/main/java/keystrokesmod/mixin/impl/render/MixinItemRenderer.java similarity index 96% rename from src/main/java/keystrokesmod/mixins/impl/render/MixinItemRenderer.java rename to src/main/java/keystrokesmod/mixin/impl/render/MixinItemRenderer.java index 6f66dbe..6483edd 100644 --- a/src/main/java/keystrokesmod/mixins/impl/render/MixinItemRenderer.java +++ b/src/main/java/keystrokesmod/mixin/impl/render/MixinItemRenderer.java @@ -1,6 +1,6 @@ -package keystrokesmod.mixins.impl.render; +package keystrokesmod.mixin.impl.render; -import keystrokesmod.mixins.interfaces.IMixinItemRenderer; +import keystrokesmod.mixin.interfaces.IMixinItemRenderer; import keystrokesmod.utility.Utils; import net.minecraft.client.renderer.ItemRenderer; import net.minecraft.item.ItemStack; diff --git a/src/main/java/keystrokesmod/mixins/impl/render/MixinLayerCape.java b/src/main/java/keystrokesmod/mixin/impl/render/MixinLayerCape.java similarity index 97% rename from src/main/java/keystrokesmod/mixins/impl/render/MixinLayerCape.java rename to src/main/java/keystrokesmod/mixin/impl/render/MixinLayerCape.java index 5464017..3854d6f 100644 --- a/src/main/java/keystrokesmod/mixins/impl/render/MixinLayerCape.java +++ b/src/main/java/keystrokesmod/mixin/impl/render/MixinLayerCape.java @@ -1,4 +1,4 @@ -package keystrokesmod.mixins.impl.render; +package keystrokesmod.mixin.impl.render; import keystrokesmod.module.impl.client.Settings; import net.minecraft.client.Minecraft; diff --git a/src/main/java/keystrokesmod/mixins/impl/render/MixinRenderGlobal.java b/src/main/java/keystrokesmod/mixin/impl/render/MixinRenderGlobal.java similarity index 98% rename from src/main/java/keystrokesmod/mixins/impl/render/MixinRenderGlobal.java rename to src/main/java/keystrokesmod/mixin/impl/render/MixinRenderGlobal.java index 8188482..2d7e6c0 100644 --- a/src/main/java/keystrokesmod/mixins/impl/render/MixinRenderGlobal.java +++ b/src/main/java/keystrokesmod/mixin/impl/render/MixinRenderGlobal.java @@ -1,4 +1,4 @@ -package keystrokesmod.mixins.impl.render; +package keystrokesmod.mixin.impl.render; import keystrokesmod.module.ModuleManager; import keystrokesmod.module.impl.world.AntiBot; diff --git a/src/main/java/keystrokesmod/mixin/impl/render/MixinRenderManager.java b/src/main/java/keystrokesmod/mixin/impl/render/MixinRenderManager.java new file mode 100644 index 0000000..de8fca6 --- /dev/null +++ b/src/main/java/keystrokesmod/mixin/impl/render/MixinRenderManager.java @@ -0,0 +1,43 @@ +package keystrokesmod.mixin.impl.render; + +import keystrokesmod.event.PreMotionEvent; +import keystrokesmod.utility.RotationUtils; +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.client.renderer.entity.RenderManager; +import net.minecraft.entity.Entity; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@SideOnly(Side.CLIENT) +@Mixin(RenderManager.class) +public class MixinRenderManager { + @Unique + private float cachedPrevRotationPitch; + @Unique + private float cachedRotationPitch; + + @Inject(method = "renderEntityStatic", at = @At("HEAD")) + public void renderEntityStaticPre(final Entity entity, final float n, final boolean b, final CallbackInfoReturnable callbackInfoReturnable) { + if (entity instanceof EntityPlayerSP && PreMotionEvent.setRenderYaw()) { + final EntityPlayerSP player = (EntityPlayerSP)entity; + cachedRotationPitch = player.rotationPitch; + cachedPrevRotationPitch = player.prevRotationPitch; + player.prevRotationPitch = RotationUtils.prevRenderPitch; + player.rotationPitch = RotationUtils.renderPitch; + } + } + + @Inject(method = "renderEntityStatic", at = @At("RETURN")) + public void renderEntityStaticPost(final Entity entity, final float n, final boolean b, final CallbackInfoReturnable callbackInfoReturnable) { + if (entity instanceof EntityPlayerSP && PreMotionEvent.setRenderYaw()) { + final EntityPlayerSP player = (EntityPlayerSP)entity; + player.prevRotationPitch = this.cachedPrevRotationPitch; + player.rotationPitch = this.cachedRotationPitch; + } + } +} diff --git a/src/main/java/keystrokesmod/mixins/impl/render/MixinRendererLivingEntity.java b/src/main/java/keystrokesmod/mixin/impl/render/MixinRendererLivingEntity.java similarity index 98% rename from src/main/java/keystrokesmod/mixins/impl/render/MixinRendererLivingEntity.java rename to src/main/java/keystrokesmod/mixin/impl/render/MixinRendererLivingEntity.java index c4b2ac5..2bd4496 100644 --- a/src/main/java/keystrokesmod/mixins/impl/render/MixinRendererLivingEntity.java +++ b/src/main/java/keystrokesmod/mixin/impl/render/MixinRendererLivingEntity.java @@ -1,4 +1,4 @@ -package keystrokesmod.mixins.impl.render; +package keystrokesmod.mixin.impl.render; import keystrokesmod.module.ModuleManager; import keystrokesmod.module.impl.world.AntiBot; diff --git a/src/main/java/keystrokesmod/mixins/interfaces/IMixinItemRenderer.java b/src/main/java/keystrokesmod/mixin/interfaces/IMixinItemRenderer.java similarity index 74% rename from src/main/java/keystrokesmod/mixins/interfaces/IMixinItemRenderer.java rename to src/main/java/keystrokesmod/mixin/interfaces/IMixinItemRenderer.java index 6315bed..64c8b54 100644 --- a/src/main/java/keystrokesmod/mixins/interfaces/IMixinItemRenderer.java +++ b/src/main/java/keystrokesmod/mixin/interfaces/IMixinItemRenderer.java @@ -1,4 +1,4 @@ -package keystrokesmod.mixins.interfaces; +package keystrokesmod.mixin.interfaces; public interface IMixinItemRenderer { void setCancelUpdate(boolean cancel); diff --git a/src/main/java/keystrokesmod/mixins/MixinLoader.java b/src/main/java/keystrokesmod/mixins/MixinLoader.java deleted file mode 100644 index dc05381..0000000 --- a/src/main/java/keystrokesmod/mixins/MixinLoader.java +++ /dev/null @@ -1,48 +0,0 @@ -package keystrokesmod.mixins; - -import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.spongepowered.asm.launch.MixinBootstrap; -import org.spongepowered.asm.mixin.MixinEnvironment; -import org.spongepowered.asm.mixin.Mixins; - -import java.util.Map; - -@IFMLLoadingPlugin.MCVersion("1.8.9") -public class MixinLoader implements IFMLLoadingPlugin { - public MixinLoader() { - MixinBootstrap.init(); - Mixins.addConfiguration("mixins.raven.json"); - MixinEnvironment.getDefaultEnvironment().setSide(MixinEnvironment.Side.CLIENT); - } - - @NotNull - @Override - public String[] getASMTransformerClass() { - return new String[0]; - } - - @Nullable - @Override - public String getModContainerClass() { - return null; - } - - @Nullable - @Override - public String getSetupClass() { - return null; - } - - @Override - public void injectData(Map data) { - - } - - @Nullable - @Override - public String getAccessTransformerClass() { - return null; - } -} diff --git a/src/main/java/keystrokesmod/mixins/impl/entity/MixinEntityPlayer.java b/src/main/java/keystrokesmod/mixins/impl/entity/MixinEntityPlayer.java deleted file mode 100644 index c187b2e..0000000 --- a/src/main/java/keystrokesmod/mixins/impl/entity/MixinEntityPlayer.java +++ /dev/null @@ -1,51 +0,0 @@ -package keystrokesmod.mixins.impl.entity; - -import keystrokesmod.module.ModuleManager; -import keystrokesmod.module.impl.combat.Reduce; -import keystrokesmod.module.impl.movement.KeepSprint; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.*; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.*; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; - -@Mixin(EntityPlayer.class) -public abstract class MixinEntityPlayer extends EntityLivingBase { - public MixinEntityPlayer(World p_i1594_1_) { - super(p_i1594_1_); - } - @Shadow - public abstract ItemStack getHeldItem(); - - @ModifyConstant(method = "attackTargetEntityWithCurrentItem", constant = @Constant(doubleValue = 0.6)) - private double multiplyMotion(final double originalValue) { - if (ModuleManager.reduce != null && ModuleManager.reduce.isEnabled()) { - return Reduce.getReduceMotion(); - } - else if (ModuleManager.keepSprint != null && ModuleManager.keepSprint.isEnabled()) { - return KeepSprint.getKeepSprintMotion(); - } - return originalValue; - } - - @Redirect(method = "attackTargetEntityWithCurrentItem", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/EntityPlayer;setSprinting(Z)V")) - public void setSprinting(final EntityPlayer entityPlayer, final boolean sprinting) { - if (ModuleManager.keepSprint != null && ModuleManager.keepSprint.isEnabled()) { - return; - } - entityPlayer.setSprinting(sprinting); - } - - @Inject(method = "isBlocking", at = @At("RETURN"), cancellable = true) - private void isBlocking(CallbackInfoReturnable cir) { - if (ModuleManager.killAura != null && ModuleManager.killAura.isEnabled() && ModuleManager.killAura.blockingClient && ((Object) this) == Minecraft.getMinecraft().thePlayer) { - cir.setReturnValue(true); - } - cir.setReturnValue(cir.getReturnValue()); - } - -} \ No newline at end of file diff --git a/src/main/java/keystrokesmod/mixins/impl/render/MixinModelBiped.java b/src/main/java/keystrokesmod/mixins/impl/render/MixinModelBiped.java deleted file mode 100644 index 351d3f3..0000000 --- a/src/main/java/keystrokesmod/mixins/impl/render/MixinModelBiped.java +++ /dev/null @@ -1,38 +0,0 @@ -package keystrokesmod.mixins.impl.render; - -import keystrokesmod.utility.RotationUtils; -import keystrokesmod.utility.Utils; -import net.minecraft.client.Minecraft; -import net.minecraft.client.model.ModelBiped; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -@Mixin(ModelBiped.class) -public class MixinModelBiped { - - @Shadow - public ModelRenderer bipedRightArm; - - @Shadow - public int heldItemRight; - - @Shadow - public ModelRenderer bipedHead; - - @Inject(method = "setRotationAngles", at = @At(value = "FIELD", target = "Lnet/minecraft/client/model/ModelBiped;swingProgress:F")) - private void revertSwordAnimation(float p_setRotationAngles_1_, float p_setRotationAngles_2_, float p_setRotationAngles_3_, float p_setRotationAngles_4_, float p_setRotationAngles_5_, float p_setRotationAngles_6_, Entity p_setRotationAngles_7_, CallbackInfo callbackInfo) { - if (heldItemRight == 3) - this.bipedRightArm.rotateAngleY = 0F; - - if (p_setRotationAngles_7_ instanceof EntityPlayer - && p_setRotationAngles_7_.equals(Minecraft.getMinecraft().thePlayer)) { - this.bipedHead.rotateAngleX = (float) Math.toRadians(RotationUtils.interpolateValue(Utils.getTimer().renderPartialTicks, RotationUtils.prevRenderPitch, RotationUtils.renderPitch)); - } - } -} \ No newline at end of file diff --git a/src/main/java/keystrokesmod/module/ModuleManager.java b/src/main/java/keystrokesmod/module/ModuleManager.java index 497a5ff..e69a038 100644 --- a/src/main/java/keystrokesmod/module/ModuleManager.java +++ b/src/main/java/keystrokesmod/module/ModuleManager.java @@ -12,8 +12,8 @@ import keystrokesmod.module.impl.other.*; import keystrokesmod.module.impl.player.*; import keystrokesmod.module.impl.render.*; import keystrokesmod.module.impl.world.*; -import keystrokesmod.utility.Utils; import keystrokesmod.utility.ModuleUtils; +import keystrokesmod.utility.Utils; import keystrokesmod.utility.profile.Manager; import java.util.ArrayList; @@ -76,7 +76,7 @@ public class ModuleManager { this.addModule(autoClicker = new AutoClicker()); this.addModule(LongJump = new LongJump()); this.addModule(new AimAssist()); - this.addModule(new BurstClicker()); + this.addModule(new BinskiClicker()); this.addModule(weather = new Weather()); this.addModule(chatCommands = new ChatCommands()); this.addModule(new ClickAssist()); @@ -98,7 +98,6 @@ public class ModuleManager { this.addModule(blink = new Blink()); this.addModule(new AutoRequeue()); this.addModule(new AntiAFK()); - this.addModule(new Boost()); this.addModule(autoTool = new AutoTool()); this.addModule(noHurtCam = new NoHurtCam()); this.addModule(new SpeedBuilders()); @@ -113,14 +112,11 @@ public class ModuleManager { this.addModule(bedAura = new BedAura()); this.addModule(noSlow = new NoSlow()); this.addModule(new Indicators()); - this.addModule(new Speed()); this.addModule(new LatencyAlerts()); this.addModule(noCameraClip = new NoCameraClip()); this.addModule(sprint = new Sprint()); - this.addModule(new StopMotion()); this.addModule(timer = new Timer()); this.addModule(new VClip()); - this.addModule(new AutoJump()); this.addModule(new AutoPlace()); this.addModule(fastPlace = new FastPlace()); this.addModule(new Freecam()); diff --git a/src/main/java/keystrokesmod/module/impl/combat/BurstClicker.java b/src/main/java/keystrokesmod/module/impl/combat/BinskiClicker.java similarity index 92% rename from src/main/java/keystrokesmod/module/impl/combat/BurstClicker.java rename to src/main/java/keystrokesmod/module/impl/combat/BinskiClicker.java index 841bd76..cfa8c03 100644 --- a/src/main/java/keystrokesmod/module/impl/combat/BurstClicker.java +++ b/src/main/java/keystrokesmod/module/impl/combat/BinskiClicker.java @@ -1,6 +1,7 @@ package keystrokesmod.module.impl.combat; import keystrokesmod.Raven; +import keystrokesmod.mixin.impl.accessor.IAccessorMinecraft; import keystrokesmod.module.Module; import keystrokesmod.module.setting.impl.ButtonSetting; import keystrokesmod.module.setting.impl.DescriptionSetting; @@ -12,7 +13,7 @@ import net.minecraft.item.ItemBlock; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.TickEvent.RenderTickEvent; -public class BurstClicker extends Module { +public class BinskiClicker extends Module { private SliderSetting clicks; private SliderSetting delay; private ButtonSetting delayRandomizer; @@ -20,8 +21,8 @@ public class BurstClicker extends Module { private boolean l_c = false; private boolean l_r = false; - public BurstClicker() { - super("BurstClicker", category.combat, 0); + public BinskiClicker() { + super("BinskiClicker", category.combat, 0); this.registerSetting(new DescriptionSetting("Artificial dragclicking.")); this.registerSetting(clicks = new SliderSetting("Clicks", 0.0D, 0.0D, 50.0D, 1.0D)); this.registerSetting(delay = new SliderSetting("Delay (ms)", 5.0D, 1.0D, 40.0D, 1.0D)); @@ -31,7 +32,7 @@ public class BurstClicker extends Module { public void onEnable() { if (clicks.getInput() != 0.0D && mc.currentScreen == null && mc.inGameHasFocus) { - Raven.getExecutor().execute(() -> { + Raven.getScheduledExecutor().execute(() -> { try { int cl = (int) clicks.getInput(); int del = (int) delay.getInput(); @@ -87,7 +88,7 @@ public class BurstClicker extends Module { private void c(boolean st) { boolean r = placeWhenBlock.isToggled() && mc.thePlayer.getHeldItem() != null && mc.thePlayer.getHeldItem().getItem() instanceof ItemBlock; if (r) { - Reflection.rightClick(); + ((IAccessorMinecraft) mc).callRightClickMouse(); } else { int key = mc.gameSettings.keyBindAttack.getKeyCode(); KeyBinding.setKeyBindState(key, st); diff --git a/src/main/java/keystrokesmod/module/impl/combat/KillAura.java b/src/main/java/keystrokesmod/module/impl/combat/KillAura.java index 0c2a25f..0da0843 100644 --- a/src/main/java/keystrokesmod/module/impl/combat/KillAura.java +++ b/src/main/java/keystrokesmod/module/impl/combat/KillAura.java @@ -2,6 +2,7 @@ package keystrokesmod.module.impl.combat; import keystrokesmod.Raven; import keystrokesmod.event.*; +import keystrokesmod.mixin.impl.accessor.IAccessorMinecraft; import keystrokesmod.module.Module; import keystrokesmod.module.ModuleManager; import keystrokesmod.module.impl.client.Settings; @@ -90,7 +91,7 @@ public class KillAura extends Module { private int partialTicks; private int firstEdge; private boolean blocked; - private boolean canUse; + private int unBlockDelay; private boolean canBlockServerside; // blink related @@ -178,6 +179,30 @@ public class KillAura extends Module { } } + @SubscribeEvent(priority = EventPriority.HIGH) + public void onSendPacket(SendPacketEvent e) { + if (!Utils.nullCheck()) { + return; + } + Packet packet = e.getPacket(); + if (packet.getClass().getSimpleName().startsWith("S")) { + return; + } + if (packet instanceof C08PacketPlayerBlockPlacement) { + if (delayTicks >= 0) { + if (((C08PacketPlayerBlockPlacement) packet).getStack() != null && ((C08PacketPlayerBlockPlacement) packet).getStack().getItem() instanceof ItemSword && ((C08PacketPlayerBlockPlacement) packet).getPlacedBlockDirection() != 255) { + e.setCanceled(true); + } + } + } + if (blinking.get() && !e.isCanceled()) { // blink + if (packet instanceof C00PacketLoginStart || packet instanceof C00Handshake) { + return; + } + blinkedPackets.add(packet); + e.setCanceled(true); + } + } @SubscribeEvent public void onPreUpdate(PreUpdateEvent e) { @@ -233,18 +258,27 @@ public class KillAura extends Module { } lastPressedLeft = pressedLeft; } - if (sendDig && !isTargeting && !ModuleManager.bedAura.stopAutoblock) { - sendDigPacket(); - sendDig = false; + if (sendDig && ++unBlockDelay >= 2) { + if (target == null && !ModuleManager.bedAura.stopAutoblock && blocked) { + sendDigPacket(); + } + sendDig = blocked = false; + unBlockDelay = 0; } - /*if (sendUnBlock) { - Reflection.setItemInUse(blockingClient = false); - sendDigPacket(); - sendUnBlock = false; - Utils.print("sendUnBlock"); - return; - }*/ delayTicks--; + if (sendUnBlock) { + if (Raven.packetsHandler.C07.get()) { + sendUnBlock = false; + return; + } + if (!Utils.keybinds.isMouseDown(1)) { + Reflection.setItemInUse(blockingClient = false); + sendDigPacket(); + } + sendUnBlock = false; + Utils.print("Dig 2"); + return; + } if (ModuleManager.blink.isEnabled()) { if (blinking.get() || lag) { resetBlinkState(true); @@ -396,31 +430,6 @@ public class KillAura extends Module { } } - @SubscribeEvent(priority = EventPriority.HIGH) - public void onSendPacket(SendPacketEvent e) { - if (!Utils.nullCheck()) { - return; - } - Packet packet = e.getPacket(); - if (packet.getClass().getSimpleName().startsWith("S")) { - return; - } - if (packet instanceof C08PacketPlayerBlockPlacement) { - if (delayTicks >= 0) { - if (((C08PacketPlayerBlockPlacement) packet).getStack() != null && ((C08PacketPlayerBlockPlacement) packet).getStack().getItem() instanceof ItemSword && ((C08PacketPlayerBlockPlacement) packet).getPlacedBlockDirection() != 255) { - e.setCanceled(true); - } - } - } - if (blinking.get() && !e.isCanceled()) { // blink - if (packet instanceof C00PacketKeepAlive || packet instanceof C00PacketLoginStart || packet instanceof C00Handshake) { - return; - } - blinkedPackets.add(packet); - e.setCanceled(true); - } - } - @SubscribeEvent public void onMouse(MouseEvent e) { if (e.button == 0 || e.button == 1) { @@ -507,7 +516,7 @@ public class KillAura extends Module { if (entity == null || !(entity instanceof EntityLivingBase)) { if (blockingClient) { //Reflection.setItemInUse(blockingClient = false); - sendUnBlock = true; + //sendUnBlock = true; } if (blinking.get() || lag) { resetBlinkState(true); @@ -845,7 +854,7 @@ public class KillAura extends Module { } break; case 5: // hypixel a - if (interactTicks >= 3) { + if (interactTicks >= 4) { interactTicks = 0; } interactTicks++; @@ -857,7 +866,7 @@ public class KillAura extends Module { blocked = false; } break; - case 2: + case 3: handleInteractAndAttack(distance, true, true, swung); sendBlockPacket(); blocked = true; @@ -871,7 +880,7 @@ public class KillAura extends Module { interactTicks = 0; } interactTicks++; - if (!firstCycle) { + if (firstCycle) { switch (interactTicks) { case 1: blinking.set(true); @@ -884,17 +893,10 @@ public class KillAura extends Module { handleInteractAndAttack(distance, true, true, swung); sendBlockPacket(); blocked = true; - releasePackets(); // release + releasePackets(); lag = true; - break; - case 3: - ++firstEdge; - if (firstEdge > 2) { - firstCycle = true; - if (firstEdge > 6) { - firstEdge = 0; - } - } + firstEdge = 1; + firstCycle = false; break; } } @@ -911,10 +913,13 @@ public class KillAura extends Module { handleInteractAndAttack(distance, true, true, swung); sendBlockPacket(); blocked = true; - releasePackets(); // release + releasePackets(); lag = true; interactTicks = 0; - firstCycle = false; + if (firstEdge == 0) { + firstEdge = 1; + } + firstCycle = true; break; } } @@ -1064,7 +1069,7 @@ public class KillAura extends Module { if (!canHit) { return; } - MovingObjectPosition mov = RotationUtils.rayTrace(10, Utils.getTimer().renderPartialTicks, RotationUtils.serverRotations, hitThroughBlocks.isToggled() ? attackingEntity : null); + MovingObjectPosition mov = RotationUtils.rayTrace(10, ((IAccessorMinecraft) mc).getTimer().renderPartialTicks, RotationUtils.serverRotations, hitThroughBlocks.isToggled() ? attackingEntity : null); if (mov != null && mov.typeOfHit == MovingObjectPosition.MovingObjectType.ENTITY && mov.entityHit == attackingEntity) { Vec3 hitVec = mov.hitVec; hitVec = new Vec3(hitVec.xCoord - attackingEntity.posX, hitVec.yCoord - attackingEntity.posY, hitVec.zCoord - attackingEntity.posZ); @@ -1151,7 +1156,7 @@ public class KillAura extends Module { else if (unblock && lag && !ModuleManager.scaffold.isEnabled) { sendDig = true; } - swapped = blocked = false; + swapped = false; lag = false; firstEdge = interactTicks = 0; firstCycle = false; diff --git a/src/main/java/keystrokesmod/module/impl/combat/Reduce.java b/src/main/java/keystrokesmod/module/impl/combat/Reduce.java index 0200911..8be787d 100644 --- a/src/main/java/keystrokesmod/module/impl/combat/Reduce.java +++ b/src/main/java/keystrokesmod/module/impl/combat/Reduce.java @@ -3,6 +3,7 @@ package keystrokesmod.module.impl.combat; import keystrokesmod.module.Module; import keystrokesmod.module.setting.impl.DescriptionSetting; import keystrokesmod.module.setting.impl.SliderSetting; +import net.minecraft.entity.Entity; public class Reduce extends Module { private static SliderSetting chance; @@ -16,13 +17,17 @@ public class Reduce extends Module { this.closetModule = true; } - public static double getReduceMotion() { + public static void reduce(Entity entity) { if (chance.getInput() == 0) { - return 0.6; + return; } if (chance.getInput() != 100.0 && Math.random() >= chance.getInput() / 100.0) { - return 0.6; + mc.thePlayer.motionX *= 0.6; + mc.thePlayer.motionZ *= 0.6; + return; } - return (100.0 - (float)reduction.getInput()) / 100.0; + double n = (100.0 - (float)reduction.getInput()) / 100.0; + mc.thePlayer.motionX *= n; + mc.thePlayer.motionZ *= n; } } \ No newline at end of file diff --git a/src/main/java/keystrokesmod/module/impl/combat/RodAimbot.java b/src/main/java/keystrokesmod/module/impl/combat/RodAimbot.java index 0e5bb46..83ef4cf 100644 --- a/src/main/java/keystrokesmod/module/impl/combat/RodAimbot.java +++ b/src/main/java/keystrokesmod/module/impl/combat/RodAimbot.java @@ -1,6 +1,7 @@ package keystrokesmod.module.impl.combat; import keystrokesmod.event.PreMotionEvent; +import keystrokesmod.mixin.impl.accessor.IAccessorMinecraft; import keystrokesmod.module.Module; import keystrokesmod.module.impl.world.AntiBot; import keystrokesmod.module.setting.impl.ButtonSetting; @@ -74,7 +75,7 @@ public class RodAimbot extends Module { rotate = false; } if (rightClick) { - Reflection.rightClick(); + ((IAccessorMinecraft) mc).callRightClickMouse(); rightClick = false; } } diff --git a/src/main/java/keystrokesmod/module/impl/minigames/DuelsStats.java b/src/main/java/keystrokesmod/module/impl/minigames/DuelsStats.java index b5ced32..ccc4f8e 100644 --- a/src/main/java/keystrokesmod/module/impl/minigames/DuelsStats.java +++ b/src/main/java/keystrokesmod/module/impl/minigames/DuelsStats.java @@ -107,7 +107,7 @@ public class DuelsStats extends Module { Utils.sendMessage("&cAPI Key is empty!"); } else { ProfileUtils.DM dm = ProfileUtils.DM.values()[(int) (mode.getInput() - 1.0D)]; - Raven.getExecutor().execute(() -> { + Raven.getScheduledExecutor().execute(() -> { int[] s = ProfileUtils.getHypixelStats(n, dm); if (s != null) { if (s[0] == -1) { diff --git a/src/main/java/keystrokesmod/module/impl/minigames/SpeedBuilders.java b/src/main/java/keystrokesmod/module/impl/minigames/SpeedBuilders.java index 8298756..ea03eeb 100644 --- a/src/main/java/keystrokesmod/module/impl/minigames/SpeedBuilders.java +++ b/src/main/java/keystrokesmod/module/impl/minigames/SpeedBuilders.java @@ -2,6 +2,7 @@ package keystrokesmod.module.impl.minigames; import keystrokesmod.event.PreUpdateEvent; import keystrokesmod.event.ReceivePacketEvent; +import keystrokesmod.mixin.impl.accessor.IAccessorMinecraft; import keystrokesmod.module.Module; import keystrokesmod.module.setting.impl.ButtonSetting; import keystrokesmod.module.setting.impl.DescriptionSetting; @@ -137,7 +138,7 @@ public class SpeedBuilders extends Module { if (lastPlaceTick++ < placeDelay.getInput()) { return; } - Reflection.rightClick(); + ((IAccessorMinecraft) mc).callRightClickMouse(); lastPlaceTick = 0; } } diff --git a/src/main/java/keystrokesmod/module/impl/movement/Bhop.java b/src/main/java/keystrokesmod/module/impl/movement/Bhop.java index 830f512..5ce31c9 100644 --- a/src/main/java/keystrokesmod/module/impl/movement/Bhop.java +++ b/src/main/java/keystrokesmod/module/impl/movement/Bhop.java @@ -7,6 +7,7 @@ import keystrokesmod.module.ModuleManager; import keystrokesmod.module.impl.client.Settings; import keystrokesmod.module.setting.impl.ButtonSetting; import keystrokesmod.module.setting.impl.SliderSetting; +import keystrokesmod.utility.ModuleUtils; import keystrokesmod.utility.RotationUtils; import keystrokesmod.utility.Utils; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; @@ -60,6 +61,9 @@ public class Bhop extends Module { collided = false; } if (mc.thePlayer.onGround) { + if (mc.thePlayer.moveForward <= -0.5 && mc.thePlayer.moveStrafing == 0) { + setRotation = true; + } mc.thePlayer.jump(); double horizontalSpeed = Utils.getHorizontalSpeed(); double speedModifier = 0.48; @@ -79,8 +83,7 @@ public class Bhop extends Module { if (horizontalSpeed < additionalSpeed) { horizontalSpeed = additionalSpeed; } - if (Utils.isMoving() && !Utils.noSlowingBackWithBow()) { - mc.thePlayer.setSprinting(true); + if (Utils.isMoving() && !Utils.noSlowingBackWithBow() && !ModuleManager.sprint.disableBackwards()) { Utils.setSpeed(horizontalSpeed); didMove = true; } @@ -141,6 +144,28 @@ public class Bhop extends Module { } break; } + /*if (rotateYawOption.isToggled()) { + if (!ModuleManager.killAura.isTargeting && !Utils.noSlowingBackWithBow() && !ModuleManager.scaffold.isEnabled && !mc.thePlayer.isCollidedHorizontally && mc.thePlayer.onGround) { + float yaw = mc.thePlayer.rotationYaw; + e.setYaw(yaw - hardcodedYaw()); + } + }*/ + } + + public float hardcodedYaw() { + float simpleYaw = 0F; + float f = 0.8F; + + if (mc.thePlayer.moveForward == 0) { + if (mc.thePlayer.moveStrafing >= f) simpleYaw += 90; + if (mc.thePlayer.moveStrafing <= -f) simpleYaw -= 90; + } + else if (mc.thePlayer.moveForward <= -f) { + simpleYaw -= 180; + if (mc.thePlayer.moveStrafing >= f) simpleYaw -= 45; + if (mc.thePlayer.moveStrafing <= -f) simpleYaw += 45; + } + return simpleYaw; } public void onDisable() { diff --git a/src/main/java/keystrokesmod/module/impl/movement/Boost.java b/src/main/java/keystrokesmod/module/impl/movement/Boost.java deleted file mode 100644 index 3054df0..0000000 --- a/src/main/java/keystrokesmod/module/impl/movement/Boost.java +++ /dev/null @@ -1,56 +0,0 @@ -package keystrokesmod.module.impl.movement; - -import keystrokesmod.module.Module; -import keystrokesmod.module.ModuleManager; -import keystrokesmod.module.setting.impl.DescriptionSetting; -import keystrokesmod.module.setting.impl.SliderSetting; -import keystrokesmod.utility.Utils; - -public class Boost extends Module { - public static DescriptionSetting c; - public static SliderSetting a; - public static SliderSetting b; - private int i = 0; - private boolean t = false; - - public Boost() { - super("Boost", Module.category.movement, 0); - this.registerSetting(c = new DescriptionSetting("20 ticks are in 1 second")); - this.registerSetting(a = new SliderSetting("Multiplier", 2.0D, 1.0D, 3.0D, 0.05D)); - this.registerSetting(b = new SliderSetting("Time (ticks)", 15.0D, 1.0D, 80.0D, 1.0D)); - } - - public void onEnable() { - if (ModuleManager.timer.isEnabled()) { - this.t = true; - ModuleManager.timer.disable(); - } - - } - - public void onDisable() { - this.i = 0; - if (Utils.getTimer().timerSpeed != 1.0F) { - Utils.resetTimer(); - } - - if (this.t) { - ModuleManager.timer.enable(); - } - - this.t = false; - } - - public void onUpdate() { - if (this.i == 0) { - this.i = mc.thePlayer.ticksExisted; - } - - Utils.getTimer().timerSpeed = (float) a.getInput(); - if ((double) this.i == (double) mc.thePlayer.ticksExisted - b.getInput()) { - Utils.resetTimer(); - this.disable(); - } - - } -} diff --git a/src/main/java/keystrokesmod/module/impl/movement/KeepSprint.java b/src/main/java/keystrokesmod/module/impl/movement/KeepSprint.java index f377a2a..a5bb43e 100644 --- a/src/main/java/keystrokesmod/module/impl/movement/KeepSprint.java +++ b/src/main/java/keystrokesmod/module/impl/movement/KeepSprint.java @@ -6,7 +6,7 @@ import keystrokesmod.module.impl.combat.KillAura; import keystrokesmod.module.setting.impl.ButtonSetting; import keystrokesmod.module.setting.impl.DescriptionSetting; import keystrokesmod.module.setting.impl.SliderSetting; -import keystrokesmod.utility.Utils; +import net.minecraft.entity.Entity; import net.minecraft.util.Vec3; public class KeepSprint extends Module { @@ -22,7 +22,7 @@ public class KeepSprint extends Module { this.registerSetting(reduceReachHits = new ButtonSetting("Only reduce reach hits", false)); } - public static double getKeepSprintMotion() { + public static void keepSprint(Entity en) { boolean vanilla = false; if (disableWhileJump.isToggled() && !mc.thePlayer.onGround) { vanilla = true; @@ -31,7 +31,7 @@ public class KeepSprint extends Module { double distance = -1.0; final Vec3 getPositionEyes = mc.thePlayer.getPositionEyes(1.0f); if (ModuleManager.killAura != null && ModuleManager.killAura.isEnabled() && KillAura.target != null) { - distance = getPositionEyes.distanceTo(KillAura.target.getPositionEyes(Utils.getTimer().renderPartialTicks)); + distance = getPositionEyes.distanceTo(KillAura.target.getPositionEyes(1.0f)); } else if (ModuleManager.reach != null && ModuleManager.reach.isEnabled()) { distance = getPositionEyes.distanceTo(mc.objectMouseOver.hitVec); @@ -41,10 +41,13 @@ public class KeepSprint extends Module { } } if (vanilla) { - return 0.6; + mc.thePlayer.motionX *= 0.6; + mc.thePlayer.motionZ *= 0.6; } else { - return (100.0f - (float) slow.getInput()) / 100.0f; + float mult = (100.0f - (float) slow.getInput()) / 100.0f; + mc.thePlayer.motionX *= mult; + mc.thePlayer.motionZ *= mult; } } } \ No newline at end of file diff --git a/src/main/java/keystrokesmod/module/impl/movement/LongJump.java b/src/main/java/keystrokesmod/module/impl/movement/LongJump.java index ccd820c..711658d 100644 --- a/src/main/java/keystrokesmod/module/impl/movement/LongJump.java +++ b/src/main/java/keystrokesmod/module/impl/movement/LongJump.java @@ -2,6 +2,7 @@ package keystrokesmod.module.impl.movement; import keystrokesmod.event.PrePlayerInputEvent; import keystrokesmod.event.*; +import keystrokesmod.mixin.impl.accessor.IAccessorMinecraft; import keystrokesmod.module.Module; import keystrokesmod.module.ModuleManager; import keystrokesmod.module.setting.impl.ButtonSetting; @@ -199,7 +200,7 @@ public class LongJump extends Module { if (fireballSlot != -1) { mc.thePlayer.inventory.currentItem = fireballSlot; // we are probably already on the slot but make sure fireballTime = System.currentTimeMillis(); - Reflection.rightClick(); + ((IAccessorMinecraft) mc).callRightClickMouse(); mc.thePlayer.swingItem(); mc.getItemRenderer().resetEquippedProgress(); stopVelocity = true; diff --git a/src/main/java/keystrokesmod/module/impl/movement/NoSlow.java b/src/main/java/keystrokesmod/module/impl/movement/NoSlow.java index dfc9512..e67a04f 100644 --- a/src/main/java/keystrokesmod/module/impl/movement/NoSlow.java +++ b/src/main/java/keystrokesmod/module/impl/movement/NoSlow.java @@ -2,6 +2,7 @@ package keystrokesmod.module.impl.movement; import keystrokesmod.Raven; import keystrokesmod.event.*; +import keystrokesmod.mixin.impl.accessor.IAccessorItemFood; import keystrokesmod.module.Module; import keystrokesmod.module.ModuleManager; import keystrokesmod.module.setting.impl.ButtonSetting; @@ -16,7 +17,7 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import org.lwjgl.input.Mouse; public class NoSlow extends Module { - public static SliderSetting mode; + public SliderSetting mode; public static SliderSetting slowed; public static ButtonSetting disableBow; public static ButtonSetting disablePotions; @@ -27,7 +28,6 @@ public class NoSlow extends Module { private boolean postPlace; private boolean canFloat; private boolean reSendConsume; - private boolean setRotation; public static boolean noSlowing; public NoSlow() { @@ -116,13 +116,12 @@ public class NoSlow extends Module { return; } if (reSendConsume) { - if (!mc.thePlayer.onGround) { - if (ModuleUtils.inAirTicks > 1) { - //mc.playerController.sendUseItem(mc.thePlayer, mc.theWorld, mc.thePlayer.getHeldItem()); - mc.getNetHandler().addToSendQueue(new C08PacketPlayerBlockPlacement(mc.thePlayer.getHeldItem())); - canFloat = true; - reSendConsume = false; - } + if (ModuleUtils.inAirTicks > 1) { + KeyBinding.setKeyBindState(mc.gameSettings.keyBindUseItem.getKeyCode(), false); + KeyBinding.setKeyBindState(mc.gameSettings.keyBindUseItem.getKeyCode(), true); + mc.playerController.sendUseItem(mc.thePlayer, mc.theWorld, mc.thePlayer.getHeldItem()); + canFloat = true; + reSendConsume = false; } } if (!canFloat) { @@ -130,20 +129,10 @@ public class NoSlow extends Module { } e.setPosY(e.getPosY() + 1E-11); noSlowing = true; - if (mc.thePlayer.onGround) { - if (mc.thePlayer.moveStrafing == 0 && mc.thePlayer.moveForward <= 0 && Utils.isMoving()) { - setRotation = true; - } else { - setRotation = false; - } - } - if (Utils.noSlowingBackWithBow()) setRotation = false; if (groundSpeedOption.isToggled()) { - if (setRotation) { - if (!ModuleManager.killAura.isTargeting && !Utils.noSlowingBackWithBow() && !Utils.jumpDown()) { - float playerYaw = mc.thePlayer.rotationYaw; - e.setYaw(playerYaw -= 55); - } + if (!ModuleManager.killAura.isTargeting && !Utils.noSlowingBackWithBow() && !Utils.jumpDown() && mc.thePlayer.moveForward <= -0.5 && mc.thePlayer.moveStrafing == 0 && Utils.isMoving() && mc.thePlayer.onGround) { + float yaw = mc.thePlayer.rotationYaw; + e.setYaw(yaw - 55); } } } @@ -205,7 +194,7 @@ public class NoSlow extends Module { private void resetFloat() { reSendConsume = false; - canFloat = setRotation = false; + canFloat = false; } private double getSpeedModifier() { @@ -239,18 +228,11 @@ public class NoSlow extends Module { return false; } - private boolean holdingEdible(ItemStack stack) { + + public static boolean holdingEdible(ItemStack stack) { if (stack.getItem() instanceof ItemFood && mc.thePlayer.getFoodStats().getFoodLevel() == 20) { ItemFood food = (ItemFood) stack.getItem(); - boolean alwaysEdible = false; - try { - alwaysEdible = Reflection.alwaysEdible.getBoolean(food); - } - catch (Exception e) { - Utils.sendMessage("&cError checking food edibility, check logs."); - e.printStackTrace(); - } - return alwaysEdible; + return ((IAccessorItemFood) food).getAlwaysEdible(); } return true; } diff --git a/src/main/java/keystrokesmod/module/impl/movement/Speed.java b/src/main/java/keystrokesmod/module/impl/movement/Speed.java deleted file mode 100644 index 63a6206..0000000 --- a/src/main/java/keystrokesmod/module/impl/movement/Speed.java +++ /dev/null @@ -1,33 +0,0 @@ -package keystrokesmod.module.impl.movement; - -import keystrokesmod.module.Module; -import keystrokesmod.module.setting.impl.ButtonSetting; -import keystrokesmod.module.setting.impl.SliderSetting; -import keystrokesmod.utility.Utils; - -public class Speed extends Module { - public static SliderSetting speed; - private ButtonSetting strafeOnly; - - public Speed() { - super("Speed", Module.category.movement, 0); - this.registerSetting(speed = new SliderSetting("Speed", 1.2D, 1.0D, 1.5D, 0.01D)); - this.registerSetting(strafeOnly = new ButtonSetting("Strafe only", false)); - } - - public void onUpdate() { - double csp = Utils.getHorizontalSpeed(); - if (csp != 0.0D) { - if (mc.thePlayer.onGround && !mc.thePlayer.capabilities.isFlying) { - if (!strafeOnly.isToggled() || mc.thePlayer.moveStrafing != 0.0F) { - if (mc.thePlayer.hurtTime != mc.thePlayer.maxHurtTime || mc.thePlayer.maxHurtTime <= 0) { - if (!Utils.jumpDown()) { - double val = speed.getInput() - (speed.getInput() - 1.0D) * 0.5D; - Utils.ss(csp * val, true); - } - } - } - } - } - } -} diff --git a/src/main/java/keystrokesmod/module/impl/movement/Sprint.java b/src/main/java/keystrokesmod/module/impl/movement/Sprint.java index 13199bb..c72f78e 100644 --- a/src/main/java/keystrokesmod/module/impl/movement/Sprint.java +++ b/src/main/java/keystrokesmod/module/impl/movement/Sprint.java @@ -2,12 +2,13 @@ package keystrokesmod.module.impl.movement; import keystrokesmod.event.PreMotionEvent; import keystrokesmod.event.PreUpdateEvent; -import keystrokesmod.mixins.impl.entity.IAccessorEntityPlayerSP; +import keystrokesmod.mixin.impl.accessor.IAccessorEntityPlayerSP; import keystrokesmod.module.Module; import keystrokesmod.module.ModuleManager; import keystrokesmod.module.setting.impl.ButtonSetting; import keystrokesmod.module.setting.impl.DescriptionSetting; import keystrokesmod.module.setting.impl.SliderSetting; +import keystrokesmod.utility.ModuleUtils; import keystrokesmod.utility.RenderUtils; import keystrokesmod.utility.Utils; import net.minecraft.client.gui.GuiButton; @@ -30,7 +31,6 @@ public class Sprint extends Module { public float posX = 5; public float posY = 5; private float limit; - public boolean disableBack; private String[] omniDirectionalModes = new String[] { "Disabled", "Vanilla", "Hypixel" }; @@ -54,36 +54,31 @@ public class Sprint extends Module { return; } if (ModuleManager.sprint.isEnabled() && ModuleManager.sprint.omniDirectional.getInput() == 2) { - if (mc.thePlayer.onGround && mc.thePlayer.moveStrafing == 0 && mc.thePlayer.moveForward <= -0.5 && !Utils.jumpDown()) { + if (mc.thePlayer.onGround && mc.thePlayer.moveForward <= -0.5 && mc.thePlayer.moveStrafing == 0 && !Utils.jumpDown()) { if (!ModuleManager.killAura.isTargeting && !Utils.noSlowingBackWithBow() && !ModuleManager.safeWalk.canSafeWalk() && !ModuleManager.scaffold.isEnabled && !ModuleManager.bhop.isEnabled() && !mc.thePlayer.isCollidedHorizontally) { - float playerYaw = mc.thePlayer.rotationYaw; - e.setYaw(playerYaw -= 55); + float yaw = mc.thePlayer.rotationYaw; + e.setYaw(yaw - 55); } } } } - @SubscribeEvent - public void onPreUpdate(PreUpdateEvent e) { - limit = MathHelper.wrapAngleTo180_float(mc.thePlayer.rotationYaw - ((IAccessorEntityPlayerSP) mc.thePlayer).getLastReportedYaw() ); - //Utils.print("" + limit); - + public boolean disableBackwards() { + limit = MathHelper.wrapAngleTo180_float(mc.thePlayer.rotationYaw - ((IAccessorEntityPlayerSP) mc.thePlayer).getLastReportedYaw()); double limitVal = 135; if (!disableBackwards.isToggled()) { - disableBack = false; - return; + return false; } if (exceptions()) { - disableBack = false; - return; + return false; } - if ((limit <= -limitVal || limit >= limitVal) || omniSprint() && ModuleManager.killAura.isTargeting && mc.thePlayer.moveForward <= 0.5) { - disableBack = true; - //Utils.print("Disable sprint"); + if ((limit <= -limitVal || limit >= limitVal)) { + return true; } - else { - disableBack = false; + if ((omniSprint() || ModuleManager.bhop.isEnabled()) && ModuleManager.killAura.isTargeting && mc.thePlayer.moveForward <= 0.5) { + return true; } + return false; } public void onUpdate() { @@ -117,7 +112,7 @@ public class Sprint extends Module { } private boolean exceptions() { - return ModuleManager.scaffold.isEnabled || mc.thePlayer.hurtTime > 0; + return ModuleManager.scaffold.isEnabled || mc.thePlayer.hurtTime > 0 || !mc.thePlayer.onGround; } static class EditScreen extends GuiScreen { diff --git a/src/main/java/keystrokesmod/module/impl/movement/StopMotion.java b/src/main/java/keystrokesmod/module/impl/movement/StopMotion.java deleted file mode 100644 index 6769efb..0000000 --- a/src/main/java/keystrokesmod/module/impl/movement/StopMotion.java +++ /dev/null @@ -1,30 +0,0 @@ -package keystrokesmod.module.impl.movement; - -import keystrokesmod.module.Module; -import keystrokesmod.module.setting.impl.ButtonSetting; - -public class StopMotion extends Module { - private ButtonSetting stopX; - private ButtonSetting stopY; - private ButtonSetting stopZ; - - public StopMotion() { - super("Stop Motion", Module.category.movement, 0); - this.registerSetting(stopX = new ButtonSetting("Stop X", true)); - this.registerSetting(stopY = new ButtonSetting("Stop Y", true)); - this.registerSetting(stopZ = new ButtonSetting("Stop Z", true)); - } - - public void onEnable() { - if (stopX.isToggled()) { - mc.thePlayer.motionX = 0; - } - if (stopY.isToggled()) { - mc.thePlayer.motionY = 0; - } - if (stopZ.isToggled()) { - mc.thePlayer.motionZ = 0; - } - this.disable(); - } -} diff --git a/src/main/java/keystrokesmod/module/impl/other/ChatBypass.java b/src/main/java/keystrokesmod/module/impl/other/ChatBypass.java index 8aac0c5..b38d491 100644 --- a/src/main/java/keystrokesmod/module/impl/other/ChatBypass.java +++ b/src/main/java/keystrokesmod/module/impl/other/ChatBypass.java @@ -71,7 +71,7 @@ public class ChatBypass extends Module { msg = doReplace(msg); } - if (split[0] != null) { // if command existed, re-add + if (split[0] != null && split[1] != null) { // if command existed, re-add msg = split[0] + " " + msg; } diff --git a/src/main/java/keystrokesmod/module/impl/other/DebugAC.java b/src/main/java/keystrokesmod/module/impl/other/DebugAC.java index e33b473..26b16ae 100644 --- a/src/main/java/keystrokesmod/module/impl/other/DebugAC.java +++ b/src/main/java/keystrokesmod/module/impl/other/DebugAC.java @@ -1,6 +1,6 @@ package keystrokesmod.module.impl.other; -import keystrokesmod.event.AllPacketsEvent; +import keystrokesmod.event.NoEventPacketEvent; import keystrokesmod.module.Module; import keystrokesmod.module.setting.impl.ButtonSetting; import keystrokesmod.utility.BlockUtils; @@ -126,7 +126,7 @@ public class DebugAC extends Module { } @SubscribeEvent - public void onAllPacketSent(AllPacketsEvent e) { + public void onAllPacketSent(NoEventPacketEvent e) { if (e.getPacket() instanceof C03PacketPlayer) { lastC03 = System.currentTimeMillis(); } diff --git a/src/main/java/keystrokesmod/module/impl/other/ViewPackets.java b/src/main/java/keystrokesmod/module/impl/other/ViewPackets.java index 3a8f3e0..a2e21db 100644 --- a/src/main/java/keystrokesmod/module/impl/other/ViewPackets.java +++ b/src/main/java/keystrokesmod/module/impl/other/ViewPackets.java @@ -1,5 +1,6 @@ package keystrokesmod.module.impl.other; +import keystrokesmod.event.NoEventPacketEvent; import keystrokesmod.event.ReceivePacketEvent; import keystrokesmod.event.SendPacketEvent; import keystrokesmod.module.Module; @@ -82,6 +83,29 @@ public class ViewPackets extends Module { sendMessage(packet = e.getPacket(), false); } + @SubscribeEvent + public void onSendPacketNoEvent(NoEventPacketEvent e) { + if (!sent.isToggled()) { + return; + } + if (singlePlayer.isToggled() && mc.isSingleplayer() && e.getPacket().getClass().getSimpleName().charAt(0) == 'S') { + return; + } + if (e.isCanceled() && !includeCancelled.isToggled()) { + return; + } + if (ignoreC00.isToggled() && e.getPacket() instanceof C00PacketKeepAlive) { + return; + } + if (ignoreC0F.isToggled() && e.getPacket() instanceof C0FPacketConfirmTransaction) { + return; + } + if (e.getPacket() instanceof C03PacketPlayer && (ignoreC03.isToggled() || (compactC03.isToggled() && (packet == null || packet instanceof C03PacketPlayer)))) { + return; + } + sendMessage(packet = e.getPacket(), false); + } + @SubscribeEvent public void onReceivePacket(ReceivePacketEvent e) { if (!received.isToggled()) { diff --git a/src/main/java/keystrokesmod/module/impl/player/AntiAFK.java b/src/main/java/keystrokesmod/module/impl/player/AntiAFK.java index f7b77b3..ee0d95a 100644 --- a/src/main/java/keystrokesmod/module/impl/player/AntiAFK.java +++ b/src/main/java/keystrokesmod/module/impl/player/AntiAFK.java @@ -1,6 +1,7 @@ package keystrokesmod.module.impl.player; import keystrokesmod.event.PreUpdateEvent; +import keystrokesmod.mixin.impl.accessor.IAccessorMinecraft; import keystrokesmod.module.Module; import keystrokesmod.module.setting.impl.ButtonSetting; import keystrokesmod.module.setting.impl.SliderSetting; @@ -121,7 +122,7 @@ public class AntiAFK extends Module { mc.thePlayer.inventory.currentItem = Utils.randomizeInt(0, 8); } if (randomClicks.isToggled()) { - Reflection.clickMouse(); + ((IAccessorMinecraft) mc).callClickMouse(); } this.ticks = this.h(); this.c = !this.c; diff --git a/src/main/java/keystrokesmod/module/impl/player/AutoJump.java b/src/main/java/keystrokesmod/module/impl/player/AutoJump.java deleted file mode 100644 index 66e9c77..0000000 --- a/src/main/java/keystrokesmod/module/impl/player/AutoJump.java +++ /dev/null @@ -1,42 +0,0 @@ -package keystrokesmod.module.impl.player; - -import keystrokesmod.module.Module; -import keystrokesmod.module.setting.impl.ButtonSetting; -import keystrokesmod.utility.Utils; -import net.minecraft.client.settings.KeyBinding; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent.PlayerTickEvent; - -public class AutoJump extends Module { - public static ButtonSetting b; - private boolean c = false; - - public AutoJump() { - super("AutoJump", Module.category.player, 0); - this.registerSetting(b = new ButtonSetting("Cancel when shifting", true)); - } - - public void onDisable() { - this.ju(this.c = false); - } - - @SubscribeEvent - public void p(PlayerTickEvent e) { - if (Utils.nullCheck()) { - if (mc.thePlayer.onGround && (!b.isToggled() || !mc.thePlayer.isSneaking())) { - if (Utils.onEdge()) { - this.ju(this.c = true); - } else if (this.c) { - this.ju(this.c = false); - } - } else if (this.c) { - this.ju(this.c = false); - } - - } - } - - private void ju(boolean ju) { - KeyBinding.setKeyBindState(mc.gameSettings.keyBindJump.getKeyCode(), ju); - } -} diff --git a/src/main/java/keystrokesmod/module/impl/player/AutoPlace.java b/src/main/java/keystrokesmod/module/impl/player/AutoPlace.java index 0db09d1..adbdd95 100644 --- a/src/main/java/keystrokesmod/module/impl/player/AutoPlace.java +++ b/src/main/java/keystrokesmod/module/impl/player/AutoPlace.java @@ -1,5 +1,6 @@ package keystrokesmod.module.impl.player; +import keystrokesmod.mixin.impl.accessor.IAccessorMinecraft; import keystrokesmod.module.Module; import keystrokesmod.module.ModuleManager; import keystrokesmod.module.setting.impl.ButtonSetting; @@ -55,7 +56,7 @@ public class AutoPlace extends Module { public void onDisable() { if (holdRight.isToggled()) { - this.rd(4); + this.setRightClickDelay(4); } this.resetVariables(); @@ -71,10 +72,10 @@ public class AutoPlace extends Module { } if (fastPlaceJump.isToggled() && holdRight.isToggled() && !ModuleManager.fastPlace.isEnabled() && Mouse.isButtonDown(1)) { if (mc.thePlayer.motionY > 0.0) { - this.rd(1); + this.setRightClickDelay(1); } else if (!pitchCheck.isToggled() || mc.thePlayer.rotationPitch >= 70.0f) { - this.rd(1000); + this.setRightClickDelay(1000); } } } @@ -122,13 +123,8 @@ public class AutoPlace extends Module { } } - private void rd(int i) { - try { - if (Reflection.rightClickDelayTimerField != null) { - Reflection.rightClickDelayTimerField.set(mc, i); - } - } catch (IllegalAccessException | IndexOutOfBoundsException var3) { - } + private void setRightClickDelay(int delay) { + ((IAccessorMinecraft) mc).setRightClickDelayTimer(delay); } private void resetVariables() { diff --git a/src/main/java/keystrokesmod/module/impl/player/AutoTool.java b/src/main/java/keystrokesmod/module/impl/player/AutoTool.java index e05c357..f1270a3 100644 --- a/src/main/java/keystrokesmod/module/impl/player/AutoTool.java +++ b/src/main/java/keystrokesmod/module/impl/player/AutoTool.java @@ -1,6 +1,6 @@ package keystrokesmod.module.impl.player; -import keystrokesmod.mixins.interfaces.IMixinItemRenderer; +import keystrokesmod.mixin.interfaces.IMixinItemRenderer; import keystrokesmod.module.Module; import keystrokesmod.module.setting.impl.ButtonSetting; import keystrokesmod.module.setting.impl.SliderSetting; diff --git a/src/main/java/keystrokesmod/module/impl/player/Blink.java b/src/main/java/keystrokesmod/module/impl/player/Blink.java index 6d430b1..b7e2bf7 100644 --- a/src/main/java/keystrokesmod/module/impl/player/Blink.java +++ b/src/main/java/keystrokesmod/module/impl/player/Blink.java @@ -80,7 +80,7 @@ public class Blink extends Module { this.disable(); return; } - if (ModuleManager.killAura.lag || ModuleManager.killAura.justUnTargeted) { + if (ModuleManager.killAura.lag || ModuleManager.killAura.justUnTargeted || ModuleManager.killAura.target != null) { return; } if (disableOnBreak.isToggled() && (Utils.usingBedAura() || ModuleUtils.isBreaking)) { @@ -88,10 +88,7 @@ public class Blink extends Module { return; } Packet packet = e.getPacket(); - if (packet.getClass().getSimpleName().startsWith("S")) { - return; - } - if (packet instanceof C00PacketKeepAlive || packet instanceof C00PacketLoginStart || packet instanceof C00Handshake) { + if (e.isCanceled() || packet.getClass().getSimpleName().startsWith("S") || packet instanceof C00PacketLoginStart || packet instanceof C00Handshake) { return; } started = true; diff --git a/src/main/java/keystrokesmod/module/impl/player/DelayRemover.java b/src/main/java/keystrokesmod/module/impl/player/DelayRemover.java index 42ec1a0..9091b4a 100644 --- a/src/main/java/keystrokesmod/module/impl/player/DelayRemover.java +++ b/src/main/java/keystrokesmod/module/impl/player/DelayRemover.java @@ -1,5 +1,7 @@ package keystrokesmod.module.impl.player; +import keystrokesmod.mixin.impl.accessor.IAccessorEntityLivingBase; +import keystrokesmod.mixin.impl.accessor.IAccessorMinecraft; import keystrokesmod.module.Module; import keystrokesmod.module.setting.impl.ButtonSetting; import keystrokesmod.module.setting.impl.SliderSetting; @@ -26,18 +28,10 @@ public class DelayRemover extends Module { return; } if (oldReg.isToggled()) { - try { - Reflection.leftClickCounter.set(mc, 0); - } catch (IllegalAccessException ex) { - } catch (IndexOutOfBoundsException ex2) { - } + ((IAccessorMinecraft) mc).setLeftClickCounter(0); } if (removeJumpTicks.getInput() == 1 || removeJumpTicks.getInput() == 2 && removeJumpDelay()) { - try { - Reflection.jumpTicks.set(mc.thePlayer, 0); - } catch (IllegalAccessException ex3) { - } catch (IndexOutOfBoundsException ex4) { - } + ((IAccessorEntityLivingBase) mc.thePlayer).setJumpTicks(0); } } diff --git a/src/main/java/keystrokesmod/module/impl/player/Disabler.java b/src/main/java/keystrokesmod/module/impl/player/Disabler.java index 8c7e6e1..2e0b6e6 100644 --- a/src/main/java/keystrokesmod/module/impl/player/Disabler.java +++ b/src/main/java/keystrokesmod/module/impl/player/Disabler.java @@ -1,26 +1,12 @@ package keystrokesmod.module.impl.player; -import keystrokesmod.event.PreMotionEvent; -import keystrokesmod.event.PrePlayerInputEvent; -import keystrokesmod.event.ReceivePacketEvent; +import keystrokesmod.event.*; import keystrokesmod.module.Module; import keystrokesmod.module.ModuleManager; -import keystrokesmod.module.impl.movement.LongJump; import keystrokesmod.module.setting.impl.ButtonSetting; -import keystrokesmod.module.setting.impl.SliderSetting; -import keystrokesmod.script.classes.Block; -import keystrokesmod.utility.BlockUtils; -import keystrokesmod.utility.PacketUtils; -import keystrokesmod.utility.Reflection; import keystrokesmod.utility.Utils; -import net.minecraft.client.settings.KeyBinding; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.network.play.client.C03PacketPlayer; +import net.minecraft.network.play.client.C0BPacketEntityAction; import net.minecraft.network.play.server.S08PacketPlayerPosLook; -import net.minecraft.network.play.server.S12PacketEntityVelocity; -import net.minecraft.network.play.server.S27PacketExplosion; -import net.minecraft.util.BlockPos; import net.minecraftforge.event.entity.EntityJoinWorldEvent; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; @@ -28,6 +14,8 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import java.util.Objects; public class Disabler extends Module { + public ButtonSetting motion; + public ButtonSetting bridging; private final int defaultSetbacks = 20; private final long joinDelay = 200, delay = 0, checkDisabledTime = 4000, timeout = 12000; @@ -41,12 +29,19 @@ public class Disabler extends Module { private boolean noRotateWasEnabled; private Class noRotate; + private boolean hasSneaked, hasWentInAir; + private int lastSneakTicks; + private int lastY; + //private String text; private int[] disp; private int width; public Disabler() { super("Disabler", Module.category.player); + + this.registerSetting(motion = new ButtonSetting("Motion", false)); + this.registerSetting(bridging = new ButtonSetting("Bridging", false)); } private void resetVars() { @@ -59,7 +54,7 @@ public class Disabler extends Module { @SubscribeEvent(priority = EventPriority.LOWEST) public void onPreMotion(PreMotionEvent e) { - long now = System.currentTimeMillis(); + /*long now = System.currentTimeMillis(); if (!awaitGround && !mc.thePlayer.onGround) { disablerAirTicks++; @@ -139,10 +134,53 @@ public class Disabler extends Module { e.setPosZ(zOffset + min_offset); } } + }*/ + + if (bridging.isToggled()) { + if (mc.gameSettings.keyBindSneak.isKeyDown() || !Safewalk.canSafeWalk() && !ModuleManager.scaffold.isEnabled) { + lastSneakTicks = 0; + } + if (mc.thePlayer.onGround) { // Switching Y levels doesnt stop flagging + if ((int) mc.thePlayer.posY != lastY && hasWentInAir) { + lastSneakTicks = 0; + Utils.print("Dif Y"); + } + lastY = (int) mc.thePlayer.posY; + hasWentInAir = false; + } + else { + hasWentInAir = true; + } + lastSneakTicks++; } + } + @SubscribeEvent + public void onPostPlayerInput(PostPlayerInputEvent e) { + if (bridging.isToggled()) { + if (hasSneaked) { + if (!mc.gameSettings.keyBindSneak.isKeyDown()) { + mc.thePlayer.sendQueue.addToSendQueue(new C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.STOP_SNEAKING)); + } + hasSneaked = false; + lastSneakTicks = 0; + } else if (lastSneakTicks >= 19) { + if (!mc.gameSettings.keyBindSneak.isKeyDown() && (Safewalk.canSafeWalk() || ModuleManager.scaffold.isEnabled) && mc.thePlayer.onGround) { + mc.thePlayer.sendQueue.addToSendQueue(new C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.START_SNEAKING)); + hasSneaked = true; + Utils.print("Sneak packet"); + } + } + } + } + @SubscribeEvent() + public void onMoveInput(PrePlayerInputEvent e) { + if (awaitSetback) { + e.setForward(0); + e.setStrafe(0); + } } @SubscribeEvent @@ -153,14 +191,6 @@ public class Disabler extends Module { } } - @SubscribeEvent(priority = EventPriority.LOWEST) // called last in order to apply fix - public void onMoveInput(PrePlayerInputEvent e) { - if (awaitSetback) { - e.setForward(0); - e.setStrafe(0); - } - } - /*void onRenderTick(float partialTicks) { if (awaitSetback) { if (hideProgress || text == null) { diff --git a/src/main/java/keystrokesmod/module/impl/player/FastMine.java b/src/main/java/keystrokesmod/module/impl/player/FastMine.java index a8ed790..ba7ee82 100644 --- a/src/main/java/keystrokesmod/module/impl/player/FastMine.java +++ b/src/main/java/keystrokesmod/module/impl/player/FastMine.java @@ -1,11 +1,11 @@ package keystrokesmod.module.impl.player; +import keystrokesmod.mixin.impl.accessor.IAccessorPlayerControllerMP; import keystrokesmod.module.Module; import keystrokesmod.module.setting.impl.ButtonSetting; import keystrokesmod.module.setting.impl.DescriptionSetting; import keystrokesmod.module.setting.impl.SliderSetting; import keystrokesmod.utility.BlockUtils; -import keystrokesmod.utility.Reflection; import keystrokesmod.utility.Utils; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.TickEvent; @@ -17,8 +17,8 @@ public class FastMine extends Module { // from b4 src private SliderSetting mode; private ButtonSetting creativeDisable; private float lastCurBlockDamageMP; - private String[] modes = new String[]{"Pre", "Post", "Increment"}; - + private String[] modes = new String[] { "Pre", "Post", "Increment" }; + public FastMine() { super("FastMine", category.player); this.registerSetting(new DescriptionSetting("Vanilla is 5 delay & 1x speed.")); @@ -34,11 +34,6 @@ public class FastMine extends Module { // from b4 src return ((int) multiplier.getInput() == multiplier.getInput() ? (int) multiplier.getInput() + "" : multiplier.getInput()) + multiplier.getSuffix(); } - @Override - public int getInfoType() { - return 1; - } - @SubscribeEvent public void a(TickEvent.PlayerTickEvent e) { if (e.phase != TickEvent.Phase.END || !mc.inGameHasFocus || !Utils.nullCheck()) { @@ -47,57 +42,49 @@ public class FastMine extends Module { // from b4 src if (creativeDisable.isToggled() && mc.thePlayer.capabilities.isCreativeMode) { return; } - final int delay = (int) this.delay.getInput(); + int delay = (int) this.delay.getInput(); if (delay < 5.0) { - try { - if (delay == 0.0) { - Reflection.blockHitDelay.set(mc.playerController, 0); - } else if (Reflection.blockHitDelay.getInt(mc.playerController) > delay) { - Reflection.blockHitDelay.set(mc.playerController, delay); - } - } catch (IllegalAccessException ex) { - } catch (IndexOutOfBoundsException ex2) { + if (delay == 0) { + ((IAccessorPlayerControllerMP) mc.playerController).setBlockHitDelay(0); + } + else if (((IAccessorPlayerControllerMP) mc.playerController).getBlockHitDelay() > delay) { + ((IAccessorPlayerControllerMP) mc.playerController).setBlockHitDelay(delay); } } - final double c = multiplier.getInput(); - if (c > 1.0) { + double multiplierInput = multiplier.getInput(); + if (multiplierInput > 1.0) { if (!mc.thePlayer.capabilities.isCreativeMode && Mouse.isButtonDown(0)) { - try { - final float float1 = Reflection.curBlockDamageMP.getFloat(mc.playerController); - switch ((int) mode.getInput()) { - case 0: { - float n = (float) (1.0 - 1.0 / c); - if (float1 > 0.0f && float1 < n) { - Reflection.curBlockDamageMP.set(mc.playerController, n); - break; - } + float curBlockDamage = ((IAccessorPlayerControllerMP) mc.playerController).getCurBlockDamageMP(); + switch ((int) mode.getInput()) { + case 0: + float damage = (float) (1.0 - 1.0 / multiplierInput); + if (curBlockDamage > 0.0f && curBlockDamage < damage) { + ((IAccessorPlayerControllerMP) mc.playerController).setCurBlockDamageMP(damage); break; } - case 1: { - final double n2 = 1.0 / c; - if (float1 < 1.0f && float1 >= n2) { - Reflection.curBlockDamageMP.set(mc.playerController, 1); - break; - } + break; + case 1: + double extra = 1.0 / multiplierInput; + if (curBlockDamage < 1.0f && curBlockDamage >= extra) { + ((IAccessorPlayerControllerMP) mc.playerController).setCurBlockDamageMP(1); break; } - case 2: { - float n3 = -1.0f; - if (float1 < 1.0f) { - if (mc.objectMouseOver != null && float1 > this.lastCurBlockDamageMP) { - n3 = (float) (this.lastCurBlockDamageMP + BlockUtils.getBlockHardness(mc.theWorld.getBlockState(mc.objectMouseOver.getBlockPos()).getBlock(), mc.thePlayer.inventory.getStackInSlot(mc.thePlayer.inventory.currentItem), false, false) * (c - 0.2152857 * (c - 1.0))); - } - if (n3 != -1.0f && float1 > 0.0f) { - Reflection.curBlockDamageMP.set(mc.playerController, n3); - } + break; + case 2: + float damage2 = -1.0f; + if (curBlockDamage < 1.0f) { + if (mc.objectMouseOver != null && curBlockDamage > this.lastCurBlockDamageMP) { + damage2 = (float) (this.lastCurBlockDamageMP + BlockUtils.getBlockHardness(mc.theWorld.getBlockState(mc.objectMouseOver.getBlockPos()).getBlock(), mc.thePlayer.inventory.getStackInSlot(mc.thePlayer.inventory.currentItem), false, false) * (multiplierInput - 0.2152857 * (multiplierInput - 1.0))); + } + if (damage2 != -1.0f && curBlockDamage > 0.0f) { + ((IAccessorPlayerControllerMP) mc.playerController).setCurBlockDamageMP(damage2); } - this.lastCurBlockDamageMP = float1; - break; } - } - } catch (IllegalAccessException | IndexOutOfBoundsException ex3) { + this.lastCurBlockDamageMP = curBlockDamage; + break; } - } else if (mode.getInput() == 2) { + } + else if (mode.getInput() == 2) { this.lastCurBlockDamageMP = 0.0f; } } diff --git a/src/main/java/keystrokesmod/module/impl/player/FastPlace.java b/src/main/java/keystrokesmod/module/impl/player/FastPlace.java index 5752edb..11081f2 100644 --- a/src/main/java/keystrokesmod/module/impl/player/FastPlace.java +++ b/src/main/java/keystrokesmod/module/impl/player/FastPlace.java @@ -1,6 +1,7 @@ package keystrokesmod.module.impl.player; import keystrokesmod.event.SendPacketEvent; +import keystrokesmod.mixin.impl.accessor.IAccessorMinecraft; import keystrokesmod.module.Module; import keystrokesmod.module.ModuleManager; import keystrokesmod.module.setting.impl.ButtonSetting; @@ -32,7 +33,7 @@ public class FastPlace extends Module { if (ModuleManager.scaffold.stopFastPlace()) { return; } - if (Utils.nullCheck() && mc.inGameHasFocus && Reflection.rightClickDelayTimerField != null) { + if (Utils.nullCheck() && mc.inGameHasFocus) { if (blocksOnly.isToggled()) { ItemStack item = mc.thePlayer.getHeldItem(); if (item == null || !(item.getItem() instanceof ItemBlock)) { @@ -43,22 +44,18 @@ public class FastPlace extends Module { return; } - try { - int c = (int) tickDelay.getInput(); - if (c == 0) { - Reflection.rightClickDelayTimerField.set(mc, 0); - } else { - if (c == 4) { - return; - } - - int d = Reflection.rightClickDelayTimerField.getInt(mc); - if (d == 4) { - Reflection.rightClickDelayTimerField.set(mc, c); - } + int c = (int) tickDelay.getInput(); + if (c == 0) { + ((IAccessorMinecraft) mc).setRightClickDelayTimer(0); + } else { + if (c == 4) { + return; + } + + int d = ((IAccessorMinecraft) mc).getRightClickDelayTimer(); + if (d == 4) { + ((IAccessorMinecraft) mc).setRightClickDelayTimer(c); } - } catch (IllegalAccessException var4) { - } catch (IndexOutOfBoundsException var5) { } } } diff --git a/src/main/java/keystrokesmod/module/impl/player/NoFall.java b/src/main/java/keystrokesmod/module/impl/player/NoFall.java index ddbfa4e..ec2ae9f 100644 --- a/src/main/java/keystrokesmod/module/impl/player/NoFall.java +++ b/src/main/java/keystrokesmod/module/impl/player/NoFall.java @@ -79,9 +79,13 @@ public class NoFall extends Module { } } if (isFalling && mode.getInput() == 3) { - Utils.getTimer().timerSpeed = (float) 1; + if (mc.thePlayer.ticksExisted % 2 == 0) { + Utils.getTimer().timerSpeed = (float) Utils.randomizeDouble(0.5, 0.6); + } + else { + Utils.getTimer().timerSpeed = (float) 1; + } if (distanceFallen >= 3) { - Utils.getTimer().timerSpeed = (float) 0.5; mc.getNetHandler().addToSendQueue(new C03PacketPlayer(true)); initialY = mc.thePlayer.posY; edging = "nofall packet"; diff --git a/src/main/java/keystrokesmod/module/impl/player/Scaffold.java b/src/main/java/keystrokesmod/module/impl/player/Scaffold.java index 6621f30..13cca31 100644 --- a/src/main/java/keystrokesmod/module/impl/player/Scaffold.java +++ b/src/main/java/keystrokesmod/module/impl/player/Scaffold.java @@ -3,7 +3,7 @@ package keystrokesmod.module.impl.player; import keystrokesmod.event.PreMotionEvent; import keystrokesmod.event.PreUpdateEvent; import keystrokesmod.event.ReceivePacketEvent; -import keystrokesmod.mixins.interfaces.IMixinItemRenderer; +import keystrokesmod.mixin.interfaces.IMixinItemRenderer; import keystrokesmod.module.Module; import keystrokesmod.module.ModuleManager; import keystrokesmod.module.impl.movement.LongJump; @@ -74,6 +74,8 @@ public class Scaffold extends Module { private long lastSwap, lastSwap2; private boolean didFlip; + public boolean canBlockFade; + private boolean floatJumped; private boolean floatStarted; private boolean floatWasEnabled; @@ -91,6 +93,8 @@ public class Scaffold extends Module { private static float rotOffset; + private long firstStroke; + public boolean moduleEnabled; public boolean isEnabled; private boolean disabledModule; @@ -126,6 +130,8 @@ public class Scaffold extends Module { public void onEnable() { isEnabled = true; moduleEnabled = true; + ModuleUtils.fadeEdge = 0; + firstStroke = System.currentTimeMillis(); FMLCommonHandler.instance().bus().register(scaffoldBlockCount = new ScaffoldBlockCount(mc)); lastSlot.set(-1); @@ -149,6 +155,7 @@ public class Scaffold extends Module { if (!isEnabled || !holdingBlocks()) { return; } + canBlockFade = true; int simpleY = (int) Math.round((e.posY % 1) * 10000); if (Utils.keysDown() && usingFastScaffold() && fastScaffold.getInput() >= 1 && !ModuleManager.tower.canTower() && !ModuleManager.LongJump.isEnabled()) { // jump mode if (mc.thePlayer.onGround && Utils.isMoving()) { @@ -236,19 +243,21 @@ public class Scaffold extends Module { float mainOffset = MathHelper.wrapAngleTo180_float(yawBackwards - lastBlockYaw); float rawOffset = MathHelper.wrapAngleTo180_float(yawBackwards - lastBlockYaw); float mainOffset2 = MathHelper.wrapAngleTo180_float(yawBackwards - lastBlockYaw); - rotOffset = (!Utils.scaffoldDiagonal(false)) ? 134.475F : 140.625F; - float minOffset = (!Utils.scaffoldDiagonal(false)) ? 35 : 5; + rotOffset = (!Utils.scaffoldDiagonal(false)) ? 135F : 140F; + float minOffset = (!Utils.scaffoldDiagonal(false)) ? 30 : 0; if (blockRotations != null) { e.setYaw(blockRotations[0]); e.setPitch(blockRotations[1]); + lastBlockYaw = MathHelper.wrapAngleTo180_float(blockRotations[0]); + + //Utils.print("" + MathHelper.wrapAngleTo180_float(blockRotations[0])); - if (rotation.getInput() == 2) { - lastBlockYaw = blockRotations[0]; + if (rotation.getInput() == 2 && !ModuleManager.tower.isVerticalTowering()) { if (!flipRotation) { if (main >= 0) { //Utils.print("Main1"); @@ -284,26 +293,21 @@ public class Scaffold extends Module { //Utils.print("2 "); } } - - //if (System.currentTimeMillis() - lastSwap >= 0) { - //Utils.print("" + rawOffset); - double minFlip = (!Utils.scaffoldDiagonal(false)) ? 7 : 14; + double minFlip = (!Utils.scaffoldDiagonal(false)) ? 6 : 14; + double minEdge = (!Utils.scaffoldDiagonal(false)) ? 0 : 10; + if (firstStroke > 0 && (System.currentTimeMillis() - firstStroke) > 200) { if (!didFlip) { - if ((main >= 0 && rawOffset >= 0 || main <= -0 && rawOffset <= -0)) { + if ((main >= 0 && rawOffset >= minEdge || main <= -0 && rawOffset <= -minEdge)) { didFlip = true; flipRotation = true; - } - else { + } else { didFlip = true; flipRotation = false; } - } - else if ((main >= 0 && rawOffset >= minFlip || main >= 0 && rawOffset <= -minFlip || main <= -0 && rawOffset <= -minFlip || main <= -0 && rawOffset >= minFlip)) { + } else if ((main >= 0 && rawOffset >= minFlip || main >= 0 && rawOffset <= -minFlip || main <= -0 && rawOffset <= -minFlip || main <= -0 && rawOffset >= minFlip)) { didFlip = false; } - //lastSwap = System.currentTimeMillis(); - //Utils.print("flip " + mainOffset); - //} + } if (!flipRotation) { e.setYaw(e.getYaw() - mainOffset); @@ -418,7 +422,7 @@ public class Scaffold extends Module { } break; case 3: - if (!firstKeepYPlace && keepYTicks == 8 || Utils.scaffoldDiagonal(false) && keepYTicks == 11) { + if (!firstKeepYPlace && keepYTicks == 8) { placeBlock(1, 0); firstKeepYPlace = true; } diff --git a/src/main/java/keystrokesmod/module/impl/player/Tower.java b/src/main/java/keystrokesmod/module/impl/player/Tower.java index 38d18ef..62a1703 100644 --- a/src/main/java/keystrokesmod/module/impl/player/Tower.java +++ b/src/main/java/keystrokesmod/module/impl/player/Tower.java @@ -175,16 +175,16 @@ public class Tower extends Module { if (aligning && (int) mc.thePlayer.posX > firstX) { aligned = true; } - e.setYaw(90F); + //e.setYaw(90F); e.setPitch(85F); } if (aligned) { if (placed) { - e.setYaw(270F); + //e.setYaw(270F); e.setPitch(89.9F); } else { - e.setYaw(90F); + //e.setYaw(90F); e.setPitch(85F); } placeExtraBlock = true; @@ -201,9 +201,13 @@ public class Tower extends Module { } } + public boolean isVerticalTowering() { + return canTower() && !Utils.keysDown() && verticalTower.getInput() == 2; + } + @SubscribeEvent public void onPostPlayerInput(PostPlayerInputEvent e) { - if (canTower() && Utils.keysDown() && towerMove.getInput() > 0) { + /*if (canTower() && Utils.keysDown() && towerMove.getInput() > 0) { mc.thePlayer.movementInput.jump = false; if (!firstJump) { if (!mc.thePlayer.onGround) { @@ -217,7 +221,7 @@ public class Tower extends Module { firstJump = true; } } - } + }*/ if (canTower() && !Utils.keysDown() && verticalTower.getInput() > 0) { mc.thePlayer.movementInput.jump = false; } diff --git a/src/main/java/keystrokesmod/module/impl/render/BedESP.java b/src/main/java/keystrokesmod/module/impl/render/BedESP.java index 1bf4e3f..bca8c93 100644 --- a/src/main/java/keystrokesmod/module/impl/render/BedESP.java +++ b/src/main/java/keystrokesmod/module/impl/render/BedESP.java @@ -48,7 +48,7 @@ public class BedESP extends Module { return; } lastCheck = System.currentTimeMillis(); - Raven.getExecutor().execute(() -> { + Raven.getCachedExecutor().execute(() -> { int i; priorityLoop: for (int n = i = (int) range.getInput(); i >= -n; --i) { diff --git a/src/main/java/keystrokesmod/module/impl/render/BreakProgress.java b/src/main/java/keystrokesmod/module/impl/render/BreakProgress.java index 1d92791..9028632 100644 --- a/src/main/java/keystrokesmod/module/impl/render/BreakProgress.java +++ b/src/main/java/keystrokesmod/module/impl/render/BreakProgress.java @@ -1,5 +1,6 @@ package keystrokesmod.module.impl.render; +import keystrokesmod.mixin.impl.accessor.IAccessorPlayerControllerMP; import keystrokesmod.module.Module; import keystrokesmod.module.ModuleManager; import keystrokesmod.module.setting.impl.ButtonSetting; @@ -95,16 +96,13 @@ public class BreakProgress extends Module { this.resetVariables(); return; } - try { - this.progress = Reflection.curBlockDamageMP.getFloat(mc.playerController); - if (this.progress == 0.0f) { - this.resetVariables(); - return; - } - this.block = mc.objectMouseOver.getBlockPos(); - this.setProgress(); - } catch (IllegalAccessException ex) { + this.progress = ((IAccessorPlayerControllerMP) mc.playerController).getCurBlockDamageMP(); + if (this.progress == 0.0f) { + this.resetVariables(); + return; } + this.block = mc.objectMouseOver.getBlockPos(); + this.setProgress(); } public void onDisable() { diff --git a/src/main/java/keystrokesmod/module/impl/render/ExtendCamera.java b/src/main/java/keystrokesmod/module/impl/render/ExtendCamera.java index dd87ccf..6e548da 100644 --- a/src/main/java/keystrokesmod/module/impl/render/ExtendCamera.java +++ b/src/main/java/keystrokesmod/module/impl/render/ExtendCamera.java @@ -1,9 +1,9 @@ package keystrokesmod.module.impl.render; +import keystrokesmod.mixin.impl.accessor.IAccessorEntityRenderer; import keystrokesmod.module.Module; import keystrokesmod.module.setting.impl.DescriptionSetting; import keystrokesmod.module.setting.impl.SliderSetting; -import keystrokesmod.utility.Reflection; import keystrokesmod.utility.Utils; public class ExtendCamera extends Module { @@ -38,12 +38,6 @@ public class ExtendCamera extends Module { } private void setThirdPersonDistance(float distance) { - try { - Reflection.thirdPersonDistance.set(mc.entityRenderer, distance); - } - catch (Exception e) { - e.printStackTrace(); - Utils.sendMessage("&cThere was an issue setting third person distance."); - } + ((IAccessorEntityRenderer) mc.entityRenderer).setThirdPersonDistance(distance); } -} +} \ No newline at end of file diff --git a/src/main/java/keystrokesmod/module/impl/render/Indicators.java b/src/main/java/keystrokesmod/module/impl/render/Indicators.java index c8c3084..39d4bd3 100644 --- a/src/main/java/keystrokesmod/module/impl/render/Indicators.java +++ b/src/main/java/keystrokesmod/module/impl/render/Indicators.java @@ -1,11 +1,13 @@ package keystrokesmod.module.impl.render; +import keystrokesmod.mixin.impl.accessor.IAccessorEntityArrow; +import keystrokesmod.mixin.impl.accessor.IAccessorEntityRenderer; +import keystrokesmod.mixin.impl.accessor.IAccessorMinecraft; import keystrokesmod.module.Module; import keystrokesmod.module.impl.world.AntiBot; import keystrokesmod.module.setting.impl.ButtonSetting; import keystrokesmod.module.setting.impl.SliderSetting; import keystrokesmod.utility.BlockUtils; -import keystrokesmod.utility.Reflection; import keystrokesmod.utility.RenderUtils; import keystrokesmod.utility.Utils; import net.minecraft.block.Block; @@ -20,7 +22,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityArrow; import net.minecraft.entity.projectile.EntityFireball; import net.minecraft.entity.projectile.EntityLargeFireball; -import net.minecraft.entity.projectile.EntityWitherSkull; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.util.BlockPos; @@ -32,7 +33,6 @@ import org.lwjgl.opengl.GL11; import java.awt.*; import java.util.HashSet; -import java.util.Iterator; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -77,15 +77,16 @@ public class Indicators extends Module { return; } try { - Iterator iterator = threats.iterator(); - while (iterator.hasNext()) { - Entity en = iterator.next(); - if (en == null || !mc.theWorld.loadedEntityList.contains(en) || !canRender(en) || (en instanceof EntityArrow && Reflection.inGround.getBoolean(en))) { - iterator.remove(); + for (Entity en : mc.theWorld.loadedEntityList) { + if (en == null || en == mc.thePlayer) { continue; } ItemStack itemStack = null; if (en instanceof EntityArrow) { + if (((IAccessorEntityArrow) en).getInGround()) { + threats.remove(en); + continue; + } itemStack = new ItemStack(Items.arrow); } else if (en instanceof EntityFireball) { @@ -94,7 +95,7 @@ public class Indicators extends Module { else if (en instanceof EntityEnderPearl) { itemStack = new ItemStack(Items.ender_pearl); } - if (!mc.theWorld.loadedEntityList.contains(en)) { + if (!threats.contains(en) && !(en instanceof EntityPlayer)) { continue; } this.renderIndicatorFor(en, itemStack, event.renderTickTime); @@ -111,30 +112,23 @@ public class Indicators extends Module { if (e.entity == mc.thePlayer) { this.threats.clear(); } - else if (canRender(e.entity) && (mc.thePlayer.getDistanceSqToEntity(e.entity) > 36 || !threatsOnly.isToggled() || e.entity instanceof EntityPlayer)) { + else if (canRender(e.entity) && (mc.thePlayer.getDistanceSqToEntity(e.entity) > 36 || !threatsOnly.isToggled())) { this.threats.add(e.entity); } } private boolean canRender(Entity entity) { - try { - if (entity instanceof EntityArrow && !Reflection.inGround.getBoolean(entity) && renderArrows.isToggled()) { - return true; - } - else if (entity instanceof EntityLargeFireball && renderFireballs.isToggled()) { - return true; - } - else if (entity instanceof EntityEnderPearl && renderPearls.isToggled()) { - return true; - } - else if (entity instanceof EntityPlayer && renderPlayers.isToggled() && AntiBot.isBot(entity)) { - return true; - } + if (entity instanceof EntityArrow && !((IAccessorEntityArrow) entity).getInGround() && renderArrows.isToggled()) { + return true; } - catch (IllegalAccessException e) { - Utils.sendMessage("&cIssue checking entity."); - e.printStackTrace(); - return false; + else if (entity instanceof EntityLargeFireball && renderFireballs.isToggled()) { + return true; + } + else if (entity instanceof EntityEnderPearl && renderPearls.isToggled()) { + return true; + } + else if (entity instanceof EntityPlayer && renderPlayers.isToggled() && !AntiBot.isBot(entity)) { + return true; } return false; } @@ -153,9 +147,7 @@ public class Indicators extends Module { double y = en.lastTickPosY + (en.posY - en.lastTickPosY) * partialTicks - mc.getRenderManager().viewerPosY + en.height / 2; double z = en.lastTickPosZ + (en.posZ - en.lastTickPosZ) * partialTicks - mc.getRenderManager().viewerPosZ; - if (!Reflection.setupCameraTransform(mc.entityRenderer, partialTicks, 0)) { - return; - } + ((IAccessorEntityRenderer) mc.entityRenderer).callSetupCameraTransform(((IAccessorMinecraft) mc).getTimer().renderPartialTicks, 0); ScaledResolution scaledResolution = new ScaledResolution(mc); Vec3 vec = RenderUtils.convertTo2D(scaledResolution.getScaleFactor(), x, y, z); @@ -270,6 +262,9 @@ public class Indicators extends Module { } private Color getColorForItem(ItemStack itemStack) { + if (itemStack == null) { + return Color.WHITE; + } if (itemStack.getItem() == Items.ender_pearl) { return new Color(210, 0, 255); } diff --git a/src/main/java/keystrokesmod/module/impl/render/Nametags.java b/src/main/java/keystrokesmod/module/impl/render/Nametags.java index 8afe44f..429e937 100644 --- a/src/main/java/keystrokesmod/module/impl/render/Nametags.java +++ b/src/main/java/keystrokesmod/module/impl/render/Nametags.java @@ -1,12 +1,13 @@ package keystrokesmod.module.impl.render; +import keystrokesmod.mixin.impl.accessor.IAccessorEntityRenderer; +import keystrokesmod.mixin.impl.accessor.IAccessorMinecraft; import keystrokesmod.module.Module; import keystrokesmod.module.ModuleManager; import keystrokesmod.module.impl.world.AntiBot; import keystrokesmod.module.setting.impl.ButtonSetting; import keystrokesmod.module.setting.impl.DescriptionSetting; import keystrokesmod.module.setting.impl.SliderSetting; -import keystrokesmod.utility.Reflection; import keystrokesmod.utility.RenderUtils; import keystrokesmod.utility.Utils; import net.minecraft.client.gui.ScaledResolution; @@ -21,7 +22,6 @@ import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import java.awt.*; -import java.util.Locale; public class Nametags extends Module { private SliderSetting scale; @@ -46,7 +46,7 @@ public class Nametags extends Module { public Nametags() { super("Nametags", category.render, 0); - this.registerSetting(scale = new SliderSetting("Scale", 1.0, 0.1, 5.0, 0.1)); + this.registerSetting(scale = new SliderSetting("Scale", 1.0, 0.5, 5.0, 0.1)); this.registerSetting(autoScale = new ButtonSetting("Auto-scale", true)); this.registerSetting(drawBackground = new ButtonSetting("Draw background", true)); this.registerSetting(onlyRenderName = new ButtonSetting("Only render name", false)); @@ -109,21 +109,18 @@ public class Nametags extends Module { double renderHeightOffset = (playerY - mc.getRenderManager().viewerPosY) + (!en.isSneaking() ? en.height : en.height - 0.3) + 0.294; double heightOffset = playerY + (!en.isSneaking() ? en.height : en.height - 0.3) + 0.294; - if (!Reflection.setupCameraTransform(mc.entityRenderer, ev.partialTicks, 0)) { - continue; - } + ((IAccessorEntityRenderer) mc.entityRenderer).callSetupCameraTransform(((IAccessorMinecraft) mc).getTimer().renderPartialTicks, 0); Vec3 screenCords = RenderUtils.convertTo2D(scaledResolution.getScaleFactor(), playerX - mc.getRenderManager().viewerPosX, renderHeightOffset, playerZ - mc.getRenderManager().viewerPosZ); + if (screenCords == null) { + continue; + } boolean inFrustum = screenCords.zCoord < 1.0003684; if (!inFrustum) { continue; } mc.entityRenderer.setupOverlayRendering(); - if (screenCords == null) { - continue; - } - float scaleSetting = (float) scale.getInput(); float newScale = scaleSetting; if (autoScale.isToggled()) { @@ -190,7 +187,7 @@ public class Nametags extends Module { double startTime = ModuleManager.skyWars.strengthPlayers.get(en); double timePassed = (System.currentTimeMillis() - startTime) / 1000; double strengthRemaining = Math.max(0, Utils.round(5.0 - timePassed, 1)); - String strengthInfo = "§4" + (Utils.isWholeNumber(strengthRemaining) ? (int) strengthRemaining + "" : strengthRemaining) + "s§r "; + String strengthInfo = "§4" + Utils.asWholeNum(strengthRemaining) + "s§r "; name = strengthInfo + name; } diff --git a/src/main/java/keystrokesmod/module/impl/render/PlayerESP.java b/src/main/java/keystrokesmod/module/impl/render/PlayerESP.java index 1c30de3..4e90c71 100644 --- a/src/main/java/keystrokesmod/module/impl/render/PlayerESP.java +++ b/src/main/java/keystrokesmod/module/impl/render/PlayerESP.java @@ -1,13 +1,14 @@ package keystrokesmod.module.impl.render; import keystrokesmod.Raven; +import keystrokesmod.mixin.impl.accessor.IAccessorEntityRenderer; +import keystrokesmod.mixin.impl.accessor.IAccessorMinecraft; import keystrokesmod.module.Module; import keystrokesmod.module.ModuleManager; import keystrokesmod.module.impl.world.AntiBot; import keystrokesmod.module.setting.impl.ButtonSetting; import keystrokesmod.module.setting.impl.DescriptionSetting; import keystrokesmod.module.setting.impl.SliderSetting; -import keystrokesmod.utility.Reflection; import keystrokesmod.utility.RenderUtils; import keystrokesmod.utility.Utils; import net.minecraft.client.gui.FontRenderer; @@ -195,9 +196,8 @@ public class PlayerESP extends Module { if (!RenderUtils.isInViewFrustum(en)) { return; } - if (!Reflection.setupCameraTransform(mc.entityRenderer, partialTicks, 0)) { - return; - } + ((IAccessorEntityRenderer) mc.entityRenderer).callSetupCameraTransform(((IAccessorMinecraft) mc).getTimer().renderPartialTicks, 0); + ScaledResolution scaledResolution = new ScaledResolution(mc); double playerX = en.lastTickPosX + (en.posX - en.lastTickPosX) * partialTicks - mc.getRenderManager().viewerPosX; diff --git a/src/main/java/keystrokesmod/module/impl/render/Shaders.java b/src/main/java/keystrokesmod/module/impl/render/Shaders.java index d884f32..1e4c178 100644 --- a/src/main/java/keystrokesmod/module/impl/render/Shaders.java +++ b/src/main/java/keystrokesmod/module/impl/render/Shaders.java @@ -1,9 +1,9 @@ package keystrokesmod.module.impl.render; import keystrokesmod.event.ReceivePacketEvent; +import keystrokesmod.mixin.impl.accessor.IAccessorEntityRenderer; import keystrokesmod.module.Module; import keystrokesmod.module.setting.impl.SliderSetting; -import keystrokesmod.utility.Reflection; import keystrokesmod.utility.Utils; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.network.play.server.S08PacketPlayerPosLook; @@ -18,45 +18,17 @@ public class Shaders extends Module { public Shaders() { super("Shaders", category.render); - try { - shaderLocations = (ResourceLocation[]) Reflection.shaderResourceLocations.get(mc.entityRenderer); - shaderNames = new String[shaderLocations.length]; - for (int i = 0; i < shaderLocations.length; ++i) { - shaderNames[i] = ((String[]) shaderLocations[i].getResourcePath().replaceFirst("shaders/post/", "").split("\\.json"))[0].toUpperCase(); - } - } - catch (Exception ex) { - ex.printStackTrace(); + shaderLocations = ((IAccessorEntityRenderer) mc.entityRenderer).getShaderResourceLocations(); + if (shaderLocations == null) { return; } + shaderNames = new String[shaderLocations.length]; + for (int i = 0; i < shaderLocations.length; ++i) { + shaderNames[i] = ((String[]) shaderLocations[i].getResourcePath().replaceFirst("shaders/post/", "").split("\\.json"))[0].toUpperCase(); + } this.registerSetting(shader = new SliderSetting("Shader", 0, shaderNames)); } - public void onUpdate() { - if (resetShader) { - mc.entityRenderer.stopUseShader(); - //Utils.print("Reset shader"); - resetShader = false; - } - if (!Utils.nullCheck() || mc.entityRenderer == null || shaderLocations == null) { - return; - } - try { - if (Reflection.shaderIndex.getInt(mc.entityRenderer) != (int) shader.getInput()) { - Reflection.shaderIndex.setInt(mc.entityRenderer, (int) shader.getInput()); - Reflection.loadShader.invoke(mc.entityRenderer, shaderLocations[(int) shader.getInput()]); - } - else if (!Reflection.useShader.getBoolean(mc.entityRenderer)) { - Reflection.useShader.setBoolean(mc.entityRenderer, true); - } - } - catch (Exception ex) { - ex.printStackTrace(); - Utils.sendMessage("&cError loading shader."); - this.disable(); - } - } - @SubscribeEvent public void onReceivePacket(ReceivePacketEvent e) { if (e.getPacket() instanceof S08PacketPlayerPosLook && mc.thePlayer != null) { @@ -64,6 +36,30 @@ public class Shaders extends Module { } } + public void onUpdate() { + if (resetShader) { + mc.entityRenderer.stopUseShader(); + resetShader = false; + } + if (!Utils.nullCheck() || mc.entityRenderer == null || shaderLocations == null) { + return; + } + try { + if (((IAccessorEntityRenderer) mc.entityRenderer).getShaderIndex() != (int) shader.getInput()) { + ((IAccessorEntityRenderer) mc.entityRenderer).setShaderIndex((int) shader.getInput()); + ((IAccessorEntityRenderer) mc.entityRenderer).callLoadShader(shaderLocations[(int) shader.getInput()]); + } + else if (!((IAccessorEntityRenderer) mc.entityRenderer).getUseShader()) { + ((IAccessorEntityRenderer) mc.entityRenderer).setUseShader(true); + } + } + catch (Exception ex) { + ex.printStackTrace(); + Utils.sendMessage("&cError loading shader."); + this.disable(); + } + } + public void onDisable() { mc.entityRenderer.stopUseShader(); } @@ -74,4 +70,4 @@ public class Shaders extends Module { this.disable(); } } -} +} \ No newline at end of file diff --git a/src/main/java/keystrokesmod/module/impl/render/Xray.java b/src/main/java/keystrokesmod/module/impl/render/Xray.java index dd46c2d..d41e060 100644 --- a/src/main/java/keystrokesmod/module/impl/render/Xray.java +++ b/src/main/java/keystrokesmod/module/impl/render/Xray.java @@ -58,7 +58,7 @@ public class Xray extends Module { return; } lastCheck = System.currentTimeMillis(); - Raven.getExecutor().execute(() -> { + Raven.getCachedExecutor().execute(() -> { synchronized (blocks) { int i; for (int n = i = (int) range.getInput(); i >= -n; --i) { diff --git a/src/main/java/keystrokesmod/script/ScriptDefaults.java b/src/main/java/keystrokesmod/script/ScriptDefaults.java index 925b85a..67c94ca 100644 --- a/src/main/java/keystrokesmod/script/ScriptDefaults.java +++ b/src/main/java/keystrokesmod/script/ScriptDefaults.java @@ -4,6 +4,7 @@ import keystrokesmod.Raven; import keystrokesmod.clickgui.ClickGui; import keystrokesmod.clickgui.components.impl.CategoryComponent; import keystrokesmod.clickgui.components.impl.ModuleComponent; +import keystrokesmod.mixin.impl.accessor.*; import keystrokesmod.module.Module; import keystrokesmod.module.ModuleManager; import keystrokesmod.module.impl.combat.KillAura; @@ -115,7 +116,7 @@ public class ScriptDefaults { } public static void setTimer(float timer) { - Utils.getTimer().timerSpeed = timer; + ((IAccessorMinecraft) mc).getTimer().timerSpeed = timer; } public static boolean isCreative() { @@ -131,27 +132,15 @@ public class ScriptDefaults { } public static String getTitle() { - try { - return (String) Reflection.displayedTitle.get(mc.ingameGUI); - } - catch (IllegalAccessException ignored) {} - return ""; + return ((IAccessorGuiIngame) mc.ingameGUI).getDisplayedTitle(); } public static String getSubTitle() { - try { - return (String) Reflection.displayedSubTitle.get(mc.ingameGUI); - } - catch (IllegalAccessException ignored) {} - return ""; + return ((IAccessorGuiIngame) mc.ingameGUI).getDisplayedSubTitle(); } public static String getRecordPlaying() { - try { - return (String) Reflection.recordPlaying.get(mc.ingameGUI); - } - catch (IllegalAccessException ignored) {} - return ""; + return ((IAccessorGuiIngame) mc.ingameGUI).getRecordPlaying(); } public static boolean isFlying() { @@ -237,7 +226,7 @@ public class ScriptDefaults { } public static void setItemInUseCount(int count) { - Reflection.setItemInUseCount(count); + ((IAccessorEntityPlayer) mc.thePlayer).setItemInUseCount(count); } public static int getItemInUseCount() { @@ -324,18 +313,23 @@ public class ScriptDefaults { } public static String getTabHeader() { - try { - return (String) Reflection.tabHeader.get(mc.ingameGUI.getTabList()); + if (mc == null || mc.ingameGUI == null || mc.ingameGUI.getTabList() == null) { + return ""; + } + IChatComponent header = ((IAccessorGuiPlayerTabOverlay) mc.ingameGUI.getTabList()).getHeader(); + if (header != null) { + return header.getUnformattedText(); } - catch (IllegalAccessException ignored) {} return ""; } public static String getTabFooter() { - try { - return (String) Reflection.tabFooter.get(mc.ingameGUI.getTabList()); + if (mc == null || mc.ingameGUI == null || mc.ingameGUI.getTabList() == null) { + return ""; } - catch (IllegalAccessException ignored) { + IChatComponent footer = ((IAccessorGuiPlayerTabOverlay) mc.ingameGUI.getTabList()).getFooter(); + if (footer != null) { + return footer.getUnformattedText(); } return ""; } @@ -376,6 +370,10 @@ public class ScriptDefaults { PacketUtils.sendPacketNoEvent(packet1); } + public static boolean inFocus() { + return mc.inGameHasFocus; + } + public static void dropItem(boolean dropStack) { mc.thePlayer.dropOneItem(dropStack); } @@ -1017,7 +1015,7 @@ public class ScriptDefaults { public static void item(ItemStack item, float x, float y, float scale) { GlStateManager.pushMatrix(); - Reflection.setupCameraTransform(mc.entityRenderer, Utils.getTimer().renderPartialTicks, 0); + ((IAccessorEntityRenderer) mc.entityRenderer).callSetupCameraTransform(((IAccessorMinecraft) mc).getTimer().renderPartialTicks, 0); mc.entityRenderer.setupOverlayRendering(); if (scale != 1.0f) { GlStateManager.scale(scale, scale, scale); @@ -1064,7 +1062,7 @@ public class ScriptDefaults { x -= mc.getRenderManager().viewerPosX; y -= mc.getRenderManager().viewerPosY; z -= mc.getRenderManager().viewerPosZ; - Reflection.setupCameraTransform(mc.entityRenderer, partialTicks, 0); + ((IAccessorEntityRenderer) mc.entityRenderer).callSetupCameraTransform(((IAccessorMinecraft) mc).getTimer().renderPartialTicks, 0); GL11.glGetFloat(GL11.GL_MODELVIEW_MATRIX, MODELVIEW); GL11.glGetFloat(GL11.GL_PROJECTION_MATRIX, PROJECTION); GL11.glGetInteger(GL11.GL_VIEWPORT, VIEWPORT); @@ -1105,7 +1103,7 @@ public class ScriptDefaults { } public static Vec3 getPosition() { - net.minecraft.util.Vec3 position = Utils.getCameraPos(Utils.getTimer().renderPartialTicks); + net.minecraft.util.Vec3 position = Utils.getCameraPos(((IAccessorMinecraft) mc).getTimer().renderPartialTicks); return new Vec3(position); } @@ -1126,7 +1124,7 @@ public class ScriptDefaults { public static void text3d(String text, float x, float y, float scale, int color, boolean shadow) { GlStateManager.pushMatrix(); - Reflection.setupCameraTransform(mc.entityRenderer, Utils.getTimer().renderPartialTicks, 0); + ((IAccessorEntityRenderer) mc.entityRenderer).callSetupCameraTransform(((IAccessorMinecraft) mc).getTimer().renderPartialTicks, 0); mc.entityRenderer.setupOverlayRendering(); if (scale != 1.0f) { GlStateManager.scale(scale, scale, scale); @@ -1264,20 +1262,14 @@ public class ScriptDefaults { public static List getBookContents() { if (mc.currentScreen instanceof GuiScreenBook) { - try { - List contents = new ArrayList<>(); - int max = Math.min(128 / mc.fontRendererObj.FONT_HEIGHT, ((List) Reflection.bookContents.get(mc.currentScreen)).size()); - for (int line = 0; line < max; ++line) { - IChatComponent lineStr = ((List) Reflection.bookContents.get(mc.currentScreen)).get(line); - contents.add(lineStr.getUnformattedText()); - Utils.sendMessage(lineStr.getUnformattedText()); - } - if (!contents.isEmpty()) { - return contents; - } + List contents = new ArrayList<>(); + int max = Math.min(128 / mc.fontRendererObj.FONT_HEIGHT, ((IAccessorGuiScreenBook) mc.currentScreen).getBookContents().size()); + for (int line = 0; line < max; ++line) { + IChatComponent lineStr = ((IAccessorGuiScreenBook) mc.currentScreen).getBookContents().get(line); + contents.add(lineStr.getUnformattedText()); } - catch (Exception e) { - e.printStackTrace(); + if (!contents.isEmpty()) { + return contents; } } return null; @@ -1404,11 +1396,11 @@ public class ScriptDefaults { } public static void rightClick() { - Reflection.rightClick(); + ((IAccessorMinecraft) mc).callRightClickMouse(); } public static void leftClick() { - Reflection.clickMouse(); + ((IAccessorMinecraft) mc).callClickMouse(); } } diff --git a/src/main/java/keystrokesmod/utility/Commands.java b/src/main/java/keystrokesmod/utility/Commands.java index 431c10f..3a7aa7e 100644 --- a/src/main/java/keystrokesmod/utility/Commands.java +++ b/src/main/java/keystrokesmod/utility/Commands.java @@ -7,7 +7,6 @@ import keystrokesmod.module.impl.client.Settings; import keystrokesmod.module.impl.minigames.DuelsStats; import keystrokesmod.module.impl.movement.Bhop; import keystrokesmod.module.impl.movement.Fly; -import keystrokesmod.module.impl.movement.Speed; import keystrokesmod.module.impl.other.FakeChat; import keystrokesmod.module.impl.other.NameHider; import keystrokesmod.utility.profile.Profile; @@ -49,7 +48,7 @@ public class Commands { print("Setting...", 1); n = args[1]; - Raven.getExecutor().execute(() -> { + Raven.getScheduledExecutor().execute(() -> { if (NetworkUtils.isHypixelKeyValid(n)) { NetworkUtils.API_KEY = n; print("&a" + "success!", 0); @@ -127,7 +126,7 @@ public class Commands { n = args[1]; print("Retrieving data...", 1); - Raven.getExecutor().execute(() -> { + Raven.getScheduledExecutor().execute(() -> { int[] s = ProfileUtils.getHypixelStats(n, ProfileUtils.DM.OVERALL); if (s != null) { if (s[0] == -1) { @@ -179,9 +178,6 @@ public class Commands { case "bhop": Bhop.speedSetting.setValueRaw(value); break; - case "speed": - Speed.speed.setValueRaw(value); - break; default: print(invSyn, 1); return; diff --git a/src/main/java/keystrokesmod/utility/ModuleUtils.java b/src/main/java/keystrokesmod/utility/ModuleUtils.java index 0369bdd..68ff78a 100644 --- a/src/main/java/keystrokesmod/utility/ModuleUtils.java +++ b/src/main/java/keystrokesmod/utility/ModuleUtils.java @@ -1,35 +1,22 @@ package keystrokesmod.utility; -import keystrokesmod.Raven; -import keystrokesmod.event.PostPlayerInputEvent; import keystrokesmod.event.PreMotionEvent; import keystrokesmod.event.PreUpdateEvent; import keystrokesmod.event.SendPacketEvent; import keystrokesmod.module.impl.movement.LongJump; import keystrokesmod.module.impl.render.HUD; -import keystrokesmod.utility.*; -import keystrokesmod.utility.Timer; import net.minecraft.client.Minecraft; -import keystrokesmod.module.Module; import keystrokesmod.module.ModuleManager; -import keystrokesmod.module.impl.client.Settings; -import keystrokesmod.module.setting.impl.ButtonSetting; -import keystrokesmod.module.setting.impl.SliderSetting; -import net.minecraft.client.Minecraft; import net.minecraft.network.play.client.C07PacketPlayerDigging; import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement; -import net.minecraft.network.play.client.C09PacketHeldItemChange; import net.minecraft.util.BlockPos; import net.minecraftforge.client.event.RenderWorldLastEvent; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import org.lwjgl.input.Keyboard; import java.util.Iterator; import java.util.Map; -import static net.minecraft.util.EnumFacing.DOWN; - public class ModuleUtils { private final Minecraft mc; @@ -41,8 +28,11 @@ public class ModuleUtils { public static boolean threwFireball; private int isBreakingTick; public static long MAX_EXPLOSION_DIST_SQ = 10; - private long FIREBALL_TIMEOUT = 750L, fireballTime = 0; + private long FIREBALL_TIMEOUT = 500L, fireballTime = 0; public static int inAirTicks; + public static int fadeEdge; + public static int lastFaceDifference; + private int lastFace; @SubscribeEvent public void onSendPacket(SendPacketEvent e) { @@ -56,6 +46,22 @@ public class ModuleUtils { threwFireball = true; } } + + if (e.getPacket() instanceof C08PacketPlayerBlockPlacement && Utils.scaffoldDiagonal(false)) { + if (((C08PacketPlayerBlockPlacement) e.getPacket()).getPlacedBlockDirection() != 1) { + int currentFace = ((C08PacketPlayerBlockPlacement) e.getPacket()).getPlacedBlockDirection(); + + if (currentFace == lastFace) { + lastFaceDifference++; + } + else { + lastFaceDifference = 0; + } + + lastFace = currentFace; + } + } + } @SubscribeEvent @@ -117,30 +123,29 @@ public class ModuleUtils { } } - //Bhop rotate yaw handling - if (mc.thePlayer.onGround) { - if (mc.thePlayer.moveStrafing == 0 && mc.thePlayer.moveForward <= 0 && Utils.isMoving() && ModuleManager.bhop.isEnabled()) { - ModuleManager.bhop.setRotation = true; - } else { + if (ModuleManager.bhop.setRotation) { + if (!ModuleManager.killAura.isTargeting && !Utils.noSlowingBackWithBow() && !ModuleManager.scaffold.isEnabled && !mc.thePlayer.isCollidedHorizontally) { + float yaw = mc.thePlayer.rotationYaw; + e.setYaw(yaw - 55); + } + if (mc.thePlayer.onGround) { ModuleManager.bhop.setRotation = false; } } - if (ModuleManager.bhop.rotateYawOption.isToggled()) { - if (ModuleManager.bhop.setRotation) { - if (!ModuleManager.killAura.isTargeting && !Utils.noSlowingBackWithBow() && !ModuleManager.scaffold.isEnabled && !mc.thePlayer.isCollidedHorizontally) { - float playerYaw = mc.thePlayer.rotationYaw; - e.setYaw(playerYaw -= 55); - } - } + + if (ModuleManager.scaffold.canBlockFade && !ModuleManager.scaffold.isEnabled && ++fadeEdge >= 45) { + ModuleManager.scaffold.canBlockFade = false; + fadeEdge = 0; + ModuleManager.scaffold.highlight.clear(); } - - - } @SubscribeEvent(priority = EventPriority.HIGHEST) public void onRenderWorld(RenderWorldLastEvent e) { - if (!Utils.nullCheck() || !ModuleManager.scaffold.highlightBlocks.isToggled() || ModuleManager.scaffold.highlight.isEmpty() || !ModuleManager.scaffold.isEnabled) { + if (!ModuleManager.scaffold.canBlockFade) { + return; + } + if (!Utils.nullCheck() || !ModuleManager.scaffold.highlightBlocks.isToggled() || ModuleManager.scaffold.highlight.isEmpty()) { return; } Iterator> iterator = ModuleManager.scaffold.highlight.entrySet().iterator(); @@ -158,6 +163,4 @@ public class ModuleUtils { RenderUtils.renderBlock(entry.getKey(), Utils.mergeAlpha(Theme.getGradient((int) HUD.theme.getInput(), 0), alpha), true, false); } } - - } \ No newline at end of file diff --git a/src/main/java/keystrokesmod/utility/Reflection.java b/src/main/java/keystrokesmod/utility/Reflection.java index aaa0609..a328b66 100644 --- a/src/main/java/keystrokesmod/utility/Reflection.java +++ b/src/main/java/keystrokesmod/utility/Reflection.java @@ -1,38 +1,19 @@ package keystrokesmod.utility; +import keystrokesmod.mixin.impl.accessor.IAccessorEntityPlayer; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiEnchantment; -import net.minecraft.client.gui.GuiIngame; -import net.minecraft.client.gui.GuiPlayerTabOverlay; -import net.minecraft.client.gui.GuiScreenBook; import net.minecraft.client.gui.inventory.GuiBrewingStand; import net.minecraft.client.gui.inventory.GuiDispenser; import net.minecraft.client.gui.inventory.GuiFurnace; -import net.minecraft.client.multiplayer.PlayerControllerMP; -import net.minecraft.client.renderer.EntityRenderer; import net.minecraft.client.settings.KeyBinding; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.ai.EntityAIAttackOnCollide; -import net.minecraft.entity.ai.EntityAINearestAttackableTarget; -import net.minecraft.entity.ai.EntityAITasks; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; import net.minecraft.inventory.*; -import net.minecraft.item.ItemFood; -import net.minecraft.network.play.client.C01PacketChatMessage; -import net.minecraft.network.play.client.C02PacketUseEntity; -import net.minecraft.network.play.server.S08PacketPlayerPosLook; -import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.event.MouseEvent; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.relauncher.ReflectionHelper; import org.lwjgl.input.Mouse; import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; import java.nio.ByteBuffer; import java.util.*; @@ -40,35 +21,6 @@ public class Reflection { public static Field button; public static Field buttonstate; public static Field buttons; - public static Field leftClickCounter; - public static Field jumpTicks; - public static Field rightClickDelayTimerField; - public static Field curBlockDamageMP; - public static Field blockHitDelay; - public static Method clickMouse; - public static Method setupCameraTransform; - public static Method rightClickMouse; - public static Field shaderResourceLocations; - public static Field useShader; - public static Field shaderIndex; - public static Method loadShader; - public static Field inGround; - public static Method getFOVModifier; - public static Field itemInUseCount; - public static Field displayedTitle; - public static Field displayedSubTitle; - public static Field S08PacketPlayerPosLookYaw; - public static Field S08PacketPlayerPosLookPitch; - public static Field C02PacketUseEntityEntityId; - public static Field recordPlaying; - public static Field bookContents; - public static Field fallDistance; - public static Field tabHeader; - public static Field tabFooter; - public static Field thirdPersonDistance; - public static Field alwaysEdible; - public static Field mcGuiInGame; - public static Field C01PacketChatMessageMessage; public static HashMap containerInventoryPlayer = new HashMap<>(); private static List containerClasses = Arrays.asList(GuiFurnace.class, GuiBrewingStand.class, GuiEnchantment.class, ContainerHopper.class, GuiDispenser.class, ContainerWorkbench.class, ContainerMerchant.class, ContainerHorseInventory.class); public static boolean sendMessage = false; @@ -79,140 +31,13 @@ public class Reflection { button = MouseEvent.class.getDeclaredField("button"); buttonstate = MouseEvent.class.getDeclaredField("buttonstate"); buttons = Mouse.class.getDeclaredField("buttons"); - - leftClickCounter = ReflectionHelper.findField(Minecraft.class, "field_71429_W", "leftClickCounter"); - - if (leftClickCounter != null) { - leftClickCounter.setAccessible(true); - } - - jumpTicks = ReflectionHelper.findField(EntityLivingBase.class, "field_70773_bE", "jumpTicks"); - - if (jumpTicks != null) { - jumpTicks.setAccessible(true); - } - - rightClickDelayTimerField = ReflectionHelper.findField(Minecraft.class, "field_71467_ac", "rightClickDelayTimer"); - - if (rightClickDelayTimerField != null) { - rightClickDelayTimerField.setAccessible(true); - } - - displayedTitle = ReflectionHelper.findField(GuiIngame.class, "field_175201_x", "displayedTitle"); - - if (displayedTitle != null) { - displayedTitle.setAccessible(true); - } - - displayedSubTitle = ReflectionHelper.findField(GuiIngame.class, "field_175200_y", "displayedSubTitle"); - - if (displayedSubTitle != null) { - displayedSubTitle.setAccessible(true); - } - - tabHeader = ReflectionHelper.findField(GuiPlayerTabOverlay.class, "header", "field_175256_i"); - if (tabHeader != null) { - tabHeader.setAccessible(true); - } - - tabFooter = ReflectionHelper.findField(GuiPlayerTabOverlay.class, "footer", "field_175255_h"); - if (tabFooter != null) { - tabFooter.setAccessible(true); - } - - C01PacketChatMessageMessage = ReflectionHelper.findField(C01PacketChatMessage.class, "field_149440_a", "message"); - - if (C01PacketChatMessageMessage != null) { - C01PacketChatMessageMessage.setAccessible(true); - } - - recordPlaying = ReflectionHelper.findField(GuiIngame.class, "recordPlaying", "field_73838_g"); - if (recordPlaying != null) { - recordPlaying.setAccessible(true); - } - - curBlockDamageMP = ReflectionHelper.findField(PlayerControllerMP.class, "field_78770_f", "curBlockDamageMP"); // fastmine and mining related stuff - if (curBlockDamageMP != null) { - curBlockDamageMP.setAccessible(true); - } - - blockHitDelay = ReflectionHelper.findField(PlayerControllerMP.class, "field_78781_i", "blockHitDelay"); - if (blockHitDelay != null) { - blockHitDelay.setAccessible(true); - } - - fallDistance = ReflectionHelper.findField(Entity.class, "fallDistance", "field_70143_R"); - if (fallDistance != null) { - fallDistance.setAccessible(true); - } - - mcGuiInGame = ReflectionHelper.findField(GuiIngame.class, "mc", "field_73839_d"); - if (mcGuiInGame != null) { - mcGuiInGame.setAccessible(true); - } - - shaderResourceLocations = ReflectionHelper.findField(EntityRenderer.class, "shaderResourceLocations", "field_147712_ad"); - if (shaderResourceLocations != null) { - shaderResourceLocations.setAccessible(true); - } - - thirdPersonDistance = ReflectionHelper.findField(EntityRenderer.class, "thirdPersonDistance", "field_78490_B"); - if (thirdPersonDistance != null) { - thirdPersonDistance.setAccessible(true); - } - - alwaysEdible = ReflectionHelper.findField(ItemFood.class, "alwaysEdible", "field_77852_bZ"); - if (alwaysEdible != null) { - alwaysEdible.setAccessible(true); - } - - useShader = ReflectionHelper.findField(EntityRenderer.class, "useShader", "field_175083_ad"); - if (useShader != null) { - useShader.setAccessible(true); - } - - shaderIndex = ReflectionHelper.findField(EntityRenderer.class, "field_147713_ae", "shaderIndex"); // for shaders - if (shaderIndex != null) { - shaderIndex.setAccessible(true); - } - - inGround = ReflectionHelper.findField(EntityArrow.class, "field_70254_i", "inGround"); // for indicators - if (inGround != null) { - inGround.setAccessible(true); - } - - itemInUseCount = ReflectionHelper.findField(EntityPlayer.class, "field_71072_f", "itemInUseCount"); // for fake block - if (itemInUseCount != null) { - itemInUseCount.setAccessible(true); - } - - S08PacketPlayerPosLookYaw = ReflectionHelper.findField(S08PacketPlayerPosLook.class, "field_148936_d", "yaw"); - if (S08PacketPlayerPosLookYaw != null) { - S08PacketPlayerPosLookYaw.setAccessible(true); - } - - S08PacketPlayerPosLookPitch = ReflectionHelper.findField(S08PacketPlayerPosLook.class, "field_148937_e", "pitch"); - if (S08PacketPlayerPosLookPitch != null) { - S08PacketPlayerPosLookPitch.setAccessible(true); - } - - C02PacketUseEntityEntityId = ReflectionHelper.findField(C02PacketUseEntity.class, "entityId", "field_149567_a"); - if (C02PacketUseEntityEntityId != null) { - C02PacketUseEntityEntityId.setAccessible(true); - } - - bookContents = ReflectionHelper.findField(GuiScreenBook.class, "field_175386_A"); - if (bookContents != null) { - bookContents.setAccessible(true); - } - for (Class clazz : containerClasses) { for (Field field : clazz.getDeclaredFields()) { addToMap(clazz, field); } } - - } catch (Exception var2) { + } + catch (Exception var2) { System.out.println("There was an error, relaunch the game."); var2.printStackTrace(); sendMessage = true; @@ -226,59 +51,6 @@ public class Reflection { } } - public static void getMethods() { - try { - try { - rightClickMouse = Minecraft.getMinecraft().getClass().getDeclaredMethod("func_147121_ag"); - } catch (NoSuchMethodException var4) { - try { - rightClickMouse = Minecraft.getMinecraft().getClass().getDeclaredMethod("rightClickMouse"); - } catch (NoSuchMethodException var3) { - } - } - - if (rightClickMouse != null) { - rightClickMouse.setAccessible(true); - } - - getFOVModifier = ReflectionHelper.findMethod(EntityRenderer.class, Minecraft.getMinecraft().entityRenderer, new String[]{"func_78481_a", "getFOVModifier"}, float.class, boolean.class); - - if (getFOVModifier != null) { - getFOVModifier.setAccessible(true); - } - - loadShader = ReflectionHelper.findMethod(EntityRenderer.class, Minecraft.getMinecraft().entityRenderer, new String[]{"func_175069_a", "loadShader"}, ResourceLocation.class); - - if (loadShader != null) { - loadShader.setAccessible(true); - } - - try { - clickMouse = Minecraft.getMinecraft().getClass().getDeclaredMethod("clickMouse"); - } catch (NoSuchMethodException var4) { - try { - clickMouse = Minecraft.getMinecraft().getClass().getDeclaredMethod("func_147116_af"); - } catch (NoSuchMethodException var3) { - } - } - - if (clickMouse != null) { - clickMouse.setAccessible(true); - } - - setupCameraTransform = ReflectionHelper.findMethod(EntityRenderer.class, Minecraft.getMinecraft().entityRenderer, new String[]{"func_78479_a", "setupCameraTransform"}, float.class, int.class); - - if (setupCameraTransform != null) { - setupCameraTransform.setAccessible(true); - } - } - catch (Exception e) { - System.out.println("There was an error, relaunch the game."); - e.printStackTrace(); - sendMessage = true; - } - } - public static void setButton(int button, boolean state) { if (Reflection.button != null && buttonstate != null && buttons != null) { MouseEvent m = new MouseEvent(); @@ -310,56 +82,15 @@ public class Reflection { containerInventoryPlayer.put(clazz, field); } - public static void rightClick() { - try { - Reflection.rightClickMouse.invoke(Minecraft.getMinecraft()); - } - catch (InvocationTargetException ex) {} - catch (IllegalAccessException ex2) {} - } - - public static void clickMouse() { - if (clickMouse != null) { - try { - clickMouse.invoke(Minecraft.getMinecraft()); - } - catch (InvocationTargetException ex) {} - catch (IllegalAccessException ex2) {} - } - } - public static boolean setItemInUse(boolean blocking) { try { - itemInUseCount.set(Minecraft.getMinecraft().thePlayer, blocking ? 1 : 0); + ((IAccessorEntityPlayer) Minecraft.getMinecraft().thePlayer).setItemInUseCount(blocking ? 1 : 0); } catch (Exception e) { e.printStackTrace(); - Utils.sendMessage("§cFailed to set block state client-side."); + Utils.sendMessage("§cFailed to set block state client-side."); return false; } return blocking; } - - public static void setItemInUseCount(int count) { - try { - itemInUseCount.set(Minecraft.getMinecraft().thePlayer, count); - } - catch (Exception e) { - e.printStackTrace(); - } - } - - public static boolean setupCameraTransform(EntityRenderer entityRenderer, float partialTicks, int eyeIndex) { - try { - if (setupCameraTransform == null) { - return false; - } - setupCameraTransform.invoke(entityRenderer, partialTicks, eyeIndex); - return true; - } - catch (IllegalAccessException | InvocationTargetException e) { - e.printStackTrace(); - } - return false; - } -} +} \ No newline at end of file diff --git a/src/main/java/keystrokesmod/utility/Utils.java b/src/main/java/keystrokesmod/utility/Utils.java index ee747f9..c64f4f5 100644 --- a/src/main/java/keystrokesmod/utility/Utils.java +++ b/src/main/java/keystrokesmod/utility/Utils.java @@ -4,6 +4,9 @@ import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.gson.JsonObject; import keystrokesmod.Raven; +import keystrokesmod.mixin.impl.accessor.IAccessorGuiIngame; +import keystrokesmod.mixin.impl.accessor.IAccessorItemFood; +import keystrokesmod.mixin.impl.accessor.IAccessorMinecraft; import keystrokesmod.module.Module; import keystrokesmod.module.ModuleManager; import keystrokesmod.module.impl.client.Settings; @@ -64,15 +67,7 @@ public class Utils { public static boolean holdingEdible(ItemStack stack) { if (stack.getItem() instanceof ItemFood && mc.thePlayer.getFoodStats().getFoodLevel() == 20) { ItemFood food = (ItemFood) stack.getItem(); - boolean alwaysEdible = false; - try { - alwaysEdible = Reflection.alwaysEdible.getBoolean(food); - } - catch (Exception e) { - Utils.sendMessage("&cError checking food edibility, check logs."); - e.printStackTrace(); - } - return alwaysEdible; + return ((IAccessorItemFood) food).getAlwaysEdible(); } return true; } @@ -588,12 +583,7 @@ public class Utils { } public static String getTitle() { - try { - return (String) Reflection.displayedTitle.get(mc.ingameGUI); - } catch (IllegalAccessException ex) { - ex.printStackTrace(); - } - return ""; + return ((IAccessorGuiIngame) mc.ingameGUI).getDisplayedTitle(); } public static int getBedwarsStatus() { @@ -1357,11 +1347,11 @@ public class Utils { } public static void rightClick() { - Reflection.rightClick(); + ((IAccessorMinecraft) mc).callRightClickMouse(); } public static void leftClick() { - Reflection.clickMouse(); + ((IAccessorMinecraft) mc).callClickMouse(); } } diff --git a/src/main/resources/mixins.raven.json b/src/main/resources/mixins.raven.json index 3d8de86..600154d 100644 --- a/src/main/resources/mixins.raven.json +++ b/src/main/resources/mixins.raven.json @@ -1,6 +1,6 @@ { "required": true, - "package": "keystrokesmod.mixins.impl", + "package": "keystrokesmod.mixin.impl", "refmap": "mixins.raven.refmap.json", "compatibilityLevel": "JAVA_8", "mixins": [ @@ -8,7 +8,6 @@ "render.MixinFontRenderer", "entity.MixinEntityPlayerSP", "render.MixinLayerCape", - "render.MixinModelBiped", "entity.MixinEntityLivingBase", "network.MixinNetworkManager", "entity.MixinEntityPlayer", @@ -23,7 +22,20 @@ "client.MixinWorld", "render.MixinGuiChat", "render.MixinGuiScreen", - "entity.IAccessorEntityPlayerSP", - "network.MixinNetHandlerPlayClient" + "network.MixinNetHandlerPlayClient", + "render.MixinRenderManager", + "render.MixinCustomSky", + + "accessor.IAccessorEntityPlayerSP", + "accessor.IAccessorEntityArrow", + "accessor.IAccessorEntityLivingBase", + "accessor.IAccessorMinecraft", + "accessor.IAccessorPlayerControllerMP", + "accessor.IAccessorGuiPlayerTabOverlay", + "accessor.IAccessorGuiIngame", + "accessor.IAccessorEntityRenderer", + "accessor.IAccessorItemFood", + "accessor.IAccessorGuiScreenBook", + "accessor.IAccessorEntityPlayer" ] } \ No newline at end of file