demonat 0 Опубликовано 10 апреля, 2015 Всем доброго времени суток! Скачал с этого форума l2charmanager'а, занес, работает. Но есть серьезные(как по мне) баги в смене имени например. Если оставить поле ввода пустым и при нажатии на "сменить имя", сервер выкидывает игрока. [10 апр 13:47:41] AUDIT:[L2PcInstance] player [admin] sent invalid bypass 'npc_268475137_change_nickname', player admin, 2 Это пишется в audit.log. Как я понял, bypass не воспринимает пустое поле. Где и как исправить, чтобы оно не выкидывало. Я перепробовал много разных проверок, даже копировал с админки. Не уверен конечно, что копировал и изменял правильно, но всегда один итог, кик с серва. Скину обрывки кода, если кто то не видел этого нпц, может поможет.. вот ссылочка на форуме http://forummaxi.ru/topic/50113-l2charmanager/ Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
iNako 3 Опубликовано 10 апреля, 2015 а в чем проблема сделать проверку ? 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Izonami 31 Опубликовано 10 апреля, 2015 (изменено) ну добавь проверку на пустое значение, name == "" только толку толучше нормальную регульярку тут присвой private final String NickNamePattern = ".*"; // для разрешения спец. символовможешь выдрать из конфигов выглядит как то так ^[a-z0-9_-]{3,15}$ Изменено 10 апреля, 2015 пользователем Izonami 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
demonat 0 Опубликовано 10 апреля, 2015 ну добавь проверку на пустое значение, name == "" только толку то лучше нормальную регульярку тут присвой private final String NickNamePattern = ".*"; // для разрешения спец. символов Это все есть. Я не стал делать скрин того места, т.к. это не решает проблему точно а в чем проблема сделать проверку ? Проверки делал, на пустое значение имени, даже на пустой токен делал, все одно и то же.. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
demonat 0 Опубликовано 10 апреля, 2015 Я еще полазил немного в этом нпц, тут дело не в нем как оказалось. Дело скорее всего заключается в самой сборке и в программировании байпасов. Как я понял, стоит исключение на пустой байпас.. Кто нибудь знает где находятся все эти проверки, или могут находится? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
1ntegrate 46 Опубликовано 10 апреля, 2015 (изменено) Это все есть. Я не стал делать скрин того места, т.к. это не решает проблему точно Проверки делал, на пустое значение имени, даже на пустой токен делал, все одно и то же.. так если не ошибаюсь они не пустые а null тогда может попробовать так? ... public void onBypassFeedback(L2PcInstance player, String command) { if(command.length() < 2) { return; } ... } Изменено 10 апреля, 2015 пользователем 1ntegrate Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
demonat 0 Опубликовано 10 апреля, 2015 Совсем забыл что у строки начальное свойство null. Но к сожалению не помогло.. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
demonat 0 Опубликовано 10 апреля, 2015 (изменено) А можно ли как то ловить байпасы? Например здесь? Т.е делать проверку сразу в append? Изменено 10 апреля, 2015 пользователем demonat Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
1ntegrate 46 Опубликовано 10 апреля, 2015 а пробовали отключить это? config/General.properties BypassValidation = True 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
demonat 0 Опубликовано 10 апреля, 2015 Не уверен что такое есть в конфигах, но поищу. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
demonat 0 Опубликовано 10 апреля, 2015 Теперь не кикает, спасибо. Всем ++ Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты