🔧 Чиним «неверные данные игрока»: перки профессий больше не мешают входу

Пришло время закрыть историю, которую мы разбирали почти две недели: кик «неверные данные игрока» на входе. Парой строк техжурнала это не объяснишь, поэтому по-человечески.

Что происходило

Некоторые из вас после перезахода не могли попасть на сервер: клиент обиженно писал «Неверные данные игрока» и выкидывал обратно в меню. Сессия рвалась ещё до загрузки мира, и сколько ни пробуй - результат тот же.

Первым и главным героем этой истории стал Тень 228: он ловил этот кик с начала октября и каждый раз возвращался попробовать снова. Именно его упорные попытки дали нам цепочку зацепок, по которой мы и докопались до причины. Тень, спасибо за терпение - заходи, тебя ждут: спавн теперь откроется без фокусов.

В чём была причина

Коротко: конфликт бонусов профессий с данными персонажа.

Перки Шахтёра и Лесоруба ускоряют добычу, и этот бонус сервер выдавал при каждом входе. Но бонус ещё и сохраняется в файле персонажа - при выходе он остаётся с вами. Получалось, что при повторном заходе сервер пытался выдать бонус второй раз поверх уже висящего. Minecraft такое не прощает: конфликт, ошибка, кик.

Первым до этого уровня дошёл Тень - он первым взял перк после обновления профессий. Дальше очередь дошла бы до каждого шахтёра с перком: вторая попытка входа - и привет, меню.

Что мы сделали

  • Обновили RPG-модуль до 2.1.4: при входе сервер теперь сначала снимает старый бонус и только потом выдаёт новый. Конфликт невозможен в принципе
  • Данные персонажей лечатся сами: первый заход после обновления аккуратно пересоберёт бонус, инвентарь, позиция и уровни профессий никуда не денутся
  • Заодно починили журналирование сервера: раньше часть записей терялась при плановых рестартах, теперь история хранится полностью - если что-то подобное повторится с кем-то другим, найдём за минуты, а не за недели

Обновление уже на сервере с ночного технического перерыва. Если вас вдруг всё ещё пинает на входе - напишите в эту тему или в Telegram, имя и примерное время - больше ничего не нужно.

Добро пожаловать обратно :hammer: