Wiki / Core Features / Уровни и XP / Импорт уровней из другого бота

Импорт уровней из другого бота

Обновлено Maxime_48 · 2 часа назад · Просмотры: 116

Языки: English Français Deutsch Español Português (Brasil) Italiano Nederlands Polski Türkçe Русский 日本語 한국어 中文

Смена бота уровней обычно означает, что сообществу приходится объявлять, что все снова на уровне 0. Но этого можно избежать. Откройте в панели Уровни → Импорт и перенесите XP ваших участников - напрямую из MEE6 или из JSON-экспорта любого другого бота уровней.

Ничего не записывается, пока вы не увидели предпросмотр и не подтвердили его.

Переходите именно с MEE6? Переход с MEE6 на YAWBDB описывает весь переезд, а не только экран импорта.

Вкладка «Импорт» страницы «Уровни» с выбором источника, полем ID сервера и отмеченной кнопкой «Предпросмотр»

  1. Выберите источник: MEE6 или файл JSON.
  2. Введите ID сервера Discord в MEE6.
  3. Предпросмотр показывает, что будет импортировано. Ничего не записывается, пока вы не подтвердите.

📥 Импорт из MEE6

Выберите MEE6, введите ID сервера Discord (ваш уже подставлен) и нажмите Предпросмотр.

Таблица лидеров MEE6 должна быть публичной. В панели MEE6 включите «Make my server's leaderboard public». Без этого MEE6 отказывается отдавать данные, и импорт останавливается с объяснением, а не с молчаливым половинчатым результатом.

Можно импортировать с другого сервера, не того, который вы настраиваете - просто вставьте ID того сервера. Полезно, если вы объединяете два сообщества.

Предпросмотр показывает, сколько участников найдено, у скольких из них здесь уже есть XP, и образец верхней части таблицы лидеров.


📄 Импорт из файла JSON

Публичный API Amari закрыт, а у большинства других ботов уровней его никогда не было - поэтому второй путь - файл. Выберите Файл JSON и загрузите экспорт.

Парсер намеренно снисходителен. Он принимает:

  • простой массив JSON с участниками,
  • объект с массивом players (сырой ответ MEE6 подходит как есть),
  • объект с массивом data (формат, который использовал Amari - XP в виде строки допустим),
  • и обычные псевдонимы полей: id / user_id / discord_id и xp / exp / experience.

Чтобы запись была пригодна, ей нужны всего две вещи: ID пользователя Discord и количество XP. Записи, в которых нет одного из них, пропускаются, а не ломают весь файл.

Если в файле есть и награды за роли (role_rewards или rewards), они тоже подхватываются.

Круговой путь встроен: ↓ Экспорт JSON в разделе Уровни → Таблица лидеров создаёт файл ровно такого формата, включая массив players. Экспортируйте с одного сервера, импортируйте в другой - или храните как резервную копию, которую можно сразу вернуть. См. Карточка ранга и публичная таблица лидеров.


📐 Кривая уровней - единственное решение, которое стоит прочитать

Два бота могут хранить одно и то же XP и всё равно показывать разные уровни, потому что уровень - это просто поиск по кривой, а у разных ботов кривые не одинаковы.

MEE6 берёт 5·l² + 50·l + 100 XP за выход с уровня l. Формула YAWBDB имеет ту же форму, но индексируется по уровню, который достигается. Практическое следствие: импорт XP из MEE6 на наш пресет по умолчанию опускает каждого участника ровно на один уровень. Их XP не затронут и корректен - он просто соответствует ступени ниже.

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

Затем вы выбираете:

  • Оставить вашу кривую - XP импортируется точно, уровни пересчитываются по вашей формуле. Участники видят, что число уменьшилось на единицу.
  • Использовать кривую источника - YAWBDB переключает формулу этого сервера на пользовательский пресет a = 5, b = 40, c = 55, который воспроизводит кривую MEE6 с точностью до XP. Все сохраняют тот уровень, который у них был.

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

Если ваш сервер уже использует кривую, идентичную кривой MEE6, вопрос вообще не задаётся.


⚙️ Участники, у которых здесь уже есть XP

Выберите, что происходит при совпадении:

Параметр Что делает
Оставить больший опыт Импортирует, только если в источнике больше. Самый безопасный вариант и вариант по умолчанию.
Заменить импортированным опытом Источник побеждает, даже если там меньше.
Не трогать их Импортируются только участники, у которых здесь вообще нет XP.

Участники, которые есть в импорте, но никогда здесь не писали, не подвержены убыванию XP, пока не станут по-настоящему активными - импорт не запускает отсчёт убывания.


🎖️ Награды за роли

Если источник предоставляет награды за роли, их можно импортировать одновременно. Каждая добавляется в ваш граф наград как пара «достигнут уровень → назначить роль».

Существующие пути проверяются заранее, поэтому повторный запуск импорта не накладывает дублирующие ветки на ваш холст. Если в вашем графе наград достигнут предел числа узлов, импорт заполняет, сколько может, и сообщает, сколько было добавлено из скольких найденных.


🔕 Чего импорт не делает

Импорт - это миграция данных, а не живое событие:

  • никакие сообщения о повышении уровня не отправляются, сколько бы уровней ни получил участник,
  • никакие награды не срабатывают задним числом - граф не проигрывается заново по импортированной истории,
  • импортированные награды за роли действуют начиная со следующего уровня, который достигнет участник.

Это сделано намеренно. Объявление тысяч повышений уровня сразу засорило бы сервер, а задним числом выдавать роли всей таблице лидеров - это редко то, что вам действительно нужно.


⏳ Пока идёт импорт

Большие таблицы лидеров импортируются в фоне. На странице показывается полоса прогресса, и её можно закрыть - импорт продолжается, а прогресс по-прежнему будет там, когда вы вернётесь.

Когда он завершается, вы получаете разбивку: участники добавлены, обновлены, пропущены и импортированные награды за роли.

На сервере одновременно может идти только один импорт.


👍 Рекомендуемый порядок

  1. Сначала настройте Leveling (скорость XP, задержка, канал повышения уровня).
  2. Запустите Предпросмотр и прочитайте сравнение кривых.
  3. Решите вопрос с кривой до импорта - если изменить её потом, уровень каждого участника сдвинется снова.
  4. Выполните импорт, затем проверьте Уровни → Таблица лидеров.
  5. Добавьте или скорректируйте награды в графе наград.