convert player category modules to kotlin

This commit is contained in:
Bella 2020-04-22 11:52:05 -04:00
parent b21ea89817
commit 89c59a51e7
No known key found for this signature in database
GPG Key ID: DBD4A6030080C8B3
29 changed files with 616 additions and 661 deletions

View File

@ -1,6 +1,6 @@
package me.zeroeightsix.kami.module.modules.client;
package me.zeroeightsix.kami.module.modules.client
import me.zeroeightsix.kami.module.Module;
import me.zeroeightsix.kami.module.Module
/**
* @author dominikaaaa
@ -12,5 +12,4 @@ import me.zeroeightsix.kami.module.Module;
category = Module.Category.CLIENT,
showOnArray = Module.ShowOnArray.OFF
)
public class Tooltips extends Module {
}
class Tooltips : Module()

View File

@ -1,80 +0,0 @@
package me.zeroeightsix.kami.module.modules.player;
import me.zeroeightsix.kami.module.Module;
import me.zeroeightsix.kami.setting.Setting;
import me.zeroeightsix.kami.setting.Settings;
import net.minecraft.client.settings.KeyBinding;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemFood;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumHand;
import net.minecraft.util.FoodStats;
/**
* Created by 086 on 8/04/2018.
* Updated by polymer on 09/03/20
* Updated by dominikaaaa on 20/03/20
* Updated by An-En on 24/03/20
*/
@Module.Info(
name = "AutoEat",
description = "Automatically eat when hungry",
category = Module.Category.PLAYER
)
public class AutoEat extends Module {
private Setting<Integer> foodLevel = register(Settings.integerBuilder("Below Hunger").withValue(15).withMinimum(1).withMaximum(20).build());
private Setting<Integer> healthLevel = register(Settings.integerBuilder("Below Health").withValue(8).withMinimum(1).withMaximum(20).build());
private int lastSlot = -1;
private boolean eating = false;
private boolean isValid(ItemStack stack, int food) {
return (
(passItemCheck(stack.getItem()) && stack.getItem() instanceof ItemFood && (foodLevel.getValue() - food) >= ((ItemFood) stack.getItem()).getHealAmount(stack)) ||
(passItemCheck(stack.getItem()) && stack.getItem() instanceof ItemFood && (healthLevel.getValue() - (mc.player.getHealth() + mc.player.getAbsorptionAmount()) > 0f))
);
}
private boolean passItemCheck(Item item) {
if (item == Items.ROTTEN_FLESH) return false;
if (item == Items.SPIDER_EYE) return false;
if (item == Items.POISONOUS_POTATO) return false;
if (item == Items.FISH && new ItemStack(Items.FISH).getItemDamage() == 3) return false;
return true;
}
@Override
public void onUpdate() {
if (mc.player == null) return;
if (eating && !mc.player.isHandActive()) {
if (lastSlot != -1) {
mc.player.inventory.currentItem = lastSlot;
lastSlot = -1;
}
eating = false;
KeyBinding.setKeyBindState(mc.gameSettings.keyBindUseItem.getKeyCode(), false);
return;
}
if (eating) return;
FoodStats stats = mc.player.getFoodStats();
if (isValid(mc.player.getHeldItemOffhand(), stats.getFoodLevel())) {
mc.player.setActiveHand(EnumHand.OFF_HAND);
eating = true;
KeyBinding.setKeyBindState(mc.gameSettings.keyBindUseItem.getKeyCode(), true);
mc.playerController.processRightClick(mc.player, mc.world, EnumHand.OFF_HAND);
} else {
for (int i = 0; i < 9; i++) {
if (isValid(mc.player.inventory.getStackInSlot(i), stats.getFoodLevel())) {
lastSlot = mc.player.inventory.currentItem;
mc.player.inventory.currentItem = i;
eating = true;
KeyBinding.setKeyBindState(mc.gameSettings.keyBindUseItem.getKeyCode(), true);
mc.playerController.processRightClick(mc.player, mc.world, EnumHand.MAIN_HAND);
return;
}
}
}
}
}

View File

@ -0,0 +1,71 @@
package me.zeroeightsix.kami.module.modules.player
import me.zeroeightsix.kami.module.Module
import me.zeroeightsix.kami.setting.Settings
import net.minecraft.client.settings.KeyBinding
import net.minecraft.init.Items
import net.minecraft.item.Item
import net.minecraft.item.ItemFood
import net.minecraft.item.ItemStack
import net.minecraft.util.EnumHand
/**
* Created by 086 on 8/04/2018.
* Updated by polymer on 09/03/20
* Updated by dominikaaaa on 20/03/20
* Updated by An-En on 24/03/20
*/
@Module.Info(
name = "AutoEat",
description = "Automatically eat when hungry",
category = Module.Category.PLAYER
)
class AutoEat : Module() {
private val foodLevel = register(Settings.integerBuilder("Below Hunger").withValue(15).withMinimum(1).withMaximum(20).build())
private val healthLevel = register(Settings.integerBuilder("Below Health").withValue(8).withMinimum(1).withMaximum(20).build())
private var lastSlot = -1
private var eating = false
private fun isValid(stack: ItemStack, food: Int): Boolean {
return passItemCheck(stack.getItem()) && stack.getItem() is ItemFood && foodLevel.value - food >= (stack.getItem() as ItemFood).getHealAmount(stack) ||
passItemCheck(stack.getItem()) && stack.getItem() is ItemFood && healthLevel.value - (mc.player.health + mc.player.absorptionAmount) > 0f
}
private fun passItemCheck(item: Item): Boolean {
if (item === Items.ROTTEN_FLESH) return false
if (item === Items.SPIDER_EYE) return false
if (item === Items.POISONOUS_POTATO) return false
return !(item === Items.FISH && ItemStack(Items.FISH).getItemDamage() == 3)
}
override fun onUpdate() {
if (mc.player == null) return
if (eating && !mc.player.isHandActive) {
if (lastSlot != -1) {
mc.player.inventory.currentItem = lastSlot
lastSlot = -1
}
eating = false
KeyBinding.setKeyBindState(mc.gameSettings.keyBindUseItem.keyCode, false)
return
}
if (eating) return
val stats = mc.player.getFoodStats()
if (isValid(mc.player.heldItemOffhand, stats.foodLevel)) {
mc.player.activeHand = EnumHand.OFF_HAND
eating = true
KeyBinding.setKeyBindState(mc.gameSettings.keyBindUseItem.keyCode, true)
mc.playerController.processRightClick(mc.player, mc.world, EnumHand.OFF_HAND)
} else {
for (i in 0..8) {
if (isValid(mc.player.inventory.getStackInSlot(i), stats.foodLevel)) {
lastSlot = mc.player.inventory.currentItem
mc.player.inventory.currentItem = i
eating = true
KeyBinding.setKeyBindState(mc.gameSettings.keyBindUseItem.keyCode, true)
mc.playerController.processRightClick(mc.player, mc.world, EnumHand.MAIN_HAND)
return
}
}
}
}
}

View File

@ -1,62 +0,0 @@
package me.zeroeightsix.kami.module.modules.player;
import me.zero.alpine.listener.EventHandler;
import me.zero.alpine.listener.Listener;
import me.zeroeightsix.kami.event.events.PacketEvent;
import me.zeroeightsix.kami.module.Module;
import net.minecraft.client.entity.EntityOtherPlayerMP;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.network.play.client.CPacketPlayer;
import java.util.LinkedList;
import java.util.Queue;
/**
* Created by 086 on 24/01/2018.
* Edited by Cuhnt on 30/7/2019
*/
@Module.Info(
name = "Blink",
category = Module.Category.PLAYER,
description = "Cancels server side packets"
)
public class Blink extends Module {
Queue<CPacketPlayer> packets = new LinkedList<>();
@EventHandler
public Listener<PacketEvent.Send> listener = new Listener<>(event -> {
if (isEnabled() && event.getPacket() instanceof CPacketPlayer) {
event.cancel();
packets.add((CPacketPlayer) event.getPacket());
}
});
private EntityOtherPlayerMP clonedPlayer;
@Override
protected void onEnable() {
if (mc.player != null) {
clonedPlayer = new EntityOtherPlayerMP(mc.world, mc.getSession().getProfile());
clonedPlayer.copyLocationAndAnglesFrom(mc.player);
clonedPlayer.rotationYawHead = mc.player.rotationYawHead;
mc.world.addEntityToWorld(-100, clonedPlayer);
}
}
@Override
protected void onDisable() {
while (!packets.isEmpty())
mc.player.connection.sendPacket(packets.poll());
EntityPlayer localPlayer = mc.player;
if (localPlayer != null) {
mc.world.removeEntityFromWorld(-100);
clonedPlayer = null;
}
}
@Override
public String getHudInfo() {
return String.valueOf(packets.size());
}
}

View File

@ -0,0 +1,54 @@
package me.zeroeightsix.kami.module.modules.player
import me.zero.alpine.listener.EventHandler
import me.zero.alpine.listener.EventHook
import me.zero.alpine.listener.Listener
import me.zeroeightsix.kami.event.events.PacketEvent
import me.zeroeightsix.kami.module.Module
import net.minecraft.client.entity.EntityOtherPlayerMP
import net.minecraft.entity.player.EntityPlayer
import net.minecraft.network.play.client.CPacketPlayer
import java.util.*
/**
* Created by 086 on 24/01/2018.
* Edited by Cuhnt on 30/7/2019
*/
@Module.Info(
name = "Blink",
category = Module.Category.PLAYER,
description = "Cancels server side packets"
)
class Blink : Module() {
private var packets: Queue<CPacketPlayer> = LinkedList()
@EventHandler
var listener = Listener(EventHook { event: PacketEvent.Send ->
if (isEnabled && event.packet is CPacketPlayer) {
event.cancel()
packets.add(event.packet as CPacketPlayer)
}
})
private var clonedPlayer: EntityOtherPlayerMP? = null
override fun onEnable() {
if (mc.player != null) {
clonedPlayer = EntityOtherPlayerMP(mc.world, mc.getSession().profile)
clonedPlayer!!.copyLocationAndAnglesFrom(mc.player)
clonedPlayer!!.rotationYawHead = mc.player.rotationYawHead
mc.world.addEntityToWorld(-100, clonedPlayer)
}
}
override fun onDisable() {
while (!packets.isEmpty()) mc.player.connection.sendPacket(packets.poll())
val localPlayer: EntityPlayer? = mc.player
if (localPlayer != null) {
mc.world.removeEntityFromWorld(-100)
clonedPlayer = null
}
}
override fun getHudInfo(): String {
return packets.size.toString()
}
}

View File

@ -1,48 +0,0 @@
package me.zeroeightsix.kami.module.modules.player;
import me.zero.alpine.listener.EventHandler;
import me.zero.alpine.listener.Listener;
import me.zeroeightsix.kami.event.events.PacketEvent;
import me.zeroeightsix.kami.module.Module;
import me.zeroeightsix.kami.setting.Setting;
import me.zeroeightsix.kami.setting.Settings;
import me.zeroeightsix.kami.util.Wrapper;
import net.minecraft.network.play.server.SPacketDisconnect;
import net.minecraft.network.play.server.SPacketRespawn;
import net.minecraft.util.text.TextComponentString;
import java.util.Objects;
import static me.zeroeightsix.kami.util.MessageSendHelper.sendWarningMessage;
/**
* Created by 0x2E | PretendingToCode
*/
@Module.Info(
name = "EndTeleport",
category = Module.Category.PLAYER,
description = "Allows for teleportation when going through end portals"
)
public class EndTeleport extends Module {
private Setting<Boolean> confirmed = register(Settings.b("Confirm", true));
@Override
public void onEnable() {
if (Wrapper.getMinecraft().getCurrentServerData() == null) {
sendWarningMessage(getChatName() + "This module does not work in singleplayer");
disable();
} else if (!confirmed.getValue()) {
sendWarningMessage(getChatName() + "This module will kick you from the server! It is part of the exploit and cannot be avoided");
}
}
@EventHandler
public Listener<PacketEvent.Receive> receiveListener = new Listener<>(event -> {
if (event.getPacket() instanceof SPacketRespawn) {
if (((SPacketRespawn) event.getPacket()).getDimensionID() == 1 && confirmed.getValue()) {
Objects.requireNonNull(Wrapper.getMinecraft().getConnection()).handleDisconnect(new SPacketDisconnect(new TextComponentString("Attempting teleportation exploit")));
disable();
}
}
});
}

View File

@ -0,0 +1,44 @@
package me.zeroeightsix.kami.module.modules.player
import me.zero.alpine.listener.EventHandler
import me.zero.alpine.listener.EventHook
import me.zero.alpine.listener.Listener
import me.zeroeightsix.kami.event.events.PacketEvent.Receive
import me.zeroeightsix.kami.module.Module
import me.zeroeightsix.kami.setting.Settings
import me.zeroeightsix.kami.util.MessageSendHelper
import me.zeroeightsix.kami.util.Wrapper
import net.minecraft.network.play.server.SPacketDisconnect
import net.minecraft.network.play.server.SPacketRespawn
import net.minecraft.util.text.TextComponentString
import java.util.*
/**
* Created by 0x2E | PretendingToCode
*/
@Module.Info(
name = "EndTeleport",
category = Module.Category.PLAYER,
description = "Allows for teleportation when going through end portals"
)
class EndTeleport : Module() {
private val confirmed = register(Settings.b("Confirm", true))
public override fun onEnable() {
if (Wrapper.getMinecraft().getCurrentServerData() == null) {
MessageSendHelper.sendWarningMessage(chatName + "This module does not work in singleplayer")
disable()
} else if (!confirmed.value) {
MessageSendHelper.sendWarningMessage(chatName + "This module will kick you from the server! It is part of the exploit and cannot be avoided")
}
}
@EventHandler
var receiveListener = Listener(EventHook { event: Receive ->
if (event.packet is SPacketRespawn) {
if ((event.packet as SPacketRespawn).dimensionID == 1 && confirmed.value) {
Objects.requireNonNull(Wrapper.getMinecraft().connection)!!.handleDisconnect(SPacketDisconnect(TextComponentString("Attempting teleportation exploit")))
disable()
}
}
})
}

View File

@ -1,19 +0,0 @@
package me.zeroeightsix.kami.module.modules.player;
import me.zeroeightsix.kami.module.Module;
/**
* @author 086
*/
@Module.Info(
name = "Fastbreak",
category = Module.Category.PLAYER,
description = "Nullifies block hit delay"
)
public class Fastbreak extends Module {
@Override
public void onUpdate() {
mc.playerController.blockHitDelay = 0;
}
}

View File

@ -0,0 +1,17 @@
package me.zeroeightsix.kami.module.modules.player
import me.zeroeightsix.kami.module.Module
/**
* @author 086
*/
@Module.Info(
name = "Fastbreak",
category = Module.Category.PLAYER,
description = "Nullifies block hit delay"
)
class Fastbreak : Module() {
override fun onUpdate() {
mc.playerController.blockHitDelay = 0
}
}

View File

@ -1,120 +0,0 @@
package me.zeroeightsix.kami.module.modules.player;
import me.zero.alpine.listener.EventHandler;
import me.zero.alpine.listener.Listener;
import me.zeroeightsix.kami.event.events.PacketEvent;
import me.zeroeightsix.kami.event.events.PlayerMoveEvent;
import me.zeroeightsix.kami.module.Module;
import me.zeroeightsix.kami.setting.Setting;
import me.zeroeightsix.kami.setting.Settings;
import net.minecraft.client.entity.EntityOtherPlayerMP;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.network.play.client.CPacketInput;
import net.minecraft.network.play.client.CPacketPlayer;
import net.minecraft.network.play.client.CPacketUseEntity;
import net.minecraft.network.play.client.CPacketVehicleMove;
import net.minecraftforge.client.event.PlayerSPPushOutOfBlocksEvent;
/**
* Created by 086 on 22/12/2017.
*/
@Module.Info(
name = "Freecam",
category = Module.Category.PLAYER,
description = "Leave your body and trascend into the realm of the gods"
)
public class Freecam extends Module {
private Setting<Integer> speed = register(Settings.i("Speed", 5)); // /100 in practice
private Setting<Boolean> packetCancel = register(Settings.b("Packet Cancel", false));
private double posX, posY, posZ;
private float pitch, yaw;
private EntityOtherPlayerMP clonedPlayer;
private boolean isRidingEntity;
private Entity ridingEntity;
@Override
protected void onEnable() {
if (mc.player != null) {
isRidingEntity = mc.player.getRidingEntity() != null;
if (mc.player.getRidingEntity() == null) {
posX = mc.player.posX;
posY = mc.player.posY;
posZ = mc.player.posZ;
} else {
ridingEntity = mc.player.getRidingEntity();
mc.player.dismountRidingEntity();
}
pitch = mc.player.rotationPitch;
yaw = mc.player.rotationYaw;
clonedPlayer = new EntityOtherPlayerMP(mc.world, mc.getSession().getProfile());
clonedPlayer.copyLocationAndAnglesFrom(mc.player);
clonedPlayer.rotationYawHead = mc.player.rotationYawHead;
mc.world.addEntityToWorld(-100, clonedPlayer);
mc.player.capabilities.isFlying = true;
mc.player.capabilities.setFlySpeed(speed.getValue() / 100f);
mc.player.noClip = true;
// WebringOfTheDamned
// This is needed for some reason, as is the converse in onDisable.
mc.renderChunksMany = false;
mc.renderGlobal.loadRenderers();
}
}
@Override
protected void onDisable() {
EntityPlayer localPlayer = mc.player;
if (localPlayer != null) {
mc.player.setPositionAndRotation(posX, posY, posZ, yaw, pitch);
mc.world.removeEntityFromWorld(-100);
clonedPlayer = null;
posX = posY = posZ = 0.D;
pitch = yaw = 0.f;
mc.player.capabilities.isFlying = false; //getModManager().getMod("ElytraFlight").isEnabled();
mc.player.capabilities.setFlySpeed(0.05f);
mc.player.noClip = false;
mc.player.motionX = mc.player.motionY = mc.player.motionZ = 0.f;
if (isRidingEntity) {
mc.player.startRiding(ridingEntity, true);
}
// WebringOfTheDamned
// This is needed for some reason, as is the converse in onEnable.
mc.renderChunksMany = true;
mc.renderGlobal.loadRenderers();
}
}
@Override
public void onUpdate() {
mc.player.capabilities.isFlying = true;
mc.player.capabilities.setFlySpeed(speed.getValue() / 100f);
mc.player.noClip = true;
mc.player.onGround = false;
mc.player.fallDistance = 0;
}
@EventHandler
private Listener<PlayerMoveEvent> moveListener = new Listener<>(event -> mc.player.noClip = true);
@EventHandler
private Listener<PlayerSPPushOutOfBlocksEvent> pushListener = new Listener<>(event -> event.setCanceled(true));
@EventHandler
private Listener<PacketEvent.Send> sendListener = new Listener<>(event -> {
if (event.getPacket() instanceof CPacketPlayer || event.getPacket() instanceof CPacketInput) {
event.cancel();
}
if (packetCancel.getValue() && (event.getPacket() instanceof CPacketUseEntity || event.getPacket() instanceof CPacketVehicleMove)) {
event.cancel();
}
});
}

View File

@ -0,0 +1,115 @@
package me.zeroeightsix.kami.module.modules.player
import me.zero.alpine.listener.EventHandler
import me.zero.alpine.listener.EventHook
import me.zero.alpine.listener.Listener
import me.zeroeightsix.kami.event.events.PacketEvent
import me.zeroeightsix.kami.event.events.PlayerMoveEvent
import me.zeroeightsix.kami.module.Module
import me.zeroeightsix.kami.setting.Settings
import net.minecraft.client.entity.EntityOtherPlayerMP
import net.minecraft.entity.Entity
import net.minecraft.entity.player.EntityPlayer
import net.minecraft.network.play.client.CPacketInput
import net.minecraft.network.play.client.CPacketPlayer
import net.minecraft.network.play.client.CPacketUseEntity
import net.minecraft.network.play.client.CPacketVehicleMove
import net.minecraftforge.client.event.PlayerSPPushOutOfBlocksEvent
/**
* Created by 086 on 22/12/2017.
*/
@Module.Info(
name = "Freecam",
category = Module.Category.PLAYER,
description = "Leave your body and trascend into the realm of the gods"
)
class Freecam : Module() {
private val speed = register(Settings.i("Speed", 5)) // /100 in practice
private val packetCancel = register(Settings.b("Packet Cancel", false))
private var posX = 0.0
private var posY = 0.0
private var posZ = 0.0
private var pitch = 0f
private var yaw = 0f
private var clonedPlayer: EntityOtherPlayerMP? = null
private var isRidingEntity = false
private var ridingEntity: Entity? = null
override fun onEnable() {
if (mc.player != null) {
isRidingEntity = mc.player.getRidingEntity() != null
if (mc.player.getRidingEntity() == null) {
posX = mc.player.posX
posY = mc.player.posY
posZ = mc.player.posZ
} else {
ridingEntity = mc.player.getRidingEntity()
mc.player.dismountRidingEntity()
}
pitch = mc.player.rotationPitch
yaw = mc.player.rotationYaw
clonedPlayer = EntityOtherPlayerMP(mc.world, mc.getSession().profile)
clonedPlayer!!.copyLocationAndAnglesFrom(mc.player)
clonedPlayer!!.rotationYawHead = mc.player.rotationYawHead
mc.world.addEntityToWorld(-100, clonedPlayer)
mc.player.capabilities.isFlying = true
mc.player.capabilities.flySpeed = speed.value / 100f
mc.player.noClip = true
// WebringOfTheDamned
// This is needed for some reason, as is the converse in onDisable.
mc.renderChunksMany = false
mc.renderGlobal.loadRenderers()
}
}
override fun onDisable() {
val localPlayer: EntityPlayer? = mc.player
if (localPlayer != null) {
mc.player.setPositionAndRotation(posX, posY, posZ, yaw, pitch)
mc.world.removeEntityFromWorld(-100)
clonedPlayer = null
posZ = 0.0
posY = posZ
posX = posY
yaw = 0f
pitch = yaw
mc.player.capabilities.isFlying = false //getModManager().getMod("ElytraFlight").isEnabled();
mc.player.capabilities.flySpeed = 0.05f
mc.player.noClip = false
mc.player.motionZ = 0.0
mc.player.motionY = mc.player.motionZ
mc.player.motionX = mc.player.motionY
if (isRidingEntity) {
mc.player.startRiding(ridingEntity, true)
}
// WebringOfTheDamned
// This is needed for some reason, as is the converse in onEnable.
mc.renderChunksMany = true
mc.renderGlobal.loadRenderers()
}
}
override fun onUpdate() {
mc.player.capabilities.isFlying = true
mc.player.capabilities.flySpeed = speed.value / 100f
mc.player.noClip = true
mc.player.onGround = false
mc.player.fallDistance = 0f
}
@EventHandler
private val moveListener = Listener(EventHook { event: PlayerMoveEvent? -> mc.player.noClip = true })
@EventHandler
private val pushListener = Listener(EventHook { event: PlayerSPPushOutOfBlocksEvent -> event.isCanceled = true })
@EventHandler
private val sendListener = Listener(EventHook { event: PacketEvent.Send ->
if (event.packet is CPacketPlayer || event.packet is CPacketInput) {
event.cancel()
}
if (packetCancel.value && (event.packet is CPacketUseEntity || event.packet is CPacketVehicleMove)) {
event.cancel()
}
})
}

View File

@ -1,6 +1,6 @@
package me.zeroeightsix.kami.module.modules.player;
package me.zeroeightsix.kami.module.modules.player
import me.zeroeightsix.kami.module.Module;
import me.zeroeightsix.kami.module.Module
/**
* @author THEREALWWEFAN231
@ -12,5 +12,4 @@ import me.zeroeightsix.kami.module.Module;
category = Module.Category.PLAYER,
description = "Place blocks on liquid!"
)
public class LiquidInteract extends Module {
}
class LiquidInteract : Module()

View File

@ -1,32 +0,0 @@
package me.zeroeightsix.kami.module.modules.player;
import me.zeroeightsix.kami.module.Module;
import me.zeroeightsix.kami.setting.Setting;
import me.zeroeightsix.kami.setting.Settings;
/**
* Created by 086 on 8/04/2018.
*/
@Module.Info(
name = "NoEntityTrace",
category = Module.Category.PLAYER,
description = "Blocks entities from stopping you from mining"
)
public class NoEntityTrace extends Module {
private Setting<TraceMode> mode = register(Settings.e("Mode", TraceMode.DYNAMIC));
private static NoEntityTrace INSTANCE;
public NoEntityTrace() {
NoEntityTrace.INSTANCE = this;
}
public static boolean shouldBlock() {
return INSTANCE.isEnabled() && (INSTANCE.mode.getValue() == TraceMode.STATIC || mc.playerController.isHittingBlock);
}
private enum TraceMode {
STATIC, DYNAMIC
}
}

View File

@ -0,0 +1,32 @@
package me.zeroeightsix.kami.module.modules.player
import me.zeroeightsix.kami.module.Module
import me.zeroeightsix.kami.setting.Settings
/**
* Created by 086 on 8/04/2018.
*/
@Module.Info(
name = "NoEntityTrace",
category = Module.Category.PLAYER,
description = "Blocks entities from stopping you from mining"
)
class NoEntityTrace : Module() {
private val mode = register(Settings.e<TraceMode>("Mode", TraceMode.DYNAMIC))
private enum class TraceMode {
STATIC, DYNAMIC
}
companion object {
private var INSTANCE: NoEntityTrace? = null
@JvmStatic
fun shouldBlock(): Boolean {
return INSTANCE!!.isEnabled && (INSTANCE!!.mode.value == TraceMode.STATIC || mc.playerController.isHittingBlock)
}
}
init {
INSTANCE = this
}
}

View File

@ -1,74 +0,0 @@
package me.zeroeightsix.kami.module.modules.player;
import me.zero.alpine.listener.EventHandler;
import me.zero.alpine.listener.Listener;
import me.zeroeightsix.kami.event.events.PacketEvent;
import me.zeroeightsix.kami.module.Module;
import me.zeroeightsix.kami.setting.Setting;
import me.zeroeightsix.kami.setting.Settings;
import me.zeroeightsix.kami.util.EntityUtil;
import net.minecraft.init.Items;
import net.minecraft.network.play.client.CPacketPlayer;
import net.minecraft.util.EnumHand;
import net.minecraft.util.math.RayTraceResult;
import net.minecraft.util.math.Vec3d;
/**
* Created by 086 on 19/11/2017.
* Updated by dominikaaaa on 05/03/20
*/
@Module.Info(
category = Module.Category.PLAYER,
description = "Prevents fall damage", name = "NoFall"
)
public class NoFall extends Module {
private Setting<FallMode> fallMode = register(Settings.e("Mode", FallMode.PACKET));
private Setting<Boolean> pickup = register(Settings.booleanBuilder("Pickup").withValue(true).withVisibility(v -> fallMode.getValue().equals(FallMode.BUCKET)).build());
private Setting<Integer> distance = register(Settings.integerBuilder("Distance").withValue(3).withMinimum(1).withMaximum(10).withVisibility(v -> fallMode.getValue().equals(FallMode.BUCKET)).build());
private Setting<Integer> pickupDelay = register(Settings.integerBuilder("Pickup Delay").withValue(300).withMinimum(100).withMaximum(1000).withVisibility(v -> fallMode.getValue().equals(FallMode.BUCKET) && pickup.getValue()).build());
private long last = 0;
@EventHandler
public Listener<PacketEvent.Send> sendListener = new Listener<>(event -> {
if ((fallMode.getValue().equals(FallMode.PACKET)) && event.getPacket() instanceof CPacketPlayer) {
((CPacketPlayer) event.getPacket()).onGround = true;
}
});
@Override
public void onUpdate() {
if ((fallMode.getValue().equals(FallMode.BUCKET)) && mc.player.fallDistance >= distance.getValue() && !EntityUtil.isAboveWater(mc.player) && System.currentTimeMillis() - last > 100) {
Vec3d posVec = mc.player.getPositionVector();
RayTraceResult result = mc.world.rayTraceBlocks(posVec, posVec.add(0, -5.33f, 0), true, true, false);
if (result != null && result.typeOfHit == RayTraceResult.Type.BLOCK) {
EnumHand hand = EnumHand.MAIN_HAND;
if (mc.player.getHeldItemOffhand().getItem() == Items.WATER_BUCKET) hand = EnumHand.OFF_HAND;
else if (mc.player.getHeldItemMainhand().getItem() != Items.WATER_BUCKET) {
for (int i = 0; i < 9; i++)
if (mc.player.inventory.getStackInSlot(i).getItem() == Items.WATER_BUCKET) {
mc.player.inventory.currentItem = i;
mc.player.rotationPitch = 90;
last = System.currentTimeMillis();
return;
}
return;
}
mc.player.rotationPitch = 90;
mc.playerController.processRightClick(mc.player, mc.world, hand);
}
if (pickup.getValue()) {
new Thread(() -> {
try { Thread.sleep(pickupDelay.getValue()); } catch (InterruptedException ignored) { }
mc.player.rotationPitch = 90;
mc.rightClickMouse();
}).start();
}
}
}
private enum FallMode {
BUCKET, PACKET
}
}

View File

@ -0,0 +1,72 @@
package me.zeroeightsix.kami.module.modules.player
import me.zero.alpine.listener.EventHandler
import me.zero.alpine.listener.EventHook
import me.zero.alpine.listener.Listener
import me.zeroeightsix.kami.event.events.PacketEvent
import me.zeroeightsix.kami.module.Module
import me.zeroeightsix.kami.setting.Settings
import me.zeroeightsix.kami.util.EntityUtil
import net.minecraft.init.Items
import net.minecraft.network.play.client.CPacketPlayer
import net.minecraft.util.EnumHand
import net.minecraft.util.math.RayTraceResult
/**
* Created by 086 on 19/11/2017.
* Updated by dominikaaaa on 05/03/20
*/
@Module.Info(
name = "NoFall",
category = Module.Category.PLAYER,
description = "Prevents fall damage"
)
class NoFall : Module() {
private val fallMode = register(Settings.e<FallMode>("Mode", FallMode.PACKET))
private val pickup = register(Settings.booleanBuilder("Pickup").withValue(true).withVisibility { v: Boolean? -> fallMode.value == FallMode.BUCKET }.build())
private val distance = register(Settings.integerBuilder("Distance").withValue(3).withMinimum(1).withMaximum(10).withVisibility { v: Int? -> fallMode.value == FallMode.BUCKET }.build())
private val pickupDelay = register(Settings.integerBuilder("Pickup Delay").withValue(300).withMinimum(100).withMaximum(1000).withVisibility { v: Int? -> fallMode.value == FallMode.BUCKET && pickup.value }.build())
private var last: Long = 0
@EventHandler
var sendListener = Listener(EventHook { event: PacketEvent.Send ->
if (fallMode.value == FallMode.PACKET && event.packet is CPacketPlayer) {
(event.packet as CPacketPlayer).onGround = true
}
})
override fun onUpdate() {
if (fallMode.value == FallMode.BUCKET && mc.player.fallDistance >= distance.value && !EntityUtil.isAboveWater(mc.player) && System.currentTimeMillis() - last > 100) {
val posVec = mc.player.positionVector
val result = mc.world.rayTraceBlocks(posVec, posVec.add(0.0, -5.33, 0.0), true, true, false)
if (result != null && result.typeOfHit == RayTraceResult.Type.BLOCK) {
var hand = EnumHand.MAIN_HAND
if (mc.player.heldItemOffhand.getItem() === Items.WATER_BUCKET) hand = EnumHand.OFF_HAND else if (mc.player.heldItemMainhand.getItem() !== Items.WATER_BUCKET) {
for (i in 0..8) if (mc.player.inventory.getStackInSlot(i).getItem() === Items.WATER_BUCKET) {
mc.player.inventory.currentItem = i
mc.player.rotationPitch = 90f
last = System.currentTimeMillis()
return
}
return
}
mc.player.rotationPitch = 90f
mc.playerController.processRightClick(mc.player, mc.world, hand)
}
if (pickup.value) {
Thread(Runnable {
try {
Thread.sleep(pickupDelay.value.toLong())
} catch (ignored: InterruptedException) {
}
mc.player.rotationPitch = 90f
mc.rightClickMouse()
}).start()
}
}
}
private enum class FallMode {
BUCKET, PACKET
}
}

View File

@ -1,6 +1,6 @@
package me.zeroeightsix.kami.module.modules.player;
package me.zeroeightsix.kami.module.modules.player
import me.zeroeightsix.kami.module.Module;
import me.zeroeightsix.kami.module.Module
/**
* @author 086
@ -14,5 +14,4 @@ import me.zeroeightsix.kami.module.Module;
description = "Suppress network exceptions and prevent getting kicked",
showOnArray = Module.ShowOnArray.OFF
)
public class NoPacketKick extends Module {
}
class NoPacketKick : Module()

View File

@ -1,29 +0,0 @@
package me.zeroeightsix.kami.module.modules.player;
import me.zero.alpine.listener.EventHandler;
import me.zero.alpine.listener.Listener;
import me.zeroeightsix.kami.event.events.PacketEvent;
import me.zeroeightsix.kami.module.Module;
import net.minecraft.network.play.client.CPacketAnimation;
/**
* Created 13 August 2019 by hub
* Updated 14 November 2019 by hub
* Updated by dominikaaaa on 14/12/19
*/
@Module.Info(
name = "NoSwing",
category = Module.Category.PLAYER,
description = "Cancels server and client swinging packets"
)
public class NoSwing extends Module {
@EventHandler
private Listener<PacketEvent.Send> listener = new Listener<>(event -> {
if (event.getPacket() instanceof CPacketAnimation) {
event.cancel();
}
});
}

View File

@ -0,0 +1,27 @@
package me.zeroeightsix.kami.module.modules.player
import me.zero.alpine.listener.EventHandler
import me.zero.alpine.listener.EventHook
import me.zero.alpine.listener.Listener
import me.zeroeightsix.kami.event.events.PacketEvent
import me.zeroeightsix.kami.module.Module
import net.minecraft.network.play.client.CPacketAnimation
/**
* Created 13 August 2019 by hub
* Updated 14 November 2019 by hub
* Updated by dominikaaaa on 14/12/19
*/
@Module.Info(
name = "NoSwing",
category = Module.Category.PLAYER,
description = "Cancels server and client swinging packets"
)
class NoSwing : Module() {
@EventHandler
private val listener = Listener(EventHook { event: PacketEvent.Send ->
if (event.packet is CPacketAnimation) {
event.cancel()
}
})
}

View File

@ -1,56 +0,0 @@
package me.zeroeightsix.kami.module.modules.player;
import me.zero.alpine.listener.EventHandler;
import me.zero.alpine.listener.Listener;
import me.zeroeightsix.kami.event.events.PacketEvent;
import me.zeroeightsix.kami.module.Module;
import me.zeroeightsix.kami.setting.Setting;
import me.zeroeightsix.kami.setting.Settings;
import net.minecraft.network.play.client.*;
/**
* @author dominikaaaa
*/
@Module.Info(
name = "PacketCancel",
description = "Cancels specific packets used for various actions",
category = Module.Category.PLAYER
)
public class PacketCancel extends Module {
private Setting<Boolean> all = register(Settings.b("All", false));
private Setting<Boolean> packetInput = register(Settings.booleanBuilder("CPacketInput").withValue(true).withVisibility(v -> !all.getValue()));
private Setting<Boolean> packetPlayer = register(Settings.booleanBuilder("CPacketPlayer").withValue(true).withVisibility(v -> !all.getValue()));
private Setting<Boolean> packetEntityAction = register(Settings.booleanBuilder("CPacketEntityAction").withValue(true).withVisibility(v -> !all.getValue()));
private Setting<Boolean> packetUseEntity = register(Settings.booleanBuilder("CPacketUseEntity").withValue(true).withVisibility(v -> !all.getValue()));
private Setting<Boolean> packetVehicleMove = register(Settings.booleanBuilder("CPacketVehicleMove").withValue(true).withVisibility(v -> !all.getValue()));
private int numPackets;
@EventHandler
private final Listener<PacketEvent.Send> sendListener = new Listener<>(event -> {
if (
(all.getValue())
||
(packetInput.getValue() && event.getPacket() instanceof CPacketInput)
||
(packetPlayer.getValue() && event.getPacket() instanceof CPacketPlayer)
||
(packetEntityAction.getValue() && event.getPacket() instanceof CPacketEntityAction)
||
(packetUseEntity.getValue() && event.getPacket() instanceof CPacketUseEntity)
||
(packetVehicleMove.getValue() && event.getPacket() instanceof CPacketVehicleMove)
) {
event.cancel();
numPackets++;
}
});
public void onDisable() {
numPackets = 0;
}
@Override
public String getHudInfo() {
return Integer.toString(numPackets);
}
}

View File

@ -0,0 +1,53 @@
package me.zeroeightsix.kami.module.modules.player
import me.zero.alpine.listener.EventHandler
import me.zero.alpine.listener.EventHook
import me.zero.alpine.listener.Listener
import me.zeroeightsix.kami.event.events.PacketEvent
import me.zeroeightsix.kami.module.Module
import me.zeroeightsix.kami.setting.Settings
import net.minecraft.network.play.client.*
/**
* @author dominikaaaa
*/
@Module.Info(
name = "PacketCancel",
description = "Cancels specific packets used for various actions",
category = Module.Category.PLAYER
)
class PacketCancel : Module() {
private val all = register(Settings.b("All", false))
private val packetInput = register(Settings.booleanBuilder("CPacketInput").withValue(true).withVisibility { v: Boolean? -> !all.value })
private val packetPlayer = register(Settings.booleanBuilder("CPacketPlayer").withValue(true).withVisibility { v: Boolean? -> !all.value })
private val packetEntityAction = register(Settings.booleanBuilder("CPacketEntityAction").withValue(true).withVisibility { v: Boolean? -> !all.value })
private val packetUseEntity = register(Settings.booleanBuilder("CPacketUseEntity").withValue(true).withVisibility { v: Boolean? -> !all.value })
private val packetVehicleMove = register(Settings.booleanBuilder("CPacketVehicleMove").withValue(true).withVisibility { v: Boolean? -> !all.value })
private var numPackets = 0
@EventHandler
private val sendListener = Listener(EventHook { event: PacketEvent.Send ->
if (all.value
||
packetInput.value && event.packet is CPacketInput
||
packetPlayer.value && event.packet is CPacketPlayer
||
packetEntityAction.value && event.packet is CPacketEntityAction
||
packetUseEntity.value && event.packet is CPacketUseEntity
||
packetVehicleMove.value && event.packet is CPacketVehicleMove) {
event.cancel()
numPackets++
}
})
public override fun onDisable() {
numPackets = 0
}
override fun getHudInfo(): String {
return numPackets.toString()
}
}

View File

@ -1,34 +0,0 @@
package me.zeroeightsix.kami.module.modules.player;
import me.zeroeightsix.kami.module.Module;
import me.zeroeightsix.kami.setting.Setting;
import me.zeroeightsix.kami.setting.Settings;
import net.minecraft.util.math.MathHelper;
/**
* Created by 086 on 16/12/2017.
*/
@Module.Info(
name = "PitchLock",
category = Module.Category.PLAYER,
description = "Locks your camera pitch"
)
public class PitchLock extends Module {
private Setting<Boolean> auto = register(Settings.b("Auto", true));
private Setting<Float> pitch = register(Settings.f("Pitch", 180));
private Setting<Integer> slice = register(Settings.i("Slice", 8));
@Override
public void onUpdate() {
if (slice.getValue() == 0) return;
if (auto.getValue()) {
int angle = 360 / slice.getValue();
float yaw = mc.player.rotationPitch;
yaw = Math.round(yaw / angle) * angle;
mc.player.rotationPitch = yaw;
if (mc.player.isRiding()) mc.player.getRidingEntity().rotationPitch = yaw;
} else {
mc.player.rotationPitch = MathHelper.clamp(pitch.getValue() - 180, -180, 180);
}
}
}

View File

@ -0,0 +1,32 @@
package me.zeroeightsix.kami.module.modules.player
import me.zeroeightsix.kami.module.Module
import me.zeroeightsix.kami.setting.Settings
import net.minecraft.util.math.MathHelper
import kotlin.math.roundToInt
/**
* Created by 086 on 16/12/2017.
*/
@Module.Info(
name = "PitchLock",
category = Module.Category.PLAYER,
description = "Locks your camera pitch"
)
class PitchLock : Module() {
private val auto = register(Settings.b("Auto", true))
private val pitch = register(Settings.f("Pitch", 180f))
private val slice = register(Settings.i("Slice", 8))
override fun onUpdate() {
if (slice.value == 0) return
if (auto.value) {
val angle = 360 / slice.value
var yaw = mc.player.rotationPitch
yaw = (yaw / angle).roundToInt() * angle.toFloat()
mc.player.rotationPitch = yaw
if (mc.player.isRiding) mc.player.getRidingEntity()!!.rotationPitch = yaw
} else {
mc.player.rotationPitch = MathHelper.clamp(pitch.value - 180, -180f, 180f)
}
}
}

View File

@ -1,25 +0,0 @@
package me.zeroeightsix.kami.module.modules.player;
import me.zero.alpine.listener.EventHandler;
import me.zero.alpine.listener.Listener;
import me.zeroeightsix.kami.event.events.PacketEvent;
import me.zeroeightsix.kami.module.Module;
import net.minecraft.network.play.client.CPacketConfirmTeleport;
/**
* Created by GlowskiBroski on 10/14/2018.
*/
@Module.Info(
name = "PortalGodMode",
category = Module.Category.PLAYER,
description = "Don't take damage in portals"
)
public class PortalGodMode extends Module {
@EventHandler
public Listener<PacketEvent.Send> listener = new Listener<>(event -> {
if (isEnabled() && event.getPacket() instanceof CPacketConfirmTeleport) {
event.cancel();
}
});
}

View File

@ -0,0 +1,25 @@
package me.zeroeightsix.kami.module.modules.player
import me.zero.alpine.listener.EventHandler
import me.zero.alpine.listener.EventHook
import me.zero.alpine.listener.Listener
import me.zeroeightsix.kami.event.events.PacketEvent
import me.zeroeightsix.kami.module.Module
import net.minecraft.network.play.client.CPacketConfirmTeleport
/**
* Created by GlowskiBroski on 10/14/2018.
*/
@Module.Info(
name = "PortalGodMode",
category = Module.Category.PLAYER,
description = "Don't take damage in portals"
)
class PortalGodMode : Module() {
@EventHandler
var listener = Listener(EventHook { event: PacketEvent.Send ->
if (isEnabled && event.packet is CPacketConfirmTeleport) {
event.cancel()
}
})
}

View File

@ -1,36 +0,0 @@
package me.zeroeightsix.kami.module.modules.player;
import me.zeroeightsix.kami.module.Module;
import me.zeroeightsix.kami.setting.Setting;
import me.zeroeightsix.kami.setting.Settings;
/**
* Code like this does not have an author, as it is literally one function. It's nothing unique.
* See BowSpam for example. It's just one thing. Anybody can write it the exact same way on accident.
* There is nothing to credit here.
* This message is here because clowns decided to argue with me that they should be credited even though they did not come up with the code.
* Updated by dominikaaaa on 01/03/20
*/
@Module.Info(
name = "Timer",
category = Module.Category.PLAYER,
description = "Changes your client tick speed"
)
public class Timer extends Module {
private Setting<Boolean> slow = register(Settings.b("Slow Mode", false));
private Setting<Float> tickNormal = register(Settings.floatBuilder("Tick N").withMinimum(1f).withMaximum(10f).withValue(2.0f).withVisibility(v -> !slow.getValue()).build());
private Setting<Float> tickSlow = register(Settings.floatBuilder("Tick S").withMinimum(1f).withMaximum(10f).withValue(8f).withVisibility(v -> slow.getValue()).build());
public void onDisable() {
mc.timer.tickLength = 50.0f;
}
public void onUpdate() {
if (!slow.getValue()) {
mc.timer.tickLength = 50.0f / tickNormal.getValue();
}
else {
mc.timer.tickLength = 50.0f / (tickSlow.getValue() / 10.0f);
}
}
}

View File

@ -0,0 +1,33 @@
package me.zeroeightsix.kami.module.modules.player
import me.zeroeightsix.kami.module.Module
import me.zeroeightsix.kami.setting.Settings
/**
* Code like this does not have an author, as it is literally one function. It's nothing unique.
* See BowSpam for example. It's just one thing. Anybody can write it the exact same way on accident.
* There is nothing to credit here.
* This message is here because clowns decided to argue with me that they should be credited even though they did not come up with the code.
* Updated by dominikaaaa on 01/03/20
*/
@Module.Info(
name = "Timer",
category = Module.Category.PLAYER,
description = "Changes your client tick speed"
)
class Timer : Module() {
private val slow = register(Settings.b("Slow Mode", false))
private val tickNormal = register(Settings.floatBuilder("Tick N").withMinimum(1f).withMaximum(10f).withValue(2.0f).withVisibility { v: Float? -> !slow.value }.build())
private val tickSlow = register(Settings.floatBuilder("Tick S").withMinimum(1f).withMaximum(10f).withValue(8f).withVisibility { v: Float? -> slow.value }.build())
public override fun onDisable() {
mc.timer.tickLength = 50.0f
}
override fun onUpdate() {
if (!slow.value) {
mc.timer.tickLength = 50.0f / tickNormal.value
} else {
mc.timer.tickLength = 50.0f / (tickSlow.value / 10.0f)
}
}
}

View File

@ -1,34 +0,0 @@
package me.zeroeightsix.kami.module.modules.player;
import me.zeroeightsix.kami.module.Module;
import me.zeroeightsix.kami.setting.Setting;
import me.zeroeightsix.kami.setting.Settings;
import net.minecraft.util.math.MathHelper;
/**
* Created by 086 on 16/12/2017.
*/
@Module.Info(
name = "YawLock",
category = Module.Category.PLAYER,
description = "Locks your camera yaw"
)
public class YawLock extends Module {
private Setting<Boolean> auto = register(Settings.b("Auto", true));
private Setting<Float> yaw = register(Settings.f("Yaw", 180));
private Setting<Integer> slice = register(Settings.i("Slice", 8));
@Override
public void onUpdate() {
if (slice.getValue() == 0) return;
if (auto.getValue()) {
int angle = 360 / slice.getValue();
float yaw = mc.player.rotationYaw;
yaw = Math.round(yaw / angle) * angle;
mc.player.rotationYaw = yaw;
if (mc.player.isRiding()) mc.player.getRidingEntity().rotationYaw = yaw;
} else {
mc.player.rotationYaw = MathHelper.clamp(yaw.getValue() - 180, -180, 180);
}
}
}

View File

@ -0,0 +1,32 @@
package me.zeroeightsix.kami.module.modules.player
import me.zeroeightsix.kami.module.Module
import me.zeroeightsix.kami.setting.Settings
import net.minecraft.util.math.MathHelper
import kotlin.math.roundToInt
/**
* Created by 086 on 16/12/2017.
*/
@Module.Info(
name = "YawLock",
category = Module.Category.PLAYER,
description = "Locks your camera yaw"
)
class YawLock : Module() {
private val auto = register(Settings.b("Auto", true))
private val yaw = register(Settings.f("Yaw", 180f))
private val slice = register(Settings.i("Slice", 8))
override fun onUpdate() {
if (slice.value == 0) return
if (auto.value) {
val angle = 360 / slice.value
var yaw = mc.player.rotationYaw
yaw = (yaw / angle).roundToInt() * angle.toFloat()
mc.player.rotationYaw = yaw
if (mc.player.isRiding) mc.player.getRidingEntity()!!.rotationYaw = yaw
} else {
mc.player.rotationYaw = MathHelper.clamp(yaw.value - 180, -180f, 180f)
}
}
}