Начинающий
Начинающий
- Статус
- Оффлайн
- Регистрация
- 29 Сен 2024
- Сообщения
- 44
- Реакции
- 0
Код портила неиронка с 1.16.5 на 1.21.4 (база зенита)
хз что не так я пастер ъъъ но не работает
package zenith.zov.client.modules.impl.misc;
import com.darkmagician6.eventapi.EventTarget;
import net.minecraft.block.AirBlock;
import net.minecraft.block.Blocks;
import net.minecraft.block.Block;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Box;
import net.minecraft.network.packet.s2c.play.BlockUpdateS2CPacket;
import net.minecraft.network.packet.s2c.play.ChunkDeltaUpdateS2CPacket;
import zenith.zov.base.events.impl.render.EventRender3D;
import zenith.zov.base.events.impl.server.EventPacket;
import zenith.zov.client.modules.api.Category;
import zenith.zov.client.modules.api.Module;
import zenith.zov.client.modules.api.ModuleAnnotation;
import zenith.zov.client.modules.impl.render.BlockESP;
import zenith.zov.utility.render.level.Render3DUtil;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@ModuleAnnotation(name = "AncientXray", category = Category.MISC, description = "Подсвечивает древние обломки")
public final class AncientXray extends Module {
public static AncientXray INSTANCE = new AncientXray();
private volatile List<BlockPos> blockPos = new ArrayList<>();
private final int radius = 32;
private final ExecutorService executor = Executors.newSingleThreadExecutor();
private volatile boolean isStarted = true;
private final int color = 0xC3A278; // Цвет подсветки
@override
public void onEnable() {
blockPos.clear();
isStarted = true;
super.onEnable();
}
@override
public void onDisable() {
isStarted = false;
blockPos.clear();
super.onDisable();
}
@EventTarget
public void render(EventRender3D event) {
if (mc.world == null || mc.player == null) return;
BlockPos playerPos = mc.player.getBlockPos();
// Очистка устаревших блоков
blockPos.removeIf(pos -> mc.world.getBlockState(pos).getBlock() != Blocks.ANCIENT_DEBRIS);
// Рендер блоков
for (BlockPos pos : blockPos) {
if (pos.isWithinDistance(playerPos, radius)) {
drawBox(pos);
}
}
}
@EventTarget
public void packer(EventPacket eventPacket) {
if (!eventPacket.isReceive()) return;
if (eventPacket.getPacket() instanceof ChunkDeltaUpdateS2CPacket chunkDelta) {
chunkDelta.visitUpdates((pos, state) -> {
if (state.getBlock() == Blocks.ANCIENT_DEBRIS) {
blockPos.add(pos);
}
});
} else if (eventPacket.getPacket() instanceof BlockUpdateS2CPacket blockUpdate) {
if (blockUpdate.getState().getBlock() == Blocks.ANCIENT_DEBRIS) {
blockPos.add(blockUpdate.getPos());
}
}
}
private void drawBox(BlockPos pos) {
Render3DUtil.drawBox(new Box(pos), color, 1);
}
// Полный скан куба ±32 блока вокруг игрока
private void scan() {
if (mc.world == null || mc.player == null) return;
ArrayList<BlockPos> blocks = new ArrayList<>();
BlockPos playerPos = mc.player.getBlockPos();
int startX = playerPos.getX() - radius;
int endX = playerPos.getX() + radius;
int startY = Math.max(mc.world.getBottomY(), playerPos.getY() - radius);
int endY = Math.min(mc.world.getTopYInclusive(), playerPos.getY() + radius);
int startZ = playerPos.getZ() - radius;
int endZ = playerPos.getZ() + radius;
for (int x = startX; x <= endX; x++) {
for (int y = startY; y <= endY; y++) {
for (int z = startZ; z <= endZ; z++) {
if (!isStarted) return;
BlockPos pos = new BlockPos(x, y, z);
Block block = mc.world.getBlockState(pos).getBlock();
if (!(block instanceof AirBlock) && block == Blocks.ANCIENT_DEBRIS) {
blocks.add(pos);
}
}
}
}
blockPos = blocks;
isStarted = true;
}
}
хз что не так я пастер ъъъ но не работает
package zenith.zov.client.modules.impl.misc;
import com.darkmagician6.eventapi.EventTarget;
import net.minecraft.block.AirBlock;
import net.minecraft.block.Blocks;
import net.minecraft.block.Block;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Box;
import net.minecraft.network.packet.s2c.play.BlockUpdateS2CPacket;
import net.minecraft.network.packet.s2c.play.ChunkDeltaUpdateS2CPacket;
import zenith.zov.base.events.impl.render.EventRender3D;
import zenith.zov.base.events.impl.server.EventPacket;
import zenith.zov.client.modules.api.Category;
import zenith.zov.client.modules.api.Module;
import zenith.zov.client.modules.api.ModuleAnnotation;
import zenith.zov.client.modules.impl.render.BlockESP;
import zenith.zov.utility.render.level.Render3DUtil;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@ModuleAnnotation(name = "AncientXray", category = Category.MISC, description = "Подсвечивает древние обломки")
public final class AncientXray extends Module {
public static AncientXray INSTANCE = new AncientXray();
private volatile List<BlockPos> blockPos = new ArrayList<>();
private final int radius = 32;
private final ExecutorService executor = Executors.newSingleThreadExecutor();
private volatile boolean isStarted = true;
private final int color = 0xC3A278; // Цвет подсветки
@override
public void onEnable() {
blockPos.clear();
isStarted = true;
super.onEnable();
}
@override
public void onDisable() {
isStarted = false;
blockPos.clear();
super.onDisable();
}
@EventTarget
public void render(EventRender3D event) {
if (mc.world == null || mc.player == null) return;
BlockPos playerPos = mc.player.getBlockPos();
// Очистка устаревших блоков
blockPos.removeIf(pos -> mc.world.getBlockState(pos).getBlock() != Blocks.ANCIENT_DEBRIS);
// Рендер блоков
for (BlockPos pos : blockPos) {
if (pos.isWithinDistance(playerPos, radius)) {
drawBox(pos);
}
}
}
@EventTarget
public void packer(EventPacket eventPacket) {
if (!eventPacket.isReceive()) return;
if (eventPacket.getPacket() instanceof ChunkDeltaUpdateS2CPacket chunkDelta) {
chunkDelta.visitUpdates((pos, state) -> {
if (state.getBlock() == Blocks.ANCIENT_DEBRIS) {
blockPos.add(pos);
}
});
} else if (eventPacket.getPacket() instanceof BlockUpdateS2CPacket blockUpdate) {
if (blockUpdate.getState().getBlock() == Blocks.ANCIENT_DEBRIS) {
blockPos.add(blockUpdate.getPos());
}
}
}
private void drawBox(BlockPos pos) {
Render3DUtil.drawBox(new Box(pos), color, 1);
}
// Полный скан куба ±32 блока вокруг игрока
private void scan() {
if (mc.world == null || mc.player == null) return;
ArrayList<BlockPos> blocks = new ArrayList<>();
BlockPos playerPos = mc.player.getBlockPos();
int startX = playerPos.getX() - radius;
int endX = playerPos.getX() + radius;
int startY = Math.max(mc.world.getBottomY(), playerPos.getY() - radius);
int endY = Math.min(mc.world.getTopYInclusive(), playerPos.getY() + radius);
int startZ = playerPos.getZ() - radius;
int endZ = playerPos.getZ() + radius;
for (int x = startX; x <= endX; x++) {
for (int y = startY; y <= endY; y++) {
for (int z = startZ; z <= endZ; z++) {
if (!isStarted) return;
BlockPos pos = new BlockPos(x, y, z);
Block block = mc.world.getBlockState(pos).getBlock();
if (!(block instanceof AirBlock) && block == Blocks.ANCIENT_DEBRIS) {
blocks.add(pos);
}
}
}
}
blockPos = blocks;
isStarted = true;
}
}
