Начинающий
-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Java:
package gg.client.modules.impl.movement;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.item.BlockItem;
import net.minecraft.item.ItemStack;
import net.minecraft.network.play.client.CPlayerTryUseItemOnBlockPacket;
import net.minecraft.util.Direction;
import net.minecraft.util.Hand;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.util.math.vector.Vector3d;
import gg.clien.events.TickupEvent;
import gg.client.events.impl.player.EventMotion;
import gg.client.modules.Function;
import gg.client.modules.FunctionAnnotation;
import gg.client.modules.Type;
import gg.client.util.math.RayTraceUtil;
import gg.client.util.misc.TimerUtil;
@FunctionAnnotation(name = "Scaffold", type = Type.Util)
public class Scaffold extends Function {
private final Minecraft mc = Minecraft.getInstance();
TimerUtil timerUtil = new TimerUtil();
@Override
public void onEvent(TickupEvent e) {
if (e instanceof EventMotion ee) {
handleEventMotion(ee);
}
}
public static boolean isBlockUnder(float under) {
if (Minecraft.getInstance().player.getPosY() < 0.0) {
return false;
} else {
AxisAlignedBB aab = Minecraft.getInstance().player.getBoundingBox().offset(0.0, -under, 0.0);
return Minecraft.getInstance().world.getCollisionShapes(Minecraft.getInstance().player, aab).toList().isEmpty();
}
}
private void handleEventMotion(EventMotion motion) {
if (isBlockUnder(0.001f) && mc.player.isOnGround()) {
if (this.block() != -1) {
motion.setPitch(80);
motion.setYaw(mc.player.getHorizontalFacing().getHorizontalAngle());
BlockRayTraceResult r = (BlockRayTraceResult) RayTraceUtil.rayTrace(2, motion.getYaw(), motion.getPitch(), mc.player);
mc.player.swingArm(Hand.MAIN_HAND);
mc.playerController.processRightClickBlock(mc.player, mc.world, Hand.MAIN_HAND, r);
}
} else if (mc.player.jumpTicks > 4) {
if (this.block() != -1) {
motion.setPitch(80);
motion.setYaw(mc.player.getHorizontalFacing().getHorizontalAngle());
BlockRayTraceResult r = (BlockRayTraceResult) RayTraceUtil.rayTrace(2, motion.getYaw(), motion.getPitch(), mc.player);
mc.player.swingArm(Hand.MAIN_HAND);
mc.playerController.processRightClickBlock(mc.player, mc.world, Hand.MAIN_HAND, r);
}
}
else if (mc.player.isSneaking()) {
if (this.block() != -1) {
motion.setPitch(80);
motion.setYaw(mc.player.getHorizontalFacing().getHorizontalAngle());
BlockRayTraceResult r = (BlockRayTraceResult) RayTraceUtil.rayTrace(2, motion.getYaw(), motion.getPitch(), mc.player);
mc.player.swingArm(Hand.MAIN_HAND);
mc.playerController.processRightClickBlock(mc.player, mc.world, Hand.MAIN_HAND, r);
}
}
}
public int block() {
PlayerInventory inventory = this.mc.player.inventory;
for (int i = 0; i < 9; i++) {
ItemStack stack = inventory.getStackInSlot(i);
if (stack.getItem() instanceof BlockItem) {
inventory.currentItem = i;
return i;
}
}
return -1;
}
}