Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
У меня есть код иксрея на базе експы врубаю его и ничего не происходит
Java:
package im.Nexgen.functions.impl.misc;
import com.google.common.eventbus.Subscribe;
import im.Nexgen.events.EventPacket;
import im.Nexgen.events.TickEvent;
import im.Nexgen.functions.api.Category;
import im.Nexgen.functions.api.Function;
import im.Nexgen.functions.api.FunctionRegister;
import net.minecraft.block.Blocks;
import net.minecraft.client.Minecraft;
import net.minecraft.network.IPacket;
import net.minecraft.network.play.server.SExplosionPacket;
import net.minecraft.util.RegistryKey;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
@FunctionRegister(name = "AncientFinder", type = Category.Misc)
public class AncientXray extends Function {
private static final Minecraft mc = Minecraft.getInstance();
private final List<BlockPos> ancientDebrisPositions = new ArrayList<>();
private boolean searchScheduled = false;
// Обробка пакетів вибуху
@Subscribe
public void onPacket(EventPacket event) {
IPacket<?> packet = event.getPacket();
if (packet instanceof SExplosionPacket) {
SExplosionPacket explosionPacket = (SExplosionPacket) packet;
if (isPlayerInNether()) {
BlockPos explosionPos = new BlockPos(explosionPacket.getX(), explosionPacket.getY(), explosionPacket.getZ());
scheduleDebrisSearch(explosionPos);
}
}
}
// Перевірка, чи гравець у Нижньому світі
private boolean isPlayerInNether() {
if (mc.player != null) {
RegistryKey<World> dimension = mc.player.world.getDimensionKey();
return dimension == World.THE_NETHER;
}
return false;
}
// Планування пошуку стародавнього сміття
private void scheduleDebrisSearch(BlockPos pos) {
if (!searchScheduled) {
searchScheduled = true;
Timer timer = new Timer();
timer.schedule(new AncientFinder1(this, pos), 5000L); // Виклик через 5 секунд
}
}
// Пошук стародавнього сміття в області 11x11x11
private void searchDebrisAround(BlockPos center) {
ancientDebrisPositions.clear();
if (mc.world == null) return; // Перевірка на null
int radius = 11;
for (int x = -radius; x <= radius; x++) {
for (int y = -radius; y <= radius; y++) {
for (int z = -radius; z <= radius; z++) {
BlockPos pos = center.add(x, y, z);
if (mc.world.getBlockState(pos).getBlock() == Blocks.ANCIENT_DEBRIS) {
ancientDebrisPositions.add(pos);
}
}
}
}
clickAndCheckDebris();
}
// Створення GPS-точок для знайденого сміття
private void clickAndCheckDebris() {
Iterator<BlockPos> iterator = ancientDebrisPositions.iterator();
while (iterator.hasNext()) {
BlockPos pos = iterator.next();
Timer timer = new Timer();
timer.schedule(new AncientFinder2(this, pos), 1000L); // Виклик через 1 секунду
}
}
// Відправка команди GPS у чат
private void sendDebrisWaypoint(BlockPos pos) {
int index = ancientDebrisPositions.indexOf(pos) + 1;
mc.player.sendChatMessage(".gps add Ancient" + index + " " + pos.getX() + " " + pos.getY() + " " + pos.getZ());
}
// Обробка тіків (порожня)
@Subscribe
public void onTick(TickEvent event) {
// Нічого не робить
}
// Внутрішній клас для пошуку сміття
private static class AncientFinder1 extends TimerTask {
private final AncientXray finder;
private final BlockPos pos;
AncientFinder1(AncientXray finder, BlockPos pos) {
this.finder = finder;
this.pos = pos;
}
@Override
public void run() {
Minecraft.getInstance().execute(() -> {
finder.searchDebrisAround(pos);
finder.searchScheduled = false; // Скидання прапорця після пошуку
});
}
}
// Внутрішній клас для створення GPS-точок
private static class AncientFinder2 extends TimerTask {
private final AncientXray finder;
private final BlockPos pos;
AncientFinder2(AncientXray finder, BlockPos pos) {
this.finder = finder;
this.pos = pos;
}
@Override
public void run() {
Minecraft.getInstance().execute(() -> {
finder.sendDebrisWaypoint(pos);
});
}
}
}