Исходник AntiBot Matrix Expensive 2.0 (взят с Expensive 3.1)

Начинающий
Статус
Оффлайн
Регистрация
27 Май 2024
Сообщения
10
Реакции[?]
0
Поинты[?]
0

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

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

Спасибо!

AntiBot:
@Annotation(name = "AntiBot", type = Type.Combat)

public class AntiBot extends Function {

    private final Set<UUID> susPlayers = new ConcurrentSet<>();
    private static final Map<UUID, Boolean> botsMap = new HashMap<>();


    @Override
    public Item onEvent(Event event) {
        if (event instanceof EventUpdate) {
            for (UUID susPlayer : susPlayers) {
                PlayerEntity entity = mc.world.getPlayerByUuid(susPlayer);

                if (entity != null) {

                    Iterator<ItemStack> armor = entity.getArmorInventoryList().iterator();

                    int count = 0;

                    while (armor.hasNext()) {
                        ItemStack current = armor.next();

                        if (!current.isEmpty()) {
                            count++;
                        }
                    }

                    boolean isFullArmor = count == 4;

                    count = 0;

                    for (NetworkPlayerInfo networkPlayerInfo : mc.player.connection.getPlayerInfoMap()) {
                        GameProfile profile = networkPlayerInfo.getGameProfile();

                        if (entity.getGameProfile().getName().equals(profile.getName())) {
                            count++;
                        }
                    }

                    boolean isBot = isFullArmor || !entity.getUniqueID().equals(PlayerEntity.getOfflineUUID(entity.getGameProfile().getName()));


                    botsMap.put(susPlayer, isBot);
                }

                susPlayers.remove(susPlayer);
            }
        }

        if (event instanceof EventPacket e) {
            if (e.getPacket() instanceof SPlayerListItemPacket p) {
                if (p.getAction() == SPlayerListItemPacket.Action.ADD_PLAYER) {
                    for (SPlayerListItemPacket.AddPlayerData entry : p.getEntries()) {
                        GameProfile profile = entry.getProfile();

                        if (botsMap.containsKey(profile.getId()) || susPlayers.contains(profile.getId())) {
                            continue;
                        }

                        boolean isInvalid = profile.getProperties().isEmpty() && entry.getPing() != 0;

                        if (isInvalid) {
                            susPlayers.add(profile.getId());
                        }
                    }
                }
            }
        }

        return null;
    }


    public static boolean isBot(Entity entity) {
        return entity instanceof PlayerEntity && botsMap.getOrDefault(entity.getUniqueID(), false);
    }

    public static boolean isBotU(Entity entity) {
        if (!entity.getUniqueID().equals(PlayerEntity.getOfflineUUID(entity.getName().getString()))) {
            return entity.isInvisible();
        }
        return false;
    }

    @Override
    public void onDisable() {
        super.onDisable();
        botsMap.clear();
    }
}
 
Забаненный
Статус
Оффлайн
Регистрация
7 Июл 2024
Сообщения
6
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Зачем? нельзя просто с катлавана взять?
 
Сверху Снизу