mirror of https://github.com/kami-blue/client
[cleanup] NoFall
Will re-add pickup in the future, currently it's entirely useless and I did not have luck making it accurate. See TODO in the code. Closes #1308 Signed-off-by: Dominika <sokolov.dominika@gmail.com>
This commit is contained in:
parent
d32f4db886
commit
385990b1e0
|
@ -1,17 +1,13 @@
|
||||||
package me.zeroeightsix.kami.module.modules.player
|
package me.zeroeightsix.kami.module.modules.player
|
||||||
|
|
||||||
import kotlinx.coroutines.delay
|
import me.zeroeightsix.kami.event.SafeClientEvent
|
||||||
import kotlinx.coroutines.launch
|
|
||||||
import me.zeroeightsix.kami.event.events.PacketEvent
|
import me.zeroeightsix.kami.event.events.PacketEvent
|
||||||
import me.zeroeightsix.kami.mixin.extension.onGround
|
import me.zeroeightsix.kami.mixin.extension.onGround
|
||||||
import me.zeroeightsix.kami.mixin.extension.rightClickMouse
|
|
||||||
import me.zeroeightsix.kami.module.Module
|
import me.zeroeightsix.kami.module.Module
|
||||||
import me.zeroeightsix.kami.setting.ModuleConfig.setting
|
import me.zeroeightsix.kami.setting.ModuleConfig.setting
|
||||||
import me.zeroeightsix.kami.util.EntityUtils
|
import me.zeroeightsix.kami.util.EntityUtils
|
||||||
import me.zeroeightsix.kami.util.WorldUtils
|
import me.zeroeightsix.kami.util.WorldUtils
|
||||||
import me.zeroeightsix.kami.util.text.MessageSendHelper
|
import me.zeroeightsix.kami.util.text.MessageSendHelper
|
||||||
import me.zeroeightsix.kami.util.threads.defaultScope
|
|
||||||
import me.zeroeightsix.kami.util.threads.onMainThreadSafe
|
|
||||||
import me.zeroeightsix.kami.util.threads.safeListener
|
import me.zeroeightsix.kami.util.threads.safeListener
|
||||||
import net.minecraft.init.Items
|
import net.minecraft.init.Items
|
||||||
import net.minecraft.item.ItemBlock
|
import net.minecraft.item.ItemBlock
|
||||||
|
@ -35,8 +31,6 @@ object NoFall : Module(
|
||||||
private val mode = setting("Mode", Mode.CATCH)
|
private val mode = setting("Mode", Mode.CATCH)
|
||||||
private val fallModeSetting = setting("Fall", FallMode.PACKET, { mode.value == Mode.FALL })
|
private val fallModeSetting = setting("Fall", FallMode.PACKET, { mode.value == Mode.FALL })
|
||||||
private val catchModeSetting = setting("Catch", CatchMode.MOTION, { mode.value == Mode.CATCH })
|
private val catchModeSetting = setting("Catch", CatchMode.MOTION, { mode.value == Mode.CATCH })
|
||||||
private val pickup = setting("Pickup", false, { mode.value == Mode.FALL && fallModeSetting.value == FallMode.BUCKET })
|
|
||||||
private val pickupDelay = setting("PickupDelay", 300, 100..1000, 50, { mode.value == Mode.FALL && fallModeSetting.value == FallMode.BUCKET && pickup.value })
|
|
||||||
private val voidOnly = setting("VoidOnly", false, { mode.value == Mode.CATCH })
|
private val voidOnly = setting("VoidOnly", false, { mode.value == Mode.CATCH })
|
||||||
|
|
||||||
private enum class Mode {
|
private enum class Mode {
|
||||||
|
@ -71,46 +65,38 @@ object NoFall : Module(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun fallDistCheck() = (!voidOnly.value && mc.player.fallDistance >= distance.value) || WorldUtils.getGroundPos().y == -999.0
|
private fun SafeClientEvent.fallDistCheck() = (!voidOnly.value && player.fallDistance >= distance.value) || WorldUtils.getGroundPos().y == -999.0
|
||||||
|
|
||||||
private fun fallMode() {
|
// TODO: This really needs a rewrite to spoof placing and the such instead of manual rotations
|
||||||
if (fallModeSetting.value == FallMode.BUCKET && mc.player.dimension != -1 && !EntityUtils.isAboveWater(mc.player) && System.currentTimeMillis() - last > 100) {
|
private fun SafeClientEvent.fallMode() {
|
||||||
val posVec = mc.player.positionVector
|
if (fallModeSetting.value == FallMode.BUCKET && player.dimension != -1 && !EntityUtils.isAboveWater(player) && System.currentTimeMillis() - last > 100) {
|
||||||
val result = mc.world.rayTraceBlocks(posVec, posVec.add(0.0, -5.33, 0.0), true, true, false)
|
val posVec = player.positionVector
|
||||||
|
val result = world.rayTraceBlocks(posVec, posVec.add(0.0, -5.33, 0.0), true, true, false)
|
||||||
|
|
||||||
if (result != null && result.typeOfHit == RayTraceResult.Type.BLOCK) {
|
if (result != null && result.typeOfHit == RayTraceResult.Type.BLOCK) {
|
||||||
var hand = EnumHand.MAIN_HAND
|
var hand = EnumHand.MAIN_HAND
|
||||||
if (mc.player.heldItemOffhand.item === Items.WATER_BUCKET) hand = EnumHand.OFF_HAND else if (mc.player.heldItemMainhand.item !== Items.WATER_BUCKET) {
|
if (player.heldItemOffhand.item === Items.WATER_BUCKET) hand = EnumHand.OFF_HAND else if (player.heldItemMainhand.item !== Items.WATER_BUCKET) {
|
||||||
for (i in 0..8) if (mc.player.inventory.getStackInSlot(i).item === Items.WATER_BUCKET) {
|
for (i in 0..8) if (player.inventory.getStackInSlot(i).item === Items.WATER_BUCKET) {
|
||||||
mc.player.inventory.currentItem = i
|
player.inventory.currentItem = i
|
||||||
mc.player.rotationPitch = 90f
|
player.rotationPitch = 90f
|
||||||
last = System.currentTimeMillis()
|
last = System.currentTimeMillis()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
mc.player.rotationPitch = 90f
|
|
||||||
mc.playerController.processRightClick(mc.player, mc.world, hand)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pickup.value) {
|
player.rotationPitch = 90f
|
||||||
defaultScope.launch {
|
playerController.processRightClick(player, world, hand)
|
||||||
delay(pickupDelay.value.toLong())
|
|
||||||
onMainThreadSafe {
|
|
||||||
player.rotationPitch = 90f
|
|
||||||
mc.rightClickMouse()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun catchMode() {
|
private fun SafeClientEvent.catchMode() {
|
||||||
when (catchModeSetting.value) {
|
when (catchModeSetting.value) {
|
||||||
CatchMode.BLOCK -> {
|
CatchMode.BLOCK -> {
|
||||||
var slot = -1
|
var slot = -1
|
||||||
for (i in 0..8) {
|
for (i in 0..8) {
|
||||||
val stack = mc.player.inventory.getStackInSlot(i)
|
val stack = player.inventory.getStackInSlot(i)
|
||||||
if (stack != ItemStack.EMPTY && stack.item is ItemBlock) {
|
if (stack != ItemStack.EMPTY && stack.item is ItemBlock) {
|
||||||
slot = i
|
slot = i
|
||||||
}
|
}
|
||||||
|
@ -120,25 +106,25 @@ object NoFall : Module(
|
||||||
MessageSendHelper.sendChatMessage("$chatName Missing blocks for Catch Mode Block!")
|
MessageSendHelper.sendChatMessage("$chatName Missing blocks for Catch Mode Block!")
|
||||||
return
|
return
|
||||||
} else {
|
} else {
|
||||||
mc.player.inventory.currentItem = slot
|
player.inventory.currentItem = slot
|
||||||
}
|
}
|
||||||
|
|
||||||
val posVec = mc.player.positionVector
|
val posVec = player.positionVector
|
||||||
val result = mc.world.rayTraceBlocks(posVec, posVec.add(0.0, -5.33, 0.0), true, true, false)
|
val result = world.rayTraceBlocks(posVec, posVec.add(0.0, -5.33, 0.0), true, true, false)
|
||||||
if (result != null && result.typeOfHit == RayTraceResult.Type.BLOCK) {
|
if (result != null && result.typeOfHit == RayTraceResult.Type.BLOCK) {
|
||||||
placeBlock(); placeBlock(); placeBlock() // yes
|
placeBlock(); placeBlock(); placeBlock() // yes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CatchMode.MOTION -> {
|
CatchMode.MOTION -> {
|
||||||
mc.player.motionY = 10.0
|
player.motionY = 10.0
|
||||||
mc.player.motionY = -1.0
|
player.motionY = -1.0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun placeBlock() {
|
private fun SafeClientEvent.placeBlock() {
|
||||||
val hitVec = Vec3d(BlockPos(mc.player)).add(0.0, -1.0, 0.0)
|
val hitVec = Vec3d(BlockPos(player)).add(0.0, -1.0, 0.0)
|
||||||
mc.playerController.processRightClickBlock(mc.player, mc.world, BlockPos(hitVec), EnumFacing.DOWN, hitVec, EnumHand.MAIN_HAND)
|
playerController.processRightClickBlock(player, world, BlockPos(hitVec), EnumFacing.DOWN, hitVec, EnumHand.MAIN_HAND)
|
||||||
mc.player.connection.sendPacket(CPacketAnimation(EnumHand.MAIN_HAND))
|
player.connection.sendPacket(CPacketAnimation(EnumHand.MAIN_HAND))
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue