Защита От Нелегальных ГМов
Описание
И так, расскажу вам дорогие пользователи, как защитить свой сервер от самозванцев, так называемых нелегальных ГМов
1. Откроем EnterWorld.java, путь к нему можно увидеть ниже
gameserver\head-src\com\l2jfrozen\gameserver\network\clientpackets\EnterWorld.java
2. Открываем его и ищем следующие строки, и в этом нам поможет поиск CTRL+F
// Restores custom status activeChar.restoreCustomStatus();
- После того как вы нашли данные строки, после них вставляем наш код проверки
// Защита От Нелегальных Гмов if (Config.ENABLE_GM_LIST) { if((activeChar.isGM()) && !(Config.LIST_GM_NAME.contains(activeChar.getName()))) { activeChar.setAccessLevel(-100); Util.handleIllegalPlayerAction(activeChar,"Игрок" + activeChar.getName() + " получил БАН! ", IllegalPlayerAction.PUNISH_KICKBAN); } }
- В коде идет проверка всех входящих игроков с Access правами, то есть с правами ГеймМастера, проверка ссылается на конфиг LIST_GM_NAME, в котором будут вписаны ники всех ГМов
- При разборе кода, заметил, что на фрозенах есть некие проблемы с компиляцией и одна из них это:
IllegalPlayerAction
- При компиляции идет жалоба на данную часть кода, но нашел выход, заменяем в коде:
IllegalPlayerAction.PUNISH_KICKBAN
- На вот такое:
Config.DEFAULT_PUNISH
- И получаем вот такое код в целом:
// Защита От Нелегальных Гмов if (Config.ENABLE_GM_LIST) { if((activeChar.isGM()) && !(Config.LIST_GM_NAME.contains(activeChar.getName()))) { activeChar.setAccessLevel(-100); Util.handleIllegalPlayerAction(activeChar,"Игрок" + activeChar.getName() + " получил БАН! ", Config.DEFAULT_PUNISH); } }
- Но при таком раскладе теперь наша проверка ссылается на Config.DEFAULT_PUNISH
- Этот конфиг вшит уже во всех сборках, и действует он как наказание
- Его можно настроить в кофиги options.properties и выглядит он так:
# Как карать игрока за нелегальные дейтсвия? # 1 - Сообщить ГМу # 2 - Кикнуть из игры # 3 - Кикнуть и забанить # 4 - Посадить в тюрьму (0 на бесконечно, 300 на 5 минут) DefaultPunish = 2
- Советую вам выбрать 3 пункт, так как иначе при других вариантах самозванец продолжить свои злодеяния на вашем сервере
- И следуя совету мы ставим так:
DefaultPunish = 3
Здесь мы всё решили, переходим к 3 части!
3. Откроем Config.java, путь к нему можно увидеть ниже
gameserver\head-src\com\l2jfrozen\Config.java
- Итак мы открыли
Config.java
- Используем поиск CTRL+F и ищем следщую строчку
public static int MASTERACCESS_LEVEL;
- И после нее вставляем
// Защита от нелегальных гмов public static boolean ENABLE_GM_LIST; public static String GM_NAME; public static List LIST_GM_NAME = new FastList();
- Дальше используем еще раз поиск и ищем такую строчку
USERACCESS_LEVEL = Integer.parseInt(AccessSettings.getProperty("UserAccessLevel", "0"));
- И ставим после нее
// Защита от нелегальных гмов ENABLE_GM_LIST = Boolean.parseBoolean(AccessSettings.getProperty("EnableGMList", "False")); GM_NAME = AccessSettings.getProperty("ListGmName", "DoctorQ"); LIST_GM_NAME = new FastList(); for (String name : GM_NAME.split(",")) { LIST_GM_NAME.add(name); }
- В данный части, мы выносим настройки нашего кода, в конфиги сервера, чтобы в дальнейшем управлять всеми действиями Защиты от нелегальных ГМов
- После успешных действие переходим к 4 части!
4. Добавляем в конфиг сервера access.properties
# Включить/Выключить защиту от нелегальных гмов EnableGMList = False # Защита от нелегальных гмов # все гмы имеющие ники не внесеные в этот список будут забанены # внимание! указываем без пробелов и запятой в конце ListGmName = DoctorQ,Jumper
- Здесь думаю объяснять ничего не стоит, все написанно по русски и разобраться не сложно даже новичку
Вот и всё, тестим, делимся своими впечатлениями!
Также хочу сказать, если у вас ядро не поддерживает наш родной русский язык, то замените в коде все русские слова, используя переводчик, иначе будут проблемы при компиляции!
Рекомендуемые комментарии
Комментариев нет