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

Плагин LimboAPI + LimboAuth + SocialAddon + LimboFilter. Виртуальные сервера 1.7.2-1.19.3 для Velocity!

Правильный и актуальный перевод LimboAuth:

YAML:
  strings: # Перевод от Bars (rubukkit.org)
    reload: "{PRFX} &aУспешно перезагружено!"
    reload-failed: "{PRFX} &cПерезагрузка не удалась, Посмотрите консоль, чтобы узнать детали."
    error-occurred: "{PRFX} &cПроизошла внутренняя ошибка!"
    database-error-kick: "{PRFX} &cПроизошла ошибка базы данных!"
    not-player: "{PRFX} &cКонсоли не разрешено выполнять эту команду!"
    not-registered: "{PRFX} &cВы не зарегистрированы или ваш аккаунт &6лицензионный!"
    cracked-command: "{PRFX}{NL}&aВы не можете использовать эту команду, так как ваша учетная запись &6лицензионная&a!"
    wrong-password: "{PRFX} &cНеверный пароль!"
    nickname-invalid-kick: "{PRFX}{NL}&cВаш никнейм содержит запрещенные символы. Пожалуйста, измените свой никнейм или сообщите администратору."
    reconnect-kick: "{PRFX}{NL}&6Перезайдите на сервер для подтверждения."
    # 6 часов по умолчанию в ip-limit-valid-time
    ip-limit: "{PRFX} &cВаш IP достиг максимального количества зарегистрированных учетных записей. Если это ошибка, перезагрузите маршрутизатор или подождите около 6 часов."
    ip-limit-kick: "{PRFX} &cВаш IP достиг максимального количества зарегистрированных учетных записей. Если это ошибка, перезагрузите маршрутизатор или подождите около 6 часов."
    wrong-nickname-case-kick: "{PRFX}{NL}&cНеправильный регистр вашего ника. Никнейм чувствителен к регистру."
    bossbar: "{PRFX} У вас осталось &6{0} &fсекунд для входа в систему."
    times-up: "{PRFX}{NL}&cВремя авторизации истекло."
    login-premium: "{PRFX} Вы вошли в систему автоматически, используя премиум-аккаунт!" # Может быть пустым.
    login-premium-title: "{PRFX} Добро пожаловать!" # Может быть пустым.
    login-premium-subtitle: "&aВы вошли в систему как премиум-игрок!" # Может быть пустым.
    login-floodgate: "{PRFX} Вы вошли в систему автоматически, используя учетную запись Bedrock!" # Может быть пустым.
    login-floodgate-title: "{PRFX} Добро пожаловать!" # Может быть пустым.
    login-floodgate-subtitle: "&aВы вошли в систему как игрок Bedrock!" # Может быть пустым.
    login: "{PRFX} &aПожалуйста, войдите в систему, введя в чате команду &e/l &7&oпароль&r&a, у вас &6{0} &a попыток."
    login-wrong-password: "{PRFX} &cВы ввели неправильный пароль, у вас осталось &6{0} &попыток."
    login-wrong-password-kick: "{PRFX}{NL}&cВы ввели неправильный пароль много раз!"
    login-successful: "{PRFX} &aВы успешно вошли в систему!"
    login-title: "&6Введите пароль: &e/l &7&oпароль" # Может быть пустым.
    login-subtitle: "&aУ вас &6{0} &aпопыток." # Может быть пустым.
    login-successful-title: "{PRFX}" # Может быть пустым.
    login-successful-subtitle: "&aВы успешно вошли в систему!" # Может быть пустым.
    # Или если register-need-repeat-password настроен как false, удалите часть "пароль_еще_раз".
    register: "{PRFX} &cПожалуйста, зарегистрируйтесь, введя в чате команду &e/reg &7&oпароль пароль_еще_раз"
    register-different-passwords: "{PRFX} &cВведенные пароли отличаются друг от друга!"
    register-password-too-short: "{PRFX} &cВы ввели слишком короткий пароль, используйте другой!"
    register-password-too-long: "{PRFX} &cВы ввели слишком длинный пароль, используйте другой!"
    register-password-unsafe: "{PRFX} &cВаш пароль ненадежен, используйте другой!"
    register-successful: "{PRFX} &aВы успешно зарегистрированы!"
    register-title: "Зарегистрируйтесь" # Может быть пустым.
    register-subtitle: "&6Введя в чате команду &e/reg &7&oпароль" # Может быть пустым.
    register-successful-title: "{PRFX}" # Может быть пустым.
    register-successful-subtitle: "&aВы успешно зарегистрированы!" # Может быть пустым.
    unregister-successful: "{PRFX}{NL}&aВы успешно разрегистрированы!"
    unregister-usage: "{PRFX} Формат: &6/unregister &7&oтекущий_пароль&r &6confirm"
    premium-successful: "{PRFX}{NL}&aУспешно изменен статус учетной записи на &6лицензионную&a!"
    already-premium: "{PRFX} &cВаш аккаунт уже &6лицензионный&c!"
    not-premium: "{PRFX} &cВаша учетная запись не является &6лицензионной&c!"
    premium-usage: "{PRFX} Формат: &6/premium &7&oваш_пароль&r &6confirm"
    event-cancelled: "{PRFX} Событие авторизации было отменено"
    force-unregister-successful: "{PRFX} &6{0} &aуспешно разрегистрирован!"
    force-unregister-kick: "{PRFX}{NL}&aВы были разрегистрированы администратором!"
    force-unregister-not-successful: "{PRFX} &cОшибка разрегистрирования &6{0}&c. Скорее всего, такой игрок никогда не был на этом сервере."
    force-unregister-usage: "{PRFX} Формат: &6/forceunregister &7&oникнейм_игрока"
    registrations-disabled-kick: "{PRFX} Регистрация временно отключена."
    change-password-successful: "{PRFX} &aПароль успешно изменен!"
    # Или если change-password-need-old-pass настроен как false, удалите часть "старый_пароль".
    change-password-usage: "{PRFX} Формат: &6/changepassword &7&oстарый_пароль новый_пароль"
    force-change-password-successful: "{PRFX} &aПароль &6{0}&a успешно изменен!"
    force-change-password-message: "{PRFX} &aВаш пароль изменен администратором на &6{0}&a!"
    force-change-password-not-successful: "{PRFX} &cНевозможно изменить пароль для &6{0}&c. Скорее всего, такой игрок никогда не был на этом сервере."
    force-change-password-not-registered: "{PRFX} &cPlayer &6{0}&c is not registered."
    force-change-password-usage: "{PRFX} Формат: &6/forcechangepassword &7&oник_игрока новый_пароль"
    force-register-usage: "{PRFX} Формат: &6/forceregister &7&oник_игрока пароль"
    force-register-incorrect-nickname: "{PRFX}{NL}&cНикнейм содержит запрещенные символы."
    force-register-taken-nickname: "{PRFX} &cЭтот никнейм уже занят."
    force-register-successful: "{PRFX} &aУспешно создан аккаунт для игрока &6{0}&a!"
    force-register-not-successful: "{PRFX} &cНе удалось создать аккаунт для игрока &6{0}&c."
    totp: "{PRFX} Пожалуйста, введите ключ 2FA с помощью команды &6/2fa &7&oключ"
    totp-title: "{PRFX}" # Может быть пустым.
    totp-subtitle: "&aEnter your 2FA key using &6/2fa <key>" # Может быть пустым.
    totp-successful: "{PRFX} &aУспешно включена 2FA!"
    totp-disabled: "{PRFX} &aУспешно отключена 2FA!"
    # Или если totp-need-pass настроен как false, удалите часть "текущий_пароль".
    totp-usage: "{PRFX} Формат: &6/2fa enable &7&oтекущий_пароль&r или &6/2fa disable &7&oключ&r."
    totp-wrong: "{PRFX} &cНеправильный ключ 2FA!"
    totp-already-enabled: "{PRFX} &c2FA уже включен. Вы можете отключить его с помощью &6/2fa disable &7&oключ&r&c."
    totp-qr: "{PRFX} Нажмите здесь, чтобы открыть QR-код 2FA в браузере."
    totp-token: "{PRFX} &aВаш токен двухфакторной аутентификации &7(Нажмите, чтобы скопировать)&a: &6{0}"
    totp-recovery: "{PRFX} &aВаши коды восстановления &7(Нажмите, чтобы скопировать)&a: &6{0}"
    destroy-session-successful: "{PRFX} &eВаша сессия теперь сброшена и вам нужно снова войти в систему после повторного подключения."
    mod-session-expired: "{PRFX} Ваша сессия истекла, войдите в систему заново."



[Автору] Улучшение безопасности в плагине:

YAML:
force-change-password-message: "{PRFX} &aВаш пароль изменен администратором на &6{0}&a!"
Пароль нельзя палить на экране. Будет очень прискорбно, если игрок стримит или записывает видео, а в это время админ меняет ему пароль и он показывается на экране. Игрока тогда смогут взломать. Нужно спрятать его за звездочками, а при наведении на них будет всплывающая подсказка с открытым паролем
Такое одобряем)
 
Правильный и актуальный перевод LimboAuth:

YAML:
  strings: # Перевод от Bars (rubukkit.org)
    reload: "{PRFX} &aУспешно перезагружено!"
    reload-failed: "{PRFX} &cПерезагрузка не удалась, Посмотрите консоль, чтобы узнать детали."
    error-occurred: "{PRFX} &cПроизошла внутренняя ошибка!"
    database-error-kick: "{PRFX} &cПроизошла ошибка базы данных!"
    not-player: "{PRFX} &cКонсоли не разрешено выполнять эту команду!"
    not-registered: "{PRFX} &cВы не зарегистрированы или ваш аккаунт &6лицензионный!"
    cracked-command: "{PRFX}{NL}&aВы не можете использовать эту команду, так как ваша учетная запись &6лицензионная&a!"
    wrong-password: "{PRFX} &cНеверный пароль!"
    nickname-invalid-kick: "{PRFX}{NL}&cВаш никнейм содержит запрещенные символы. Пожалуйста, измените свой никнейм или сообщите администратору."
    reconnect-kick: "{PRFX}{NL}&6Перезайдите на сервер для подтверждения."
    # 6 часов по умолчанию в ip-limit-valid-time
    ip-limit: "{PRFX} &cВаш IP достиг максимального количества зарегистрированных учетных записей. Если это ошибка, перезагрузите маршрутизатор или подождите около 6 часов."
    ip-limit-kick: "{PRFX} &cВаш IP достиг максимального количества зарегистрированных учетных записей. Если это ошибка, перезагрузите маршрутизатор или подождите около 6 часов."
    wrong-nickname-case-kick: "{PRFX}{NL}&cНеправильный регистр вашего ника. Никнейм чувствителен к регистру."
    bossbar: "{PRFX} У вас осталось &6{0} &fсекунд для входа в систему."
    times-up: "{PRFX}{NL}&cВремя авторизации истекло."
    login-premium: "{PRFX} Вы вошли в систему автоматически, используя премиум-аккаунт!" # Может быть пустым.
    login-premium-title: "{PRFX} Добро пожаловать!" # Может быть пустым.
    login-premium-subtitle: "&aВы вошли в систему как премиум-игрок!" # Может быть пустым.
    login-floodgate: "{PRFX} Вы вошли в систему автоматически, используя учетную запись Bedrock!" # Может быть пустым.
    login-floodgate-title: "{PRFX} Добро пожаловать!" # Может быть пустым.
    login-floodgate-subtitle: "&aВы вошли в систему как игрок Bedrock!" # Может быть пустым.
    login: "{PRFX} &aПожалуйста, войдите в систему, введя в чате команду &e/l &7&oпароль&r&a, у вас &6{0} &a попыток."
    login-wrong-password: "{PRFX} &cВы ввели неправильный пароль, у вас осталось &6{0} &попыток."
    login-wrong-password-kick: "{PRFX}{NL}&cВы ввели неправильный пароль много раз!"
    login-successful: "{PRFX} &aВы успешно вошли в систему!"
    login-title: "&6Введите пароль: &e/l &7&oпароль" # Может быть пустым.
    login-subtitle: "&aУ вас &6{0} &aпопыток." # Может быть пустым.
    login-successful-title: "{PRFX}" # Может быть пустым.
    login-successful-subtitle: "&aВы успешно вошли в систему!" # Может быть пустым.
    # Или если register-need-repeat-password настроен как false, удалите часть "пароль_еще_раз".
    register: "{PRFX} &cПожалуйста, зарегистрируйтесь, введя в чате команду &e/reg &7&oпароль пароль_еще_раз"
    register-different-passwords: "{PRFX} &cВведенные пароли отличаются друг от друга!"
    register-password-too-short: "{PRFX} &cВы ввели слишком короткий пароль, используйте другой!"
    register-password-too-long: "{PRFX} &cВы ввели слишком длинный пароль, используйте другой!"
    register-password-unsafe: "{PRFX} &cВаш пароль ненадежен, используйте другой!"
    register-successful: "{PRFX} &aВы успешно зарегистрированы!"
    register-title: "Зарегистрируйтесь" # Может быть пустым.
    register-subtitle: "&6Введя в чате команду &e/reg &7&oпароль" # Может быть пустым.
    register-successful-title: "{PRFX}" # Может быть пустым.
    register-successful-subtitle: "&aВы успешно зарегистрированы!" # Может быть пустым.
    unregister-successful: "{PRFX}{NL}&aВы успешно разрегистрированы!"
    unregister-usage: "{PRFX} Формат: &6/unregister &7&oтекущий_пароль&r &6confirm"
    premium-successful: "{PRFX}{NL}&aУспешно изменен статус учетной записи на &6лицензионную&a!"
    already-premium: "{PRFX} &cВаш аккаунт уже &6лицензионный&c!"
    not-premium: "{PRFX} &cВаша учетная запись не является &6лицензионной&c!"
    premium-usage: "{PRFX} Формат: &6/premium &7&oваш_пароль&r &6confirm"
    event-cancelled: "{PRFX} Событие авторизации было отменено"
    force-unregister-successful: "{PRFX} &6{0} &aуспешно разрегистрирован!"
    force-unregister-kick: "{PRFX}{NL}&aВы были разрегистрированы администратором!"
    force-unregister-not-successful: "{PRFX} &cОшибка разрегистрирования &6{0}&c. Скорее всего, такой игрок никогда не был на этом сервере."
    force-unregister-usage: "{PRFX} Формат: &6/forceunregister &7&oникнейм_игрока"
    registrations-disabled-kick: "{PRFX} Регистрация временно отключена."
    change-password-successful: "{PRFX} &aПароль успешно изменен!"
    # Или если change-password-need-old-pass настроен как false, удалите часть "старый_пароль".
    change-password-usage: "{PRFX} Формат: &6/changepassword &7&oстарый_пароль новый_пароль"
    force-change-password-successful: "{PRFX} &aПароль &6{0}&a успешно изменен!"
    force-change-password-message: "{PRFX} &aВаш пароль изменен администратором на &6{0}&a!"
    force-change-password-not-successful: "{PRFX} &cНевозможно изменить пароль для &6{0}&c. Скорее всего, такой игрок никогда не был на этом сервере."
    force-change-password-not-registered: "{PRFX} &cPlayer &6{0}&c is not registered."
    force-change-password-usage: "{PRFX} Формат: &6/forcechangepassword &7&oник_игрока новый_пароль"
    force-register-usage: "{PRFX} Формат: &6/forceregister &7&oник_игрока пароль"
    force-register-incorrect-nickname: "{PRFX}{NL}&cНикнейм содержит запрещенные символы."
    force-register-taken-nickname: "{PRFX} &cЭтот никнейм уже занят."
    force-register-successful: "{PRFX} &aУспешно создан аккаунт для игрока &6{0}&a!"
    force-register-not-successful: "{PRFX} &cНе удалось создать аккаунт для игрока &6{0}&c."
    totp: "{PRFX} Пожалуйста, введите ключ 2FA с помощью команды &6/2fa &7&oключ"
    totp-title: "{PRFX}" # Может быть пустым.
    totp-subtitle: "&aEnter your 2FA key using &6/2fa <key>" # Может быть пустым.
    totp-successful: "{PRFX} &aУспешно включена 2FA!"
    totp-disabled: "{PRFX} &aУспешно отключена 2FA!"
    # Или если totp-need-pass настроен как false, удалите часть "текущий_пароль".
    totp-usage: "{PRFX} Формат: &6/2fa enable &7&oтекущий_пароль&r или &6/2fa disable &7&oключ&r."
    totp-wrong: "{PRFX} &cНеправильный ключ 2FA!"
    totp-already-enabled: "{PRFX} &c2FA уже включен. Вы можете отключить его с помощью &6/2fa disable &7&oключ&r&c."
    totp-qr: "{PRFX} Нажмите здесь, чтобы открыть QR-код 2FA в браузере."
    totp-token: "{PRFX} &aВаш токен двухфакторной аутентификации &7(Нажмите, чтобы скопировать)&a: &6{0}"
    totp-recovery: "{PRFX} &aВаши коды восстановления &7(Нажмите, чтобы скопировать)&a: &6{0}"
    destroy-session-successful: "{PRFX} &eВаша сессия теперь сброшена и вам нужно снова войти в систему после повторного подключения."
    mod-session-expired: "{PRFX} Ваша сессия истекла, войдите в систему заново."
totp-subtitle без перевода.
 
Но ведь каждый может просто сказать chatgpt сделать перевод... зачем надо было делать самому
 
Но ведь каждый может просто сказать chatgpt сделать перевод... зачем надо было делать самому
Он будет машинальным. Я посмотрел тот неполный перевод, который был во вложениях от автора, и там местами прослеживались нюансы, походящие на такой перевод. А еще он не идеален, и без UX. А у меня как минимум два-три UX-нюанса учтены в разных сообщениях. Игроки должны на 100% понимать, что им надо делать и где они застряли.
 
Проблема безопасности при настройке плагина на работу со своей таблицей:

приходится править сам плагин, а это чревато тем, что когда его кто-то обновит (ты сам, забыв про кастомные изменения, или тех. админ - если такие есть или появятся), то все кастомные изменения и доработки в нем слетят. Тогда плагин создаст новую таблицу limboauth, в которой не будет ни одного аккаунта, и тогда регистрации всех игроков слетят и их можно будет взломать - просто зайдя под любым игроком и зарегавшись заново, с любым паролем.

Это настолько важная опция - настраивать параметры таблицы (как это реализовано в AuthMe) с аккаунтами игроков, что просто волосы дыбом, как такого тут нет изначально. Это же чуть ли не самое первое, что надо сделать, проектируя/разрабатывая плагин авторизации. Я уже сотню строк перевода сделал, был рад, что наконец не понадобится запускать излишний отдельный сервер авторизации, а LimboAuth так подвел :ninja:



UPD: Обновил переводы и указал даты их правок
 
Последнее редактирование:
Проблема безопасности при настройке плагина на работу со своей таблицей:

приходится править сам плагин, а это чревато тем, что когда его кто-то обновит (ты сам, забыв про кастомные изменения, или тех. админ - если такие есть или появятся), то все кастомные изменения и доработки в нем слетят. Тогда плагин создаст новую таблицу limboauth, в которой не будет ни одного аккаунта, и тогда регистрации всех игроков слетят и их можно будет взломать - просто зайдя под любым игроком и зарегавшись заново, с любым паролем.

Это настолько важная опция - настраивать параметры таблицы (как это реализовано в AuthMe) с аккаунтами игроков, что просто волосы дыбом, как такого тут нет изначально. Это же чуть ли не самое первое, что надо сделать, проектируя/разрабатывая плагин авторизации. Я уже сотню строк перевода сделал, был рад, что наконец не понадобится запускать излишний отдельный сервер авторизации, а LimboAuth так подвел :ninja:



UPD: Обновил переводы и указал даты их правок
+ Тоже приходится при каждом обновлении впиливать смену таблицы и колонок. Было бы неплохо, если бы это по умолчанию было вынесено в конфиг.
 
Плагин LimboAuth можно улучшить, сделав возможность вводить пароль без ввода команды /login | /log | /l. Это UX и он должен всегда иметься в виду. Таким образом, в Title по центру экрана можно будет куда понятнее написать "Введите пароль" - и останется просто его ввести.

Хорошая идея. Главное, чтобы возможность ввода пароля через команду тоже осталась, чтобы не ломать привычный паттерн
 
+ Тоже приходится при каждом обновлении впиливать смену таблицы и колонок. Было бы неплохо, если бы это по умолчанию было вынесено в конфиг.
Я придумал дописывать к имени джарника плагина что-то типа « (!!! CUSTOM CHANGES !!!)» и прямо рядом с ним PNG файл со скрином и подробностями (limboauth !!! CHANGES MADE.png). Уже не помню точные названия

UPD:
upload_2023-12-15_16-33-52.png

И для CMS где обязателен email, создал триггер в MySQL, чтобы при пустом email перед вставкой строки он генерировался/заполнялся как playernickname@localhost. Потом скину. Ну и никнейм прогоняется через LOWER()

Правда как игрокам пароли восстанавливать, честно, хз :lol::whistle:
 
Последнее редактирование:
Здравствуйте! Расскажите пожалуйста, как включить и настроить totp
 
[14:09:27 ERROR]: Can't create plugin limboapi com.google.inject.ProvisionException: Unable to provision, see the following errors: 1) [Guice/ErrorInjectingConstructor]: ReflectionException: An unexpected internal error was caught during the reflection operations. at LimboAPI.<init>(LimboAPI.java:155) at VelocityPluginModule.configure(VelocityPluginModule.java:50) while locating LimboAPI Learn more: github.com/google/guice/wiki/ERROR_INJECTING_CONSTRUCTOR 1 error ====================== Full classname legend: ====================== LimboAPI: "net.elytrium.limboapi.LimboAPI" ReflectionException: "net.elytrium.commons.utils.reflection.ReflectionException" VelocityPluginModule: "com.velocitypowered.proxy.plugin.loader.java.VelocityPluginModule" ======================== End of classname legend: ======================== at com.google.inject.internal.InternalProvisionException.toProvisionException(InternalProvisionException.java:251) ~[velocity.jar:3.3.0-SNAPSHOT (git-9450e660-b310)] at com.google.inject.internal.InjectorImpl$1.get(InjectorImpl.java:1151) ~[velocity.jar:3.3.0-SNAPSHOT (git-9450e660-b310)] at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1186) ~[velocity.jar:3.3.0-SNAPSHOT (git-9450e660-b310)] at com.velocitypowered.proxy.plugin.loader.java.JavaPluginLoader.createPlugin(JavaPluginLoader.java:124) ~[velocity.jar:3.3.0-SNAPSHOT (git-9450e660-b310)] at com.velocitypowered.proxy.plugin.VelocityPluginManager.loadPlugins(VelocityPluginManager.java:155) ~[velocity.jar:3.3.0-SNAPSHOT (git-9450e660-b310)] выдает такую ошибку что делать?
 
Здравствуйте, хочу перейти с H2 базы данных на MySQL, но при этом слетают все пароли, чего я очень не хочу, как перенести на другую базу, без потери данных?
 
Здравствуйте, отказывается работать ispremium-auth-url, уже изменял на режим CloudFlare всё равно не работает. Проверял ссылку в браузере, указывая сам никнейм, всё работает. Как будто ошибка в самой ссылке https://api.ashcon.app/mojang/v2/user/%s
Можно как-то исправить?
6qPwmV8.png

6qPwmV8
 
Здравствуйте, отказывается работать ispremium-auth-url, уже изменял на режим CloudFlare всё равно не работает. Проверял ссылку в браузере, указывая сам никнейм, всё работает. Как будто ошибка в самой ссылке https://api.ashcon.app/mojang/v2/user/%s
Можно как-то исправить?
6qPwmV8.png

6qPwmV8
Нет, это моджанг здох
 
Хотел также спросить, можно ли отключить мир Limbo и сразу отправлять игрока в lobby, где уже там он сможет зарегистрироваться, прописать /premium и т.д.
 
Проблема:

LimboFilter просит ввести капчу, но сама капча почему-то не появляется

Как решить? Сталкивался ли кто-нибудь?
 

Поделиться этой страницей

Назад
Верх