Начинающий
- Статус
- Онлайн
- Регистрация
- 30 Май 2025
- Сообщения
- 55
- Реакции
- 0
- Выберите загрузчик игры
- Прочие моды
Валялся на рабочем столе, почему бы и не слить.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Java:
package mentalium.modules.impl.movement;
import com.google.common.eventbus.Subscribe;
import mentalium.events.EventPacket;
import mentalium.events.EventUpdate;
import mentalium.modules.api.Category;
import mentalium.modules.api.Module;
import mentalium.modules.api.ModuleRegister;
import mentalium.modules.settings.impl.SliderSetting;
import net.minecraft.block.BlockState;
import net.minecraft.network.IPacket;
import net.minecraft.network.play.client.CPlayerPacket;
import java.util.ArrayList;
import java.util.List;
@ModuleRegister(name = "NoClip", category = Category.Movement, desc = "NoClip Для ReallyWorld")
public class NoClip extends Module {
private final List<IPacket<?>> bufferedPackets = new ArrayList<>();
private final SliderSetting semiPackets = new SliderSetting("Пакеты ( Вроде для RW Нужно 6-10 )", 1f, 1f, 30f, 1f);
private boolean semiPacketSent;
private boolean skipReleaseOnDisable;
public NoClip() {
addSettings(semiPackets);
}
@Subscribe
private void onPacket(EventPacket eventPacket) {
if (mc.player == null || mc.player.connection == null) return;
IPacket<?> packet = eventPacket.getPacket();
if (packet instanceof CPlayerPacket) {
bufferedPackets.add(packet);
eventPacket.cancel();
}
}
@Subscribe
private void onUpdate(EventUpdate eventUpdate) {
if (mc.player == null || mc.world == null) return;
boolean noSolidInAABB = mc.world.getStatesInArea(mc.player.getBoundingBox().shrink(0.001D))
.noneMatch(BlockState::isSolid);
long totalStates = mc.world.getStatesInArea(mc.player.getBoundingBox().shrink(0.001D)).count();
long solidStates = mc.world.getStatesInArea(mc.player.getBoundingBox().shrink(0.001D)).filter(BlockState::isSolid).count();
boolean semiInsideBlock = solidStates > 0 && solidStates < totalStates;
if (!semiPacketSent && semiInsideBlock) {
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;
boolean onGround = mc.player.isOnGround();
for (int i = 0; i < semiPackets.get(); i++) {
mc.player.connection.sendPacket(new CPlayerPacket.PositionRotationPacket(x, y, z, yaw, pitch, onGround));
}
semiPacketSent = true;
return;
}
}
@Override
public boolean onDisable() {
super.onDisable();
if (!skipReleaseOnDisable && semiPacketSent) {
runReleaseSequence();
}
if (mc.player != null && mc.player.connection != null && !bufferedPackets.isEmpty()) {
for (IPacket<?> packet : bufferedPackets) {
mc.player.connection.sendPacket(packet);
}
bufferedPackets.clear();
}
return false;
}
@Override
public boolean onEnable() {
super.onEnable();
bufferedPackets.clear();
semiPacketSent = false;
skipReleaseOnDisable = false;
return false;
}
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, y, z - 5000, yaw, pitch, false));
mc.player.connection.sendPacket(new CPlayerPacket.PositionRotationPacket(x, y, z, yaw, pitch, mc.player.isOnGround()));
}
}