Search in sources :

Example 1 with Pair

use of me.wallhacks.spark.util.objects.Pair in project Spark-Client by Spark-Client-Development.

the class PotionManager method updatePotions.

@SubscribeEvent
public void updatePotions(PacketReceiveEvent event) {
    if (event.getPacket() instanceof SPacketEntityMetadata) {
        SPacketEntityMetadata packet = event.getPacket();
        if (mc.world == null)
            return;
        if (mc.world.getEntityByID(packet.getEntityId()) instanceof EntityPlayer) {
            EntityPlayer player = (EntityPlayer) mc.world.getEntityByID(packet.getEntityId());
            for (EntityDataManager.DataEntry v : packet.getDataManagerEntries()) {
                if (v.getKey().equals(EntityLivingBase.POTION_EFFECTS)) {
                    Collection<PotionEffect> effects = potionEffectsForValue((int) v.getValue());
                    if (!trackMap.containsKey(player))
                        trackMap.put(player, new ArrayList<>());
                    ArrayList<Pair<PotionEffect, Long>> old = trackMap.get(player);
                    ArrayList<Pair<PotionEffect, Long>> newMap = new ArrayList<>();
                    loop: for (PotionEffect potionEffect : effects) {
                        for (Pair<PotionEffect, Long> p : old) {
                            if (p.getKey() == potionEffect) {
                                newMap.add(p);
                                old.remove(p);
                                continue loop;
                            }
                        }
                        newMap.add(new Pair<PotionEffect, Long>(potionEffect, System.currentTimeMillis()));
                    }
                    trackMap.put(player, newMap);
                }
            }
        }
    }
}
Also used : PotionEffect(net.minecraft.potion.PotionEffect) SPacketEntityMetadata(net.minecraft.network.play.server.SPacketEntityMetadata) EntityPlayer(net.minecraft.entity.player.EntityPlayer) EntityDataManager(net.minecraft.network.datasync.EntityDataManager) Pair(me.wallhacks.spark.util.objects.Pair) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent)

Example 2 with Pair

use of me.wallhacks.spark.util.objects.Pair in project Spark-Client by Spark-Client-Development.

the class ShulkerAura method onUpdate.

@SubscribeEvent
void onUpdate(PlayerUpdateEvent event) {
    if (targetPos == null) {
        disable();
        return;
    }
    boolean disable = true;
    for (EntityPlayer e : mc.world.playerEntities) {
        if (!e.isDead)
            if (new BlockPos(e.posX, e.posY + 2, e.posZ).equals(targetPos)) {
                disable = false;
                break;
            }
    }
    if (disable) {
        Spark.sendInfo("No more target in the trap");
        this.disable();
    }
    // trap player on sides...
    for (EnumFacing facing : EnumFacing.HORIZONTALS) {
        BlockPos pos = targetPos.down().add(facing.getDirectionVec());
        Block block = mc.world.getBlockState(pos).getBlock();
        if (block != Blocks.AIR)
            continue;
        BlockInteractUtil.BlockPlaceResult r = BlockInteractUtil.tryPlaceBlock(pos, new SpecBlockSwitchItem(Blocks.OBSIDIAN), false, true, 2);
        if (r != BlockInteractUtil.BlockPlaceResult.FAILED)
            return;
    }
    // trap the upperblock...
    if (mc.world.getBlockState(targetPos).getBlock() == Blocks.AIR) {
        BlockInteractUtil.BlockPlaceResult r = BlockInteractUtil.tryPlaceBlock(targetPos, new SpecBlockSwitchItem(Blocks.OBSIDIAN), false, true, 2);
        if (r == BlockInteractUtil.BlockPlaceResult.FAILED) {
            // failed lets add support
            for (EnumFacing facing : EnumFacing.HORIZONTALS) {
                if (targetFacing == facing || targetFacing == facing.getOpposite())
                    continue;
                BlockPos pos = targetPos.add(facing.getDirectionVec());
                Block block = mc.world.getBlockState(pos).getBlock();
                if (block != Blocks.AIR)
                    continue;
                BlockInteractUtil.BlockPlaceResult r2 = BlockInteractUtil.tryPlaceBlock(pos, new SpecBlockSwitchItem(Blocks.OBSIDIAN), false, true, 2);
                if (r2 != BlockInteractUtil.BlockPlaceResult.FAILED)
                    return;
            }
        } else
            return;
    }
    // check if the shulk is there
    if (mc.world.getBlockState(targetPos.offset(targetFacing).offset(targetFacing)).getBlock() instanceof BlockShulkerBox) {
        doShulkerAura();
    } else {
        flag = false;
        int slot = ItemSwitcher.FindStackInInventory(new ShulkerSwitchItem(), false);
        if ((slot != -1 && slot < 9) || !craft.getValue()) {
            BlockPos support = targetPos.add(targetFacing.getDirectionVec()).add(targetFacing.getDirectionVec()).add(targetFacing.getDirectionVec());
            if (mc.world.getBlockState(support).getBlock().isReplaceable(mc.world, support)) {
                if (BlockInteractUtil.tryPlaceBlock(support, new SpecBlockSwitchItem(Blocks.OBSIDIAN), false, true, 2) == BlockInteractUtil.BlockPlaceResult.FAILED) {
                    if (BlockInteractUtil.tryPlaceBlock(support.down(), new SpecBlockSwitchItem(Blocks.OBSIDIAN), false, true, 2) == BlockInteractUtil.BlockPlaceResult.FAILED) {
                        if (BlockInteractUtil.tryPlaceBlock(support.down().offset(targetFacing.getOpposite()), new SpecBlockSwitchItem(Blocks.OBSIDIAN), false, true, 2) == BlockInteractUtil.BlockPlaceResult.FAILED) {
                        // wtf i hope we never get here but nothing left to do but return ig
                        } else
                            return;
                    } else
                        return;
                } else
                    return;
            } else {
                BlockInteractUtil.tryPlaceBlockOnBlock(support.offset(targetFacing.getOpposite()), targetFacing.getOpposite(), new ShulkerSwitchItem(), false, true, 2, false);
            }
        } else if (craft.getValue() && mc.currentScreen == null && !flag) {
            boolean flag = false;
            BlockPos craftPos = null;
            int best = 0;
            for (BlockPos pos : WorldUtils.getSphere(PlayerUtil.getPlayerPosFloored(mc.player), 6, 6, 1)) {
                if (mc.world.getBlockState(pos).getBlock() == Blocks.CRAFTING_TABLE) {
                    Pair<Vec3d, EnumFacing> pair = BlockInteractUtil.getInteractPoint(pos);
                    if (pair != null) {
                        craftPos = pos;
                        flag = true;
                        break;
                    }
                }
                if (!BlockInteractUtil.canPlaceBlockAtPos(pos, true))
                    continue;
                if (BlockInteractUtil.getDirForPlacingBlockAtPos(pos) == null)
                    continue;
                int save = 0;
                for (EnumFacing enumFacing : EnumFacing.VALUES) {
                    if (HoleUtil.getBlockResistance(pos.offset(enumFacing)) == HoleUtil.BlockResistance.Resistant || HoleUtil.getBlockResistance(pos.offset(enumFacing)) == HoleUtil.BlockResistance.Unbreakable)
                        save++;
                }
                if (craftPos == null || save > best || (save == best && mc.player.getDistanceSq(pos) < mc.player.getDistanceSq(craftPos))) {
                    best = save;
                    craftPos = pos;
                }
            }
            if (flag || BlockInteractUtil.tryPlaceBlock(craftPos, new SpecBlockSwitchItem(Blocks.CRAFTING_TABLE), false, true, 2) == BlockInteractUtil.BlockPlaceResult.PLACED) {
                Vec3d pos = new Vec3d(craftPos).add(0.5, 0.5, 0.5);
                List<Vec3d> vecs = RaytraceUtil.getVisiblePointsForBox(new AxisAlignedBB(craftPos));
                if (!vecs.isEmpty())
                    pos = PlayerUtil.getClosestPoint(vecs);
                final RayTraceResult result = mc.world.rayTraceBlocks(PlayerUtil.getEyePos(), pos, false, true, false);
                EnumFacing facing = (result == null || !craftPos.equals(result.getBlockPos()) || result.sideHit == null) ? EnumFacing.UP : result.sideHit;
                if (flag && !Spark.rotationManager.rotate(Spark.rotationManager.getLegitRotations(pos), AntiCheatConfig.INSTANCE.getBlockRotStep(), 2, true, false))
                    return;
                EnumHand hand = EnumHand.OFF_HAND;
                if (mc.player.getHeldItemOffhand().getItem() instanceof ItemEndCrystal && !(mc.player.getHeldItemMainhand().getItem() instanceof ItemEndCrystal))
                    hand = EnumHand.MAIN_HAND;
                mc.player.connection.sendPacket(new CPacketPlayerTryUseItemOnBlock(craftPos, facing, hand, (float) pos.x, (float) pos.y, (float) pos.z));
                state = 0;
            }
        } else if (craft.getValue() && mc.currentScreen instanceof GuiCrafting) {
            int id = mc.player.openContainer.windowId;
            if (mc.player.openContainer.getSlot(0).getStack().getItem() instanceof ItemShulkerBox) {
                if (state == 4) {
                    mc.playerController.windowClick(id, 0, 0, ClickType.PICKUP, mc.player);
                    mc.playerController.windowClick(id, 36 + shulkerSlot.getValue(), 0, ClickType.PICKUP, mc.player);
                    mc.player.closeScreen();
                    state++;
                } else
                    state++;
            } else {
                if (state == 0) {
                    shell = -1;
                    chest = -1;
                    for (int i = 10; i < 46; i++) {
                        ItemStack stack = mc.player.openContainer.getSlot(i).getStack();
                        if (stack.getItem() == Items.SHULKER_SHELL)
                            shell = i;
                        if (stack.getItem() == Item.getItemFromBlock(Blocks.CHEST))
                            chest = i;
                        if (chest > 0 && shell > 0)
                            break;
                    }
                    if (shell == -1 || chest == -1) {
                        disable();
                    } else
                        state++;
                } else if (state == 1) {
                    if (shell == -1 || chest == -1) {
                        disable();
                    }
                    mc.playerController.windowClick(id, shell, 0, ClickType.PICKUP, mc.player);
                    mc.playerController.windowClick(id, 1, 1, ClickType.PICKUP, mc.player);
                    mc.playerController.windowClick(id, 7, 1, ClickType.PICKUP, mc.player);
                    mc.playerController.windowClick(id, shell, 0, ClickType.PICKUP, mc.player);
                    state++;
                } else if (state == 2) {
                    if (shell == -1 || chest == -1) {
                        disable();
                    }
                    mc.playerController.windowClick(id, chest, 0, ClickType.PICKUP, mc.player);
                    mc.playerController.windowClick(id, 4, 1, ClickType.PICKUP, mc.player);
                    mc.playerController.windowClick(id, chest, 0, ClickType.PICKUP, mc.player);
                    state++;
                }
            }
        }
    }
}
Also used : AxisAlignedBB(net.minecraft.util.math.AxisAlignedBB) GuiCrafting(net.minecraft.client.gui.inventory.GuiCrafting) EnumFacing(net.minecraft.util.EnumFacing) ItemShulkerBox(net.minecraft.item.ItemShulkerBox) RayTraceResult(net.minecraft.util.math.RayTraceResult) SpecBlockSwitchItem(me.wallhacks.spark.util.player.itemswitcher.itemswitchers.SpecBlockSwitchItem) ShulkerSwitchItem(me.wallhacks.spark.util.player.itemswitcher.itemswitchers.ShulkerSwitchItem) ItemEndCrystal(net.minecraft.item.ItemEndCrystal) Vec3d(net.minecraft.util.math.Vec3d) CPacketPlayerTryUseItemOnBlock(net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock) BlockShulkerBox(net.minecraft.block.BlockShulkerBox) BlockInteractUtil(me.wallhacks.spark.util.player.BlockInteractUtil) EnumHand(net.minecraft.util.EnumHand) EntityPlayer(net.minecraft.entity.player.EntityPlayer) CPacketPlayerTryUseItemOnBlock(net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock) Block(net.minecraft.block.Block) BlockPos(net.minecraft.util.math.BlockPos) List(java.util.List) ItemStack(net.minecraft.item.ItemStack) Pair(me.wallhacks.spark.util.objects.Pair) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent)

Example 3 with Pair

use of me.wallhacks.spark.util.objects.Pair in project Spark-Client by Spark-Client-Development.

the class PacketFly method doMoveUpdate.

private void doMoveUpdate() {
    if (mc.player.isSprinting() != serverSprinting)
        safeSendPacket(new CPacketEntityAction(mc.player, mc.player.isSprinting() ? CPacketEntityAction.Action.START_SPRINTING : CPacketEntityAction.Action.STOP_SPRINTING));
    if (mc.player.isSneaking() != serverSneaking)
        safeSendPacket(new CPacketEntityAction(mc.player, mc.player.isSneaking() ? CPacketEntityAction.Action.START_SNEAKING : CPacketEntityAction.Action.STOP_SNEAKING));
    Vec3d positionBefore = new Vec3d(mc.player.prevPosX, mc.player.prevPosY, mc.player.prevPosZ);
    Vec3d positionAfter = new Vec3d(mc.player.posX, mc.player.posY, mc.player.posZ);
    // If we are about to be timed out by AEF force the antikick so we can stay floating without getting kicked
    // FIXME: Are we about to be kicked? This just tells us if we have been limited
    // fixed already by wallhacks_
    // (fixed not skidded)
    boolean forceAntiKick = !AntiCheatConfig.getInstance().wasPacketFlyLimited() && AntiCheatConfig.INSTANCE.isPacketFlyLimited();
    if ((antiKickTick > antiKickTicks.getValue() || forceAntiKick) && !expectedConfirm) {
        antiKickTick = 0.0f;
        if (!mc.player.capabilities.allowFlying && (!mc.player.isPotionActive(MobEffects.LEVITATION)) && !isInBlocks(mc.player.boundingBox.grow(0.0625).expand(0.0, -0.55, 0.0))) {
            if (antiKick.getValue()) {
                if (positionAfter.subtract(positionBefore).y >= -0.03125)
                    mc.player.setPosition(mc.player.posX, mc.player.prevPosY - 0.0313, mc.player.posZ);
            }
        }
    }
    positionAfter = mc.player.getPositionVector();
    Vec3d spoof = new Vec3d(0, 0, 0);
    switch(type.getValue()) {
        case "Up":
            spoof = new Vec3d(mc.player.posX, mc.player.posY + 20000, mc.player.posZ);
            break;
        case "Down":
            spoof = new Vec3d(mc.player.posX, mc.player.posY - 20000, mc.player.posZ);
            break;
        case "Random":
            spoof = new Vec3d(mc.player.posX + rand(), mc.player.posY, mc.player.posZ + rand());
            break;
    }
    if (positionBefore.equals(positionAfter)) {
        // have moved down we won't be kicked (until we start sending packets again)
        if (expectKick)
            antiKickTick += tickAdjust(skippedTicks);
        // server dropped our packet
        if (expectedConfirm)
            safeSendPacket(new CPacketPlayer.Position(spoof.x, spoof.y, spoof.z, false));
        // If we haven't moved just return since everything after this is spoofing
        return;
    }
    antiKickTick += tickAdjust(skippedTicks);
    expectKick = positionAfter.subtract(positionBefore).y >= -0.03125;
    // TODO: Rotation + on ground spoofing
    safeSendPacket(new CPacketPlayer.Position(positionAfter.x, positionAfter.y, positionAfter.z, false));
    safeSendPacket(new CPacketPlayer.Position(spoof.x, spoof.y, spoof.z, false));
    switch(mode.getValue()) {
        case "SetBack":
            {
                synchronized (this) {
                    if (!expectedConfirm || overSend.getValue()) {
                        // safeSendPacket(new WCPacketConfirmTeleport(spleefNet.positionHandler.getLastGoodTeleportID()));
                        waitingSince = System.currentTimeMillis();
                        expectedConfirm = true;
                    }
                }
                break;
            }
        case "Fast":
        case "Jitter":
            {
                int teleportID = Spark.positionManager.teleportId + 1;
                safeSendPacket(new CPacketConfirmTeleport(teleportID));
                synchronized (this) {
                    expectedPositions.put(teleportID, new Pair<>(System.currentTimeMillis(), positionAfter));
                }
                break;
            }
    }
}
Also used : CPacketConfirmTeleport(net.minecraft.network.play.client.CPacketConfirmTeleport) CPacketEntityAction(net.minecraft.network.play.client.CPacketEntityAction) CPacketPlayer(net.minecraft.network.play.client.CPacketPlayer) Vec3d(net.minecraft.util.math.Vec3d) Pair(me.wallhacks.spark.util.objects.Pair)

Aggregations

Pair (me.wallhacks.spark.util.objects.Pair)3 EntityPlayer (net.minecraft.entity.player.EntityPlayer)2 Vec3d (net.minecraft.util.math.Vec3d)2 SubscribeEvent (net.minecraftforge.fml.common.eventhandler.SubscribeEvent)2 List (java.util.List)1 BlockInteractUtil (me.wallhacks.spark.util.player.BlockInteractUtil)1 ShulkerSwitchItem (me.wallhacks.spark.util.player.itemswitcher.itemswitchers.ShulkerSwitchItem)1 SpecBlockSwitchItem (me.wallhacks.spark.util.player.itemswitcher.itemswitchers.SpecBlockSwitchItem)1 Block (net.minecraft.block.Block)1 BlockShulkerBox (net.minecraft.block.BlockShulkerBox)1 GuiCrafting (net.minecraft.client.gui.inventory.GuiCrafting)1 ItemEndCrystal (net.minecraft.item.ItemEndCrystal)1 ItemShulkerBox (net.minecraft.item.ItemShulkerBox)1 ItemStack (net.minecraft.item.ItemStack)1 EntityDataManager (net.minecraft.network.datasync.EntityDataManager)1 CPacketConfirmTeleport (net.minecraft.network.play.client.CPacketConfirmTeleport)1 CPacketEntityAction (net.minecraft.network.play.client.CPacketEntityAction)1 CPacketPlayer (net.minecraft.network.play.client.CPacketPlayer)1 CPacketPlayerTryUseItemOnBlock (net.minecraft.network.play.client.CPacketPlayerTryUseItemOnBlock)1 SPacketEntityMetadata (net.minecraft.network.play.server.SPacketEntityMetadata)1