mirror of
https://github.com/kami-blue/client
synced 2025-03-29 15:00:52 +00:00
Made InventoryMove compatible with Future
This commit is contained in:
parent
6d18e16f56
commit
c21721820c
@ -0,0 +1,6 @@
|
||||
package me.zeroeightsix.kami.event.events;
|
||||
|
||||
import me.zeroeightsix.kami.event.KamiEvent;
|
||||
|
||||
public class PlayerUpdateMoveEvent extends KamiEvent {
|
||||
}
|
@ -1,5 +1,7 @@
|
||||
package me.zeroeightsix.kami.mixin.client;
|
||||
|
||||
import me.zeroeightsix.kami.KamiMod;
|
||||
import me.zeroeightsix.kami.event.events.PlayerUpdateMoveEvent;
|
||||
import me.zeroeightsix.kami.module.modules.movement.InventoryMove;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.GuiChat;
|
||||
@ -9,28 +11,22 @@ import net.minecraft.util.MovementInputFromOptions;
|
||||
import org.lwjgl.input.Keyboard;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
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.CallbackInfo;
|
||||
|
||||
import static me.zeroeightsix.kami.KamiMod.MODULE_MANAGER;
|
||||
|
||||
/**
|
||||
* @author Finz0
|
||||
* Used with LGPLv3 license permission
|
||||
* https://github.com/dominikaaaa/osiris/blob/master/src/main/java/me/finz0/osiris/mixin/mixins/MixinMovementInputFromOptions.java
|
||||
*
|
||||
* @author ionar2
|
||||
* Used with explicit permission and MIT license permission
|
||||
* https://github.com/ionar2/salhack/blob/fa9e383/src/main/java/me/ionar/salhack/mixin/client/MixinMovementInputFromOptions.java
|
||||
* @see InventoryMove
|
||||
*/
|
||||
@Mixin(value = MovementInputFromOptions.class, priority = Integer.MAX_VALUE)
|
||||
@Mixin(MovementInputFromOptions.class)
|
||||
public abstract class MixinMovementInputFromOptions extends MovementInput {
|
||||
@Redirect(method = "updatePlayerMoveState", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/settings/KeyBinding;isKeyDown()Z"))
|
||||
public boolean isKeyPressed(KeyBinding keyBinding) {
|
||||
if (Minecraft.getMinecraft().player != null
|
||||
&& Minecraft.getMinecraft().currentScreen != null
|
||||
&& !(Minecraft.getMinecraft().currentScreen instanceof GuiChat)
|
||||
&& MODULE_MANAGER.isModuleEnabled(InventoryMove.class)
|
||||
&& (MODULE_MANAGER.getModuleT(InventoryMove.class).sneak.getValue() || !((Minecraft.getMinecraft().gameSettings.keyBindSneak.getKeyCode() == keyBinding.getKeyCode()) && !MODULE_MANAGER.getModuleT(InventoryMove.class).sneak.getValue()))) {
|
||||
return Keyboard.isKeyDown(keyBinding.getKeyCode());
|
||||
}
|
||||
return keyBinding.isKeyDown();
|
||||
@Inject(method = "updatePlayerMoveState", at = @At("RETURN"))
|
||||
public void updatePlayerMoveStateReturn(CallbackInfo callback) {
|
||||
KamiMod.EVENT_BUS.post(new PlayerUpdateMoveEvent());
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,9 @@
|
||||
package me.zeroeightsix.kami.module.modules.movement
|
||||
|
||||
import me.zero.alpine.listener.EventHandler
|
||||
import me.zero.alpine.listener.EventHook
|
||||
import me.zero.alpine.listener.Listener
|
||||
import me.zeroeightsix.kami.event.events.PlayerUpdateMoveEvent
|
||||
import me.zeroeightsix.kami.module.Module
|
||||
import me.zeroeightsix.kami.setting.Setting
|
||||
import me.zeroeightsix.kami.setting.Settings
|
||||
@ -8,35 +12,97 @@ import org.lwjgl.input.Keyboard
|
||||
|
||||
/**
|
||||
* @author dominikaaaa
|
||||
* @author ionar2
|
||||
* Created by dominikaaaa on 06/04/20
|
||||
* updated on 04/05/20 by ionar2
|
||||
* Updated on 04/05/20 by ionar2
|
||||
* https://github.com/ionar2/salhack/blob/fa9e383/src/main/java/me/ionar/salhack/module/movement/NoSlowModule.java
|
||||
* @see me.zeroeightsix.kami.mixin.client.MixinMovementInputFromOptions
|
||||
*/
|
||||
@Module.Info(
|
||||
name = "InventoryMove",
|
||||
description = "Allows you to walk around with GUIs opened",
|
||||
category = Module.Category.MOVEMENT
|
||||
category = Module.Category.MOVEMENT,
|
||||
alwaysListening = true
|
||||
)
|
||||
class InventoryMove : Module() {
|
||||
private val speed = register(Settings.i("Look speed", 10))
|
||||
@JvmField
|
||||
var sneak: Setting<Boolean> = register(Settings.b("Sneak", false))
|
||||
var isForward = false
|
||||
var isBackward = false
|
||||
var isLeft = false
|
||||
var isRight = false
|
||||
var isJump = false
|
||||
var isSneak = false
|
||||
|
||||
override fun onUpdate() {
|
||||
if (mc.player == null || mc.currentScreen == null || mc.currentScreen is GuiChat) return
|
||||
|
||||
// pitch can not exceed 90 degrees nor -90 degrees, otherwise AAC servers will flag this and kick you.
|
||||
if (Keyboard.isKeyDown(Keyboard.KEY_LEFT)) {
|
||||
mc.player.rotationYaw = mc.player.rotationYaw - speed.value
|
||||
@EventHandler
|
||||
private val sendListener = Listener(EventHook { event: PlayerUpdateMoveEvent ->
|
||||
isForward = false
|
||||
isBackward = false
|
||||
isLeft = false
|
||||
isRight = false
|
||||
isJump = false
|
||||
isSneak = false
|
||||
|
||||
if (isEnabled && mc.currentScreen != null && mc.currentScreen !is GuiChat) {
|
||||
// pitch can not exceed 90 degrees nor -90 degrees, otherwise AAC servers will flag this and kick you.
|
||||
if (Keyboard.isKeyDown(Keyboard.KEY_LEFT)) {
|
||||
mc.player.rotationYaw = mc.player.rotationYaw - speed.value
|
||||
}
|
||||
if (Keyboard.isKeyDown(Keyboard.KEY_RIGHT)) {
|
||||
mc.player.rotationYaw = mc.player.rotationYaw + speed.value
|
||||
}
|
||||
if (Keyboard.isKeyDown(Keyboard.KEY_UP)) {
|
||||
mc.player.rotationPitch = (mc.player.rotationPitch - speed.value).coerceAtLeast(-90f)
|
||||
}
|
||||
if (Keyboard.isKeyDown(Keyboard.KEY_DOWN)) {
|
||||
mc.player.rotationPitch = (mc.player.rotationPitch + speed.value).coerceAtMost(90f)
|
||||
}
|
||||
|
||||
mc.player.movementInput.moveStrafe = 0.0f
|
||||
mc.player.movementInput.moveForward = 0.0f
|
||||
|
||||
if (Keyboard.isKeyDown(mc.gameSettings.keyBindForward.keyCode)) {
|
||||
++mc.player.movementInput.moveForward
|
||||
mc.player.movementInput.forwardKeyDown = true
|
||||
isForward = true
|
||||
} else {
|
||||
mc.player.movementInput.forwardKeyDown = false
|
||||
}
|
||||
|
||||
if (Keyboard.isKeyDown(mc.gameSettings.keyBindBack.keyCode)) {
|
||||
--mc.player.movementInput.moveForward
|
||||
mc.player.movementInput.backKeyDown = true
|
||||
isBackward = true
|
||||
} else {
|
||||
mc.player.movementInput.backKeyDown = false
|
||||
}
|
||||
|
||||
if (Keyboard.isKeyDown(mc.gameSettings.keyBindLeft.keyCode)) {
|
||||
++mc.player.movementInput.moveStrafe
|
||||
mc.player.movementInput.leftKeyDown = true
|
||||
isLeft = true
|
||||
} else {
|
||||
mc.player.movementInput.leftKeyDown = false
|
||||
}
|
||||
|
||||
if (Keyboard.isKeyDown(mc.gameSettings.keyBindRight.keyCode)) {
|
||||
--mc.player.movementInput.moveStrafe
|
||||
mc.player.movementInput.rightKeyDown = true
|
||||
isRight = true
|
||||
} else {
|
||||
mc.player.movementInput.rightKeyDown = false
|
||||
}
|
||||
|
||||
if (Keyboard.isKeyDown(mc.gameSettings.keyBindJump.keyCode)) {
|
||||
mc.player.movementInput.jump = true
|
||||
isJump = true
|
||||
}
|
||||
|
||||
if (sneak.value && Keyboard.isKeyDown(mc.gameSettings.keyBindSneak.keyCode)) {
|
||||
mc.player.movementInput.sneak = true
|
||||
isSneak = true
|
||||
}
|
||||
}
|
||||
if (Keyboard.isKeyDown(Keyboard.KEY_RIGHT)) {
|
||||
mc.player.rotationYaw = mc.player.rotationYaw + speed.value
|
||||
}
|
||||
if (Keyboard.isKeyDown(Keyboard.KEY_UP)) {
|
||||
mc.player.rotationPitch = (mc.player.rotationPitch - speed.value).coerceAtLeast(-90f)
|
||||
}
|
||||
if (Keyboard.isKeyDown(Keyboard.KEY_DOWN)) {
|
||||
mc.player.rotationPitch = (mc.player.rotationPitch + speed.value).coerceAtMost(90f)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
Loading…
Reference in New Issue
Block a user