Войти или зарегистрироваться

Помогите Скрывание использования команды игроком в консоли

  • Автор темы Автор темы Migel
  • Дата начала Дата начала

Migel

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
Migel077
Всем, привет я никак не могу сделать так что использование команды игроком, скрывалось в консоли.
Если есть что полезное скидывайте!
 
Код:
package Example;

import java.util.Collections;
import java.util.ArrayList;
import java.util.List;

class LogFilterHelper {

    static List<String> COMMANDS_TO_SKIP;

    private LogFilterHelper() {
    }

    static boolean isSensitiveCommand(String message) {
        if (message == null) {
            return false;
        }
        String lowerMessage = message.toLowerCase();
        return lowerMessage.contains("issued server command:")
                && containsAny(lowerMessage, LogFilterHelper.COMMANDS_TO_SKIP);
    }

    private static List<String> withAndWithoutPrefix(String... commands) {
        List<String> commandList = new ArrayList<String>(commands.length * 2);
        for (String command : commands) {
            commandList.add(command);
        }
        return Collections.unmodifiableList((List<? extends String>) commandList);
    }

    static {
        COMMANDS_TO_SKIP = withAndWithoutPrefix("/login ", "/l ", "/log ", "/register ", "/reg ", "/unregister ",
                "/unreg ", "/changepassword ", "/cp ", "/changepass ", "/authme register ", "/authme reg ",
                "/authme r ", "/authme changepassword ", "/authme password ", "/authme changepass ", "/authme cp ",
                "/email setpassword ");
    }

    public static boolean containsAny(String str, Iterable<String> pieces) {
        if (str == null) {
            return false;
        }
        for (String piece : pieces) {
            if (piece != null && str.contains(piece)) {
                return true;
            }
        }
        return false;
    }
}

Код:
package Example;

import org.apache.logging.log4j.Marker;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.Logger;
import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.core.Filter;
import org.apache.logging.log4j.message.Message;
import org.apache.logging.log4j.core.filter.AbstractFilter;

public class Log4JFilter extends AbstractFilter {

    public static void hook() {
        Logger coreLogger = (Logger)LogManager.getRootLogger();
        coreLogger.addFilter(new Log4JFilter());
    }

    private static Filter.Result validateMessage(Message message) {
        if (message == null) {
            return Filter.Result.NEUTRAL;
        }
        return validateMessage(message.getFormattedMessage());
    }

    private static Filter.Result validateMessage(String message) {
        return LogFilterHelper.isSensitiveCommand(message) ? Filter.Result.DENY : Filter.Result.NEUTRAL;
    }

    public Filter.Result filter(LogEvent event) {
        Message candidate = null;
        if (event != null) {
            candidate = event.getMessage();
        }
        return validateMessage(candidate);
    }

    public Filter.Result filter(Logger logger, Level level, Marker marker, Message msg, Throwable t) {
        return validateMessage(msg);
    }

    public Filter.Result filter(Logger logger, Level level, Marker marker, String msg, Object... params) {
        return validateMessage(msg);
    }

    public Filter.Result filter(Logger logger, Level level, Marker marker, Object msg, Throwable t) {
        String candidate = null;
        if (msg != null) {
            candidate = msg.toString();
        }
        return validateMessage(candidate);
    }
}
 
Назад
Верх