Вопрос Помощь

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
22 Июн 2023
Сообщения
34
Реакции
0
1.4. Запрещено в названиях тем и тегах использовать ненормативную лексику, а также названия не объясняющими вкратце её сути: «Помогите», «Проблема» и им подобные.

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

Код:
Expand Collapse Copy
package ab.eclipse.autobuy;

import ab.eclipse.autobuy.manager.*;
import ab.eclipse.event.ReceiveMessageEvent;
import ab.eclipse.event.SendPacketEvent;
import ab.eclipse.event.TickEvent;
import com.google.common.eventbus.Subscribe;

import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.inventory.ChestScreen;
import net.minecraft.client.network.play.NetworkPlayerInfo;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.network.play.client.CClickWindowPacket;
import net.minecraft.util.Hand;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.StringTextComponent;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

import static ab.eclipse.EclipseFuntime.mc;


public class AutoBuy {
    public static long update;
    private long clickUptime;
    private boolean click;
    public static boolean send;

    public static boolean enabled = false;
    private boolean packet, packetSend;
    public long idkTime;

    private HistoryItem lastItem;
    public static String autoPayCom = "";
    public static int balance;
    private long lastMoneyCheck = 0;
    private static final List<String> ignoredPlayers = new ArrayList<>();

    public AutoBuy() {
        ignoredPlayers.add("funtik1371xAKA3");
        ignoredPlayers.add("ToplecCHlKA");
        ignoredPlayers.add("klemen");
        ignoredPlayers.add("That0neBear");
        ignoredPlayers.add("XiSh3n");
        ignoredPlayers.add("hikomori");
        ignoredPlayers.add("Bupsik");
        ignoredPlayers.add("ApTa_He_UmBa");
        ignoredPlayers.add("gromaforz");
        ignoredPlayers.add("Deth_Angel");
        ignoredPlayers.add("Derty_1001");
        ignoredPlayers.add("CAMAPA");
        ignoredPlayers.add("alanova");
        ignoredPlayers.add("YarikPR02205");
        ignoredPlayers.add("Artyfan4ik");
        ignoredPlayers.add("Cmeetane");
        ignoredPlayers.add("BanCheat");
        ignoredPlayers.add("m0untain");
        ignoredPlayers.add("HapyC0t");
        ignoredPlayers.add("HackerCat777");
        ignoredPlayers.add("hqd_d");
        ignoredPlayers.add("Fl1ckzzz");
        ignoredPlayers.add("SenpaiCrown");
        ignoredPlayers.add("AsyaMasya");
        ignoredPlayers.add("DumpCave");
        ignoredPlayers.add("HarukaKasugano");
        ignoredPlayers.add("KillMe_plz");
        ignoredPlayers.add("Pupsik_BB");
        ignoredPlayers.add("skyvolik");
        ignoredPlayers.add("nor1x");
        ignoredPlayers.add("Darkdeath");
        ignoredPlayers.add("ImSoLegit_");
        ignoredPlayers.add("Akaza3");
        ignoredPlayers.add("akasha1");
        ignoredPlayers.add("a11ways");
        ignoredPlayers.add("The_Destr0yer");
        ignoredPlayers.add("zxcichert");
        ignoredPlayers.add("Dellarba");
        ignoredPlayers.add("uliana_pim");
        ignoredPlayers.add("pr3k0l");
        ignoredPlayers.add("ProcessHacker");
        ignoredPlayers.add("egorhack9");
        ignoredPlayers.add("Makson1gg");
        ignoredPlayers.add("Jimenez");
        ignoredPlayers.add("pjk_k");
        ignoredPlayers.add("BanVHub");
        ignoredPlayers.add("123qwegg");
        ignoredPlayers.add("vem225");
        ignoredPlayers.add("tr1ple");
        ignoredPlayers.add("yokushka");
        ignoredPlayers.add("3uMa_MaN");
        ignoredPlayers.add("DarkFunny");
        ignoredPlayers.add("delphinch1kk");
        ignoredPlayers.add("Voobs");
        ignoredPlayers.add("HiliGHo09");
        ignoredPlayers.add("OneSummerDay");
        ignoredPlayers.add("Plushkina");
        ignoredPlayers.add("JakeTop4ek");
        ignoredPlayers.add("Jehai");
        ignoredPlayers.add("HowToFindReizoo");
        ignoredPlayers.add("Arves");
        ignoredPlayers.add("Podzemochka");
        ignoredPlayers.add("Vad1mkaPro228");
        ignoredPlayers.add("SelfScanning");
        ignoredPlayers.add("coco_cola4");
        ignoredPlayers.add("anhedonie");
        ignoredPlayers.add("shadowx");
        ignoredPlayers.add("oxonomy1x5");
        ignoredPlayers.add("Jugde");
        ignoredPlayers.add("Realganster");
        ignoredPlayers.add("stasyan_325");
        ignoredPlayers.add("WeryLatte1");
        ignoredPlayers.add("Arsenii4873");
        ignoredPlayers.add("Fanticx");
        ignoredPlayers.add("manipulatings");
        ignoredPlayers.add("MiLa707");
        ignoredPlayers.add("Krevetka_BAN");
        ignoredPlayers.add("IwishyourHeart");
        ignoredPlayers.add("Afno");
        ignoredPlayers.add("friendixgg1337");
        ignoredPlayers.add("0_am");
        ignoredPlayers.add("MNIIIka");
        ignoredPlayers.add("mass1no");
        ignoredPlayers.add("kellshek");
        ignoredPlayers.add("_Artyfan4ik_");
        ignoredPlayers.add("Asya_Masya");
    }

    @Subscribe
    private void onPacketEvent(SendPacketEvent event) {
        if (idkTime > System.currentTimeMillis() && event.packet instanceof CClickWindowPacket clickWindowPacket && clickWindowPacket.id != 1337) {
            event.cancel();
        }

        if (event.packet instanceof CClickWindowPacket clickSlotC2SPacket) {
            if (packet && lastItem != null) {
                lastItem.stack = clickSlotC2SPacket.getClickedItem();
                packet = false;
                packetSend = true;
            }
        }
    }

    @Subscribe
    private void onReceiveMessageEvent(ReceiveMessageEvent event) {
        if (lastItem != null && packetSend) {
            if (event.message.equals("Не так быстро!")) {
                lastItem = null;
                packetSend = false;
                return;
            }
            lastItem.purchased = !event.message.contains("Этот предмет нельзя купить, т.к он больше не продается.");
            HistoryManager.add(lastItem);
            lastItem = null;
            packetSend = false;
        }
    }

    //hms-damage
    //hms-armor
    //hms-speed
    //hms-health
    private void clickRefreshSlot() {
        if (System.currentTimeMillis() > idkTime && !packet) {
            click(47, 0);
            idkTime = System.currentTimeMillis() + 150;
        }
    }

    @Subscribe
    private void onTick(TickEvent event) {
        checkAllPlayerOnServer();

        if (mc.currentScreen == null || !enabled) return;
        Screen screen = mc.currentScreen;

        boolean ah = screen.getTitle().getString().contains("Аукцион");
        boolean accept = screen.getTitle().getString().contains("Покупка предмета");

        if (ah || accept) {
            if (mc.currentScreen instanceof ChestScreen chestScreen) {
                if (ah) {
                    if (mc.player.ticksExisted % 20 == 0) {
                        try {
                            String name = autoPayCom.split(" ")[0];
                            int s = Integer.parseInt(autoPayCom.split(" ")[1]);
                            if (balance - s > 0) {
                                mc.player.sendChatMessage("/pay " + name + " " + (balance - s));
                            }
                        } catch (Exception ignore) {
                        }
                    }
                    clickRefreshSlot();
                    checkMoney();

                    for (int i = 0; i < chestScreen.getContainer().getInventory().size(); i++) {
                        ItemStack stack = chestScreen.getContainer().getInventory().get(i);

                        String name = stack.getDisplayName().getString();

                        if (name.equals("❏ Товары на продаже ❏") || name.equals("❏ Просроченные товары ❏") || name.equals("Следующая страница ▶")
                                || name.contains("Помощь по аукциону") || name.equals("Помощь по системе аукциона:") || name.equals("сортировка")
                                || name.equals("Категории предметорв") || name.equals("◀ Предыдущая страница"))
                            continue;

                        List<ITextComponent> info = screen.getTooltipFromItem(stack).stream().filter(text -> text.getString().contains("▍")).toList();
                        List<ITextComponent> sumList = info.stream().filter(text -> text.getString().contains("¤")).collect(Collectors.toList());

                        String author = "";
                        try {
                            author = info.stream().filter(text -> text.getString().contains("Продавец")).toList().get(0).getString().split(":")[1];
                        } catch (Exception ignore) {
                        }

                        if (IgnoreManager.getIgnore().contains(author.replace(" ", ""))) continue;

                        int[] sum = calcSum(sumList);

                        if (sum != null) {
                            int price = sum[0];
                            if (price <= 0) return;
                            for (AutoBuyItem item : AutoBuyManager.getItems()) {
                                if (item instanceof CustomAutoBuyItem) {
                                    if (((CustomAutoBuyItem) item).tryBuy(stack, price) && System.currentTimeMillis() > idkTime) {
                                        click(i, 1337);
                                        if (lastItem == null) {
                                            lastItem = new HistoryItem(price, stack);
                                        }
                                        packet = true;
                                        idkTime = System.currentTimeMillis() + 1000;
                                    }
                                }
                                if (item instanceof DefaultAutoBuyItem) {
                                    if (((DefaultAutoBuyItem) item).tryBuy(stack, price) && System.currentTimeMillis() > idkTime) {
                                        click(i, 1337);
                                        if (lastItem == null) {
                                            lastItem = new HistoryItem(price, stack);
                                        }
                                        packet = true;
                                        idkTime = System.currentTimeMillis() + 1000;
                                    }
                                }
                            }
                        }
                    }
                }
                if (accept) {
                    if (click && System.currentTimeMillis() > clickUptime) {
                        click = false;
                    }
                    for (int i = 0; i < chestScreen.getContainer().getInventory().size(); i++) {
                        ItemStack stack = chestScreen.getContainer().getInventory().get(i);
                        String name = stack.getDisplayName().getString();
                        if (stack.getItem().equals(Items.LIME_STAINED_GLASS_PANE) && name.contains("▶ Купить") && !click) {
                            click(i, 0);
                            click = true;
                            clickUptime = System.currentTimeMillis() + 1000L;
                        }
                    }
                } else {
                    click = false;
                }
            }
        }
    }

    private void checkAllPlayerOnServer() {
        if (mc.getConnection() != null) {
            for (NetworkPlayerInfo playerInfo : mc.getConnection().getPlayerInfoMap()) {
                String playerName = playerInfo.getGameProfile().getName();
                if (ignoredPlayers.contains(playerName)) {
                    mc.player.sendChatMessage("/hub");
                    mc.ingameGUI.getChatGUI().printChatMessage(new StringTextComponent("§7Вы ливнули от " + playerName));

                    new Thread(() -> {
                        try {
                            Thread.sleep(10000);
                            mc.playerController.processRightClick(mc.player, mc.world, Hand.MAIN_HAND);

                            Thread.sleep(2000);
                            click(12, 0);

                            Thread.sleep(2000);
                            click(2, 0);

                            Thread.sleep(2000);
                            int[] slots = {18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31};
                            int randomIndex = (int)(Math.random() * slots.length);
                            click(slots[randomIndex], 0);

                            Thread.sleep(2000);
                            mc.player.sendChatMessage("/ah");
                        } catch (InterruptedException ignored) {}
                    }).start();

                    break;
                }
            }
        }
    }

    private void checkMoney() {
        if (System.currentTimeMillis() - lastMoneyCheck >= 40000) {
            mc.player.sendChatMessage("/money");
            lastMoneyCheck = System.currentTimeMillis();
        }
    }

    private void click(int slot, int id) {
        mc.playerController.windowClick(mc.player.openContainer.windowId, slot, 0, ClickType.PICKUP, mc.player, id);
    }

    private int[] calcSum(List<ITextComponent> s) {
        if (s == null || s.isEmpty()) return null;
        int i1 = -1;
        int i2 = -1;
        for (ITextComponent t : s) {
            String string = t.getString();
            StringBuilder stringBuilder = new StringBuilder();
            for (char c : string.toCharArray()) {
                try {
                    stringBuilder.append(Integer.parseInt(String.valueOf(c)));
                } catch (Exception ignore) {
                }
            }
            if (!stringBuilder.toString().isEmpty()) {
                if (i1 < 0) {
                    i1 = Integer.parseInt(stringBuilder.toString());
                } else {
                    i2 = Integer.parseInt(stringBuilder.toString());
                }
            }
        }
        if (i1 < 15000) return null;
        return new int[]{i1, i2};
    }
}

Здравствуйте, у меня вопрос как исправить баг который происходит по 2 причинам 1 причина: если кто уже купил предмет и он заменяется на другой и он покупает и 2 причина: он хочет купить, но случайно обновляет из-за большой скорости (знаю можно уменьшить но это не вариант)
 
проверку добавь кубоголовый
 
Назад
Сверху Снизу