Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.zeroeightsix.kami.module.modules.combat;
- 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.RenderEvent;
- import me.zeroeightsix.kami.module.Module;
- import me.zeroeightsix.kami.setting.Setting;
- import me.zeroeightsix.kami.setting.Settings;
- import me.zeroeightsix.kami.util.*;
- import me.zeroeightsix.kami.util.EntityUtil;
- import net.minecraft.nbt.NBTTagCompound;
- import net.minecraft.nbt.NBTTagList;
- import me.zeroeightsix.kami.util.LagCompensator;
- import net.minecraft.enchantment.EnchantmentHelper;
- import net.minecraft.entity.Entity;
- import net.minecraft.entity.EntityLivingBase;
- import net.minecraft.entity.SharedMonsterAttributes;
- import net.minecraft.entity.item.EntityEnderCrystal;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.init.Blocks;
- import net.minecraft.init.Items;
- import net.minecraft.init.MobEffects;
- import net.minecraft.item.ItemStack;
- import net.minecraft.item.ItemSword;
- import net.minecraft.item.ItemTool;
- import net.minecraft.network.Packet;
- import net.minecraft.network.play.client.CPacketPlayer;
- import net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock;
- import net.minecraft.potion.Potion;
- import net.minecraft.util.*;
- import net.minecraft.util.math.*;
- import net.minecraft.world.Explosion;
- import org.lwjgl.opengl.GL11;
- import me.zeroeightsix.kami.command.Command;
- import me.zeroeightsix.kami.gui.kami.component.ActiveModules;
- import me.zeroeightsix.kami.gui.rgui.component.AlignedComponent;
- import me.zeroeightsix.kami.gui.rgui.render.AbstractComponentUI;
- import me.zeroeightsix.kami.gui.rgui.render.font.FontRenderer;
- import me.zeroeightsix.kami.module.Module;
- import me.zeroeightsix.kami.module.ModuleManager;
- import me.zeroeightsix.kami.util.Wrapper;
- import org.lwjgl.opengl.GL11;
- import java.awt.*;
- import java.util.Comparator;
- import java.util.List;
- import java.util.function.Function;
- import java.util.stream.Collectors;
- import java.util.ArrayList;
- import java.util.Comparator;
- import java.util.List;
- import java.util.stream.Collectors;
- import static me.zeroeightsix.kami.util.EntityUtil.calculateLookAt;
- import java.util.Iterator;
- /**
- * Created by 086 on 28/12/2017.
- * Last Updated 29 June 2019 by hub
- */
- @Module.Info(name = "HoleFinder", category = Module.Category.COMBAT)
- public class HoleEsp extends Module {
- private Setting<Double> range = register(Settings.d("Range", 7));
- private Setting<Integer> Red = register(Settings.integerBuilder("Red").withMinimum(0).withMaximum(255).withValue(100));
- private Setting<Integer> Green = register(Settings.integerBuilder("Green").withMinimum(0).withMaximum(255).withValue(0));
- private Setting<Integer> Blue = register(Settings.integerBuilder("Blue").withMinimum(0).withMaximum(255).withValue(100));
- private Setting<Integer> alpha = register(Settings.integerBuilder("Alpha").withMinimum(0).withMaximum(100).withValue(60));
- private BlockPos render;
- private Entity renderEnt;
- private long systemTime = -1;
- private static boolean togglePitch = false;
- // we need this cooldown to not place from old hotbar slot, before we have switched to crystals
- private boolean switchCooldown = false;
- private boolean isAttacking = false;
- private int oldSlot = -1;
- private int newSlot;//kkkkkkkkkkkkk
- double d;
- @Override
- public void onUpdate() {
- List<BlockPos> blocks = findCrystalBlocks();
- BlockPos q = null;
- for (BlockPos blockPos : blocks) {
- q = blockPos;
- }
- render = q;
- }
- @Override
- public void onWorldRender(RenderEvent event) {
- List<BlockPos> blocks = findCrystalBlocks();
- GL11.glEnable(GL11.GL_CULL_FACE);
- if (render != null) {
- KamiTessellator.prepare(GL11.GL_QUADS);
- for (BlockPos hole : blocks) {
- KamiTessellator.drawBox(hole, Red.getValue(),Green.getValue(),Blue.getValue(),alpha.getValue(), GeometryMasks.Quad.ALL);
- KamiTessellator.drawLines(hole, Red.getValue(),Green.getValue(),Blue.getValue(),alpha.getValue(), GeometryMasks.Quad.ALL);
- }
- KamiTessellator.release();
- if (renderEnt != null) {
- Vec3d p = EntityUtil.getInterpolatedRenderPos(renderEnt, mc.getRenderPartialTicks());
- }
- }
- }
- private void lookAtPacket(double px, double py, double pz, EntityPlayer me) {
- double[] v = calculateLookAt(px, py, pz, me);
- setYawAndPitch((float) v[0], (float) v[1]);
- }
- private boolean IsHole(BlockPos blockPos) {
- BlockPos boost = blockPos.add(0, 1, 0);
- BlockPos boost2 = blockPos.add(0, 0, 0);
- BlockPos boost3 = blockPos.add(0, 0, -1);
- BlockPos boost4 = blockPos.add(1, 0, 0);
- BlockPos boost5 = blockPos.add(-1, 0, 0);
- BlockPos boost6 = blockPos.add(0, 0, 1);
- BlockPos boost7 = blockPos.add(0, 2, 0);
- BlockPos boost8 = blockPos.add(0.5, 0.5, 0.5);
- if ((mc.world.getBlockState(boost).getBlock() == Blocks.AIR
- && (mc.world.getBlockState(boost2).getBlock() == Blocks.AIR)
- && (mc.world.getBlockState(boost7).getBlock() == Blocks.AIR)
- && (mc.world.getBlockState(boost3).getBlock() != Blocks.AIR)
- && (mc.world.getBlockState(boost4).getBlock() != Blocks.AIR)
- && (mc.world.getBlockState(boost5).getBlock() != Blocks.AIR)
- && (mc.world.getBlockState(boost8).getBlock() == Blocks.AIR)
- && (mc.world.getBlockState(boost6).getBlock() != Blocks.AIR))) {
- return true;
- } else {
- return false;
- }
- }
- public static BlockPos getPlayerPos() {
- return new BlockPos(Math.floor(mc.player.posX), Math.floor(mc.player.posY), Math.floor(mc.player.posZ));
- }
- private List<BlockPos> findCrystalBlocks() {
- NonNullList<BlockPos> positions = NonNullList.create();
- positions.addAll(getSphere(getPlayerPos(), range.getValue().floatValue(), range.getValue().intValue(), false, true, 0).stream().filter(this::IsHole).collect(Collectors.toList()));
- return positions;
- }
- public List<BlockPos> getSphere(BlockPos loc, float r, int h, boolean hollow, boolean sphere, int plus_y) {
- List<BlockPos> circleblocks = new ArrayList<>();
- int cx = loc.getX();
- int cy = loc.getY();
- int cz = loc.getZ();
- for (int x = cx - (int) r; x <= cx + r; x++) {
- for (int z = cz - (int) r; z <= cz + r; z++) {
- for (int y = (sphere ? cy - (int) r : cy); y < (sphere ? cy + r : cy + h); y++) {
- double dist = (cx - x) * (cx - x) + (cz - z) * (cz - z) + (sphere ? (cy - y) * (cy - y) : 0);
- if (dist < r * r && !(hollow && dist < (r - 1) * (r - 1))) {
- BlockPos l = new BlockPos(x, y + plus_y, z);
- circleblocks.add(l);
- }
- }
- }
- }
- return circleblocks;
- }
- //Better Rotation Spoofing System:
- private static boolean isSpoofingAngles;
- private static double yaw;
- private static double pitch;
- //this modifies packets being sent so no extra ones are made. NCP used to flag with "too many packets"
- private static void setYawAndPitch(float yaw1, float pitch1) {
- yaw = yaw1;
- pitch = pitch1;
- isSpoofingAngles = true;
- }
- private static void resetRotation() {
- if (isSpoofingAngles) {
- yaw = mc.player.rotationYaw;
- pitch = mc.player.rotationPitch;
- isSpoofingAngles = false;
- }
- }
- @EventHandler
- private Listener<PacketEvent.Send> packetListener = new Listener<>(event -> {
- Packet packet = event.getPacket();
- if (packet instanceof CPacketPlayer) {
- if (isSpoofingAngles) {
- ((CPacketPlayer) packet).yaw = (float) yaw;
- ((CPacketPlayer) packet).pitch = (float) pitch;
- }
- }
- });
- @Override
- public void onDisable() {
- render = null;
- resetRotation();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement