Часть функционала AntiBan | zenith > exp 2.0/newcode

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
24 Окт 2025
Сообщения
24
Реакции
0
Выберите загрузчик игры
  1. Прочие моды
Привет yougameeee:da:
Перенес анти бан с этой темы на exp 2.0/newcode
Фулл бупас фантайм но на рв работает только шифрование
Пожалуйста, авторизуйтесь для просмотра ссылки.

code:
Expand Collapse Copy
package newcode.fun.module.impl.player;

import net.minecraft.network.play.client.CChatMessagePacket;
import newcode.fun.control.events.Event;
import newcode.fun.control.events.impl.packet.EventPacket;
import newcode.fun.module.TypeList;
import newcode.fun.module.api.Annotation;
import newcode.fun.module.api.Module;
import newcode.fun.module.settings.imp.ModeSetting;

import java.util.Random;

@Annotation(name = "AntiBan", type = TypeList.Player, desc = "Защита от бана за рекламу")
public class AntiBan extends Module {

    public ModeSetting mode = new ModeSetting("Режим", "Добавлять", "Добавлять", "Шифровать");

    private final Random random = new Random();
    private final String[] forbiddenWords = {
            "экспа", "экспенсив",
            "экспой", "нуриком",
            "целкой", "целка",
            "newcode", "ньюкод",
            "нурсултан", "целестиал",
            "нурик", "целка",
            "атернос", "aternos", "expa",
            "celka", "nurik",
            "expensive", "celestial",
            "nursultan", "фанпей",
            "funpay", "fluger",
            "акриен", "akrien",
            "фантайм", "funtime",
            "rich", "рич", "wild",
            "вилд", "excellent",
            "экселлент", "matix",
            "impact", "матикс",
            "импакт", "wurst",
            "monoton", "монотон",
            "катлаван", "catlavan",
            "dimasik", "димасик",
            "bro9i", "броя", "broya",
            "energy", "энерджи",
            "haruka", "haru", "харука"
    };

    private final char[] encryptionChars = {'#', '$', '%', '&', '*', '1', '2', '3', '4'};

    public AntiBan() {
        addSettings(mode);
    }

    @Override
    public boolean onEvent(Event event) {
        if (event instanceof EventPacket) {
            EventPacket packetEvent = (EventPacket) event;

            if (packetEvent.getPacket() instanceof CChatMessagePacket) {
                CChatMessagePacket chatPacket = (CChatMessagePacket) packetEvent.getPacket();
                String originalMessage = chatPacket.getMessage();

                String processedMessage = processMessage(originalMessage);

                if (!processedMessage.equals(originalMessage)) {
                    packetEvent.setCancel(true);
                    mc.player.connection.sendPacket(new CChatMessagePacket(processedMessage));
                    return true;
                }
            }
        }

        return false;
    }

    private String processMessage(String message) {
        String lowerMessage = message.toLowerCase();

        boolean containsForbiddenWord = false;
        for (String word : forbiddenWords) {
            if (lowerMessage.contains(word)) {
                containsForbiddenWord = true;
                break;
            }
        }

        if (!containsForbiddenWord) {
            return message;
        }

        if (mode.is("Добавлять")) {
            if (!lowerMessage.contains("не реклама")) {
                return message + " (Не реклама)";
            }
        } else if (mode.is("Шифровать")) {
            return encryptForbiddenWords(message);
        }

        return message;
    }

    private String encryptForbiddenWords(String message) {
        String result = message;

        for (String word : forbiddenWords) {
            String[] encryptedVariants = {
                    encryptWord(word, 0.3),
                    encryptWord(word, 0.5),
                    encryptWord(word, 0.7)
            };

            String encryptedVariant = encryptedVariants[random.nextInt(encryptedVariants.length)];

            result = replaceWordIgnoreCase(result, word, encryptedVariant);
        }

        return result;
    }

    private String encryptWord(String word, double replacementChance) {
        StringBuilder encrypted = new StringBuilder();

        for (int i = 0; i < word.length(); i++) {
            char c = word.charAt(i);

            if (random.nextDouble() < replacementChance && Character.isLetter(c)) {

                char replacement = encryptionChars[random.nextInt(encryptionChars.length)];
                encrypted.append(replacement);
            } else {
                encrypted.append(c);
            }
        }

        return encrypted.toString();
    }

    private String replaceWordIgnoreCase(String text, String target, String replacement) {
        String lowerText = text.toLowerCase();
        String lowerTarget = target.toLowerCase();

        StringBuilder result = new StringBuilder();
        int lastIndex = 0;
        int index = lowerText.indexOf(lowerTarget);

        while (index >= 0) {
            result.append(text.substring(lastIndex, index));

            if (Character.isLetter(text.charAt(index))) {
                char firstChar = text.charAt(index);
                if (Character.isUpperCase(firstChar) && replacement.length() > 0) {
                    String capitalizedReplacement = Character.toUpperCase(replacement.charAt(0)) +
                            replacement.substring(1);
                    result.append(capitalizedReplacement);
                } else {
                    result.append(replacement);
                }
            } else {
                result.append(replacement);
            }

            lastIndex = index + target.length();
            index = lowerText.indexOf(lowerTarget, lastIndex);
        }

        result.append(text.substring(lastIndex));

        return result.toString();
    }
}

Тока не бейте пж
 
Привет yougameeee:da:
Перенес анти бан с этой темы на exp 2.0/newcode
Фулл бупас фантайм но на рв работает только шифрование
Пожалуйста, авторизуйтесь для просмотра ссылки.

code:
Expand Collapse Copy
package newcode.fun.module.impl.player;

import net.minecraft.network.play.client.CChatMessagePacket;
import newcode.fun.control.events.Event;
import newcode.fun.control.events.impl.packet.EventPacket;
import newcode.fun.module.TypeList;
import newcode.fun.module.api.Annotation;
import newcode.fun.module.api.Module;
import newcode.fun.module.settings.imp.ModeSetting;

import java.util.Random;

@Annotation(name = "AntiBan", type = TypeList.Player, desc = "Защита от бана за рекламу")
public class AntiBan extends Module {

    public ModeSetting mode = new ModeSetting("Режим", "Добавлять", "Добавлять", "Шифровать");

    private final Random random = new Random();
    private final String[] forbiddenWords = {
            "экспа", "экспенсив",
            "экспой", "нуриком",
            "целкой", "целка",
            "newcode", "ньюкод",
            "нурсултан", "целестиал",
            "нурик", "целка",
            "атернос", "aternos", "expa",
            "celka", "nurik",
            "expensive", "celestial",
            "nursultan", "фанпей",
            "funpay", "fluger",
            "акриен", "akrien",
            "фантайм", "funtime",
            "rich", "рич", "wild",
            "вилд", "excellent",
            "экселлент", "matix",
            "impact", "матикс",
            "импакт", "wurst",
            "monoton", "монотон",
            "катлаван", "catlavan",
            "dimasik", "димасик",
            "bro9i", "броя", "broya",
            "energy", "энерджи",
            "haruka", "haru", "харука"
    };

    private final char[] encryptionChars = {'#', '$', '%', '&', '*', '1', '2', '3', '4'};

    public AntiBan() {
        addSettings(mode);
    }

    @Override
    public boolean onEvent(Event event) {
        if (event instanceof EventPacket) {
            EventPacket packetEvent = (EventPacket) event;

            if (packetEvent.getPacket() instanceof CChatMessagePacket) {
                CChatMessagePacket chatPacket = (CChatMessagePacket) packetEvent.getPacket();
                String originalMessage = chatPacket.getMessage();

                String processedMessage = processMessage(originalMessage);

                if (!processedMessage.equals(originalMessage)) {
                    packetEvent.setCancel(true);
                    mc.player.connection.sendPacket(new CChatMessagePacket(processedMessage));
                    return true;
                }
            }
        }

        return false;
    }

    private String processMessage(String message) {
        String lowerMessage = message.toLowerCase();

        boolean containsForbiddenWord = false;
        for (String word : forbiddenWords) {
            if (lowerMessage.contains(word)) {
                containsForbiddenWord = true;
                break;
            }
        }

        if (!containsForbiddenWord) {
            return message;
        }

        if (mode.is("Добавлять")) {
            if (!lowerMessage.contains("не реклама")) {
                return message + " (Не реклама)";
            }
        } else if (mode.is("Шифровать")) {
            return encryptForbiddenWords(message);
        }

        return message;
    }

    private String encryptForbiddenWords(String message) {
        String result = message;

        for (String word : forbiddenWords) {
            String[] encryptedVariants = {
                    encryptWord(word, 0.3),
                    encryptWord(word, 0.5),
                    encryptWord(word, 0.7)
            };

            String encryptedVariant = encryptedVariants[random.nextInt(encryptedVariants.length)];

            result = replaceWordIgnoreCase(result, word, encryptedVariant);
        }

        return result;
    }

    private String encryptWord(String word, double replacementChance) {
        StringBuilder encrypted = new StringBuilder();

        for (int i = 0; i < word.length(); i++) {
            char c = word.charAt(i);

            if (random.nextDouble() < replacementChance && Character.isLetter(c)) {

                char replacement = encryptionChars[random.nextInt(encryptionChars.length)];
                encrypted.append(replacement);
            } else {
                encrypted.append(c);
            }
        }

        return encrypted.toString();
    }

    private String replaceWordIgnoreCase(String text, String target, String replacement) {
        String lowerText = text.toLowerCase();
        String lowerTarget = target.toLowerCase();

        StringBuilder result = new StringBuilder();
        int lastIndex = 0;
        int index = lowerText.indexOf(lowerTarget);

        while (index >= 0) {
            result.append(text.substring(lastIndex, index));

            if (Character.isLetter(text.charAt(index))) {
                char firstChar = text.charAt(index);
                if (Character.isUpperCase(firstChar) && replacement.length() > 0) {
                    String capitalizedReplacement = Character.toUpperCase(replacement.charAt(0)) +
                            replacement.substring(1);
                    result.append(capitalizedReplacement);
                } else {
                    result.append(replacement);
                }
            } else {
                result.append(replacement);
            }

            lastIndex = index + target.length();
            index = lowerText.indexOf(lowerTarget, lastIndex);
        }

        result.append(text.substring(lastIndex));

        return result.toString();
    }
}
Люблю переносы моих тем +rep
 
/del бесполезно либо в newcode editon есть такая функция как
Assistant и там есть
public BooleanOption blockmsg = new BooleanOption("Блок запрет слова", true).setVisible(() -> mode.is("ReallyWorld")); в режиме рилливорлд.
 
/del бесполезно либо в newcode editon есть такая функция как
Assistant и там есть
public BooleanOption blockmsg = new BooleanOption("Блок запрет слова", true).setVisible(() -> mode.is("ReallyWorld")); в режиме рилливорлд.
Да, я в курсе но это легко перенести под 2.0 экспу так что не вижу проблем, также с помощью этого кода у нейронки можно попросить перенос под свою базу
гоу под зенит рекорд
отпиши в дс faccce3 завтра думаю сделаю
 
Назад
Сверху Снизу