Начинающий
- Статус
- Оффлайн
- Регистрация
- 23 Авг 2025
- Сообщения
- 11
- Реакции
- 0
- Выберите загрузчик игры
- Прочие моды
Пожалуйста, авторизуйтесь для просмотра ссылки.
Код:
public class PhaseModule extends Module {
public PhaseModule() {
super("Phase", "", "", ModuleCategory.Movement);
}
private final List<IPacket<?>> bufferedPackets = new ArrayList<>();
private boolean semiPacketSent;
private boolean skipReleaseOnDisable;
@EventHandler
public void onPacket(PacketEvent.Send packetEvent) {
if (mc.player == null || mc.player.connection == null) return;
IPacket<?> packet = packetEvent.getPacket();
if (packet instanceof CPlayerPacket) {
bufferedPackets.add(packet);
packetEvent.setCancelled(true);
}
}
@EventHandler
public void onTick(TickEvent e) {
if (mc.player == null || mc.world == null) return;
boolean noSolidInAABB = mc.world.getStatesInArea(mc.player.getBoundingBox().shrink(0.01D))
.noneMatch(BlockState::isSolid);
long totalStates = mc.world.getStatesInArea(mc.player.getBoundingBox().shrink(0.01D)).count();
long solidStates = mc.world.getStatesInArea(mc.player.getBoundingBox().shrink(0.01D)).filter(BlockState::isSolid).count();
boolean semiInsideBlock = solidStates > 0 && solidStates < totalStates;
if (!semiPacketSent && semiInsideBlock) {
double x = mc.player.lastTickPosX;
double y = mc.player.lastTickPosY;
double z = mc.player.lastTickPosZ;
float yaw = mc.player.rotationYaw;
float pitch = mc.player.rotationPitch;
for (int i = 0; i < 7; i++) {
mc.player.connection.sendPacket(new CPlayerPacket.PositionRotationPacket(x - mc.player.getPosX(), y, z - mc.player.getPosZ(), yaw, pitch, true));
}
semiPacketSent = true;
return;
}
if (semiPacketSent && noSolidInAABB) {
skipReleaseOnDisable = true;
}
}
@Override
public void onDisable() {
mc.player.setPosition(mc.player.getPosX(), mc.player.getPosY(), mc.player.getPosZ());
if (!skipReleaseOnDisable && semiPacketSent) {
runReleaseSequence();
}
if (mc.player != null && mc.player.connection != null && !bufferedPackets.isEmpty()) {
for (IPacket<?> packet : bufferedPackets) {
mc.player.connection.sendPacketWOEvent(packet);
}
bufferedPackets.clear();
}
super.onDisable();
}
@Override
public void onEnable() {
bufferedPackets.clear();
semiPacketSent = false;
skipReleaseOnDisable = false;
super.onEnable();
}
private void runReleaseSequence() {
if (mc.player == null || mc.player.connection == null) return;
double x = mc.player.getPosX();
double y = mc.player.getPosY();
double z = mc.player.getPosZ();
float yaw = mc.player.rotationYaw;
float pitch = mc.player.rotationPitch;
mc.player.connection.sendPacket(new CPlayerPacket.PositionRotationPacket(x - 5000 - mc.player.lastTickPosX, y, z - 5000 - mc.player.lastTickPosZ, yaw, pitch, false));
mc.player.connection.sendPacket(new CPlayerPacket.PositionRotationPacket(x - mc.player.lastTickPosX, y, z - mc.player.lastTickPosZ, yaw, pitch, true));
}
}
VoxelShapeSpliterator - +-100 строка
Код:
if (Client.instance.moduleManager.phaseModule.isEnabled()) {
int playerBlockY = Minecraft.getInstance().player.getPosition().getY();
if (this.mutablePos.toImmutable().getY() >= playerBlockY || Minecraft.getInstance().gameSettings.keyBindSneak.isKeyDown()) {
continue;
}
}