mirror of https://github.com/kami-blue/client
convert player category modules to kotlin
This commit is contained in:
parent
b21ea89817
commit
89c59a51e7
|
@ -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()
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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());
|
||||
}
|
||||
|
||||
}
|
|
@ -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()
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
|
@ -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()
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
}
|
|
@ -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()
|
||||
}
|
||||
})
|
||||
}
|
|
@ -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()
|
|
@ -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
|
||||
}
|
||||
}
|
|
@ -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
|
||||
}
|
||||
}
|
|
@ -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
|
||||
}
|
||||
}
|
|
@ -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
|
||||
}
|
||||
}
|
|
@ -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()
|
|
@ -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();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
|
@ -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()
|
||||
}
|
||||
})
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -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()
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
});
|
||||
}
|
|
@ -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()
|
||||
}
|
||||
})
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue