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);
}
}
}
}
}
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++;
}
}
}
}
}
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;
}
}
}
Aggregations