Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Вопрос AncientXray 1.21.4 [РЕШЕНО]

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
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;
}
}
 
Если не ошибаюсь на фт зафиксили иксрей потому что деф Ancient Xray не воркает потому что фт перестал кидать пакеты на обновления чанков после взрыва таера :pepecry:
 
так у тя никнейм редстоун визуалс, ты шо читы пилишь?? я пишу визуал а вот друг чит и постояно залупу просит какуето
Если не ошибаюсь на фт зафиксили иксрей потому что деф Ancient Xray не воркает потому что фт перестал кидать пакеты на обновления чанков после взрыва таера :pepecry:
че реально все фт больше не хвх)
 
1766250129804.png
в дельте ворк
 
Кстати насчет этого я честно хз

Скорее всего он смотрит другие пакеты
ага значит шяс буду копатся
Кстати насчет этого я честно хз

Скорее всего он смотрит другие пакеты
я уже начел искать вам нужно ласт версия иксрея если найду
 
Последнее редактирование:
net.minecraft.network.packet.s2c.play.BlockUpdateS2CPacket написано в консоли - 557 раз
net.minecraft.network.packet.s2c.play.ExplosionS2CPacket написано в консоли - 1 раз
net.minecraft.network.packet.s2c.play.HealthUpdateS2CPacket - 2 раза
net.minecraft.network.packet.s2c.play.ParticleS2CPacket - 206
net.minecraft.network.packet.s2c.play.LightUpdateS2CPacket - 39
net.minecraft.network.packet.s2c.play.ChunkDeltaUpdateS2CPacket - 30
net.minecraft.network.packet.s2c.play.EntityTrackerUpdateS2CPacket - 87
net.minecraft.network.packet.s2c.play.EntityVelocityUpdateS2CPacket - 541 раз
net.minecraft.network.packet.s2c.common.CommonPingS2CPacket - 146
net.minecraft.network.packet.s2c.play.EntitiesDestroyS2CPacket - 231
net.minecraft.network.packet.s2c.play.EntityPositionSyncS2CPacket - 214
 
Назад
Сверху Снизу