Вопрос Как лицушникам входить без регистрации и логина при использовании LimboAuth?

Ядро
Velocity

Chef

Пользователь
Сообщения
16
Захожу со своего лицензионного аккаунта - почему-то требует пароль. Конфиг:

YAML:
version: "1.1.14"
# Available serializers:
# LEGACY_AMPERSAND - "&c&lExample &c&9Text".
# LEGACY_SECTION - "§c§lExample §c§9Text".
# MINIMESSAGE - "<bold><red>Example</red> <blue>Text</blue></bold>". (https://webui.adventure.kyori.net/)
# GSON - "[{"text":"Example","bold":true,"color":"red"},{"text":" ","bold":true},{"text":"Text","bold":true,"color":"blue"}]". (https://minecraft.tools/en/json_text.php/)
# GSON_COLOR_DOWNSAMPLING - Same as GSON, but uses downsampling.
serializer: LEGACY_AMPERSAND
prefix: "&r"

# Don't use \n, use {NL} for new line, and {PRFX} for prefix.
main:
  # Maximum time for player to authenticate in milliseconds. If the player stays on the auth limbo for longer than this time, then the player will be kicked.
  auth-time: 60000
  enable-bossbar: true
  # Available colors: PINK, BLUE, RED, GREEN, YELLOW, PURPLE, WHITE
  bossbar-color: RED
  # Available overlays: PROGRESS, NOTCHED_6, NOTCHED_10, NOTCHED_12, NOTCHED_20
  bossbar-overlay: NOTCHED_20
  min-password-length: 6
  # Max password length for the BCrypt hashing algorithm, which is used in this plugin, can't be higher than 71. You can set a lower value than 71.
  max-password-length: 71
  check-password-strength: true
  unsafe-passwords-file: "unsafe_passwords.txt"
  # Players with premium nicknames should register/auth if this option is enabled
  # Players with premium nicknames must login with a premium Minecraft account if this option is disabled
  online-mode-need-auth: false
  # WARNING: its experimental feature, so disable only if you really know what you are doing
  # When enabled, this option will keep default 'online-mode-need-auth' behavior
  # When disabled, this option will disable premium authentication for unregistered players if they fail it once,
  # allowing offline-mode players to use online-mode usernames
  # Does nothing when enabled, but when disabled require 'save-premium-accounts: true', 'online-mode-need-auth: false' and 'purge_premium_cache_millis > 100000'
  online-mode-need-auth-strict: true
  # Needs floodgate plugin if disabled.
  floodgate-need-auth: true
  # TOTALLY disables hybrid auth feature
  force-offline-mode: false
  # Forces all players to get offline uuid
  force-offline-uuid: true
  # If enabled, the plugin will firstly check whether the player is premium through the local database, and secondly through Mojang API.
  check-premium-priority-internal: true
  # Delay in milliseconds before sending auth-confirming titles and messages to the player. (login-premium-title, login-floodgate, etc.)
  premium-and-floodgate-messages-delay: 1250
  # Forcibly set player's UUID to the value from the database
  # If the player had the cracked account, and switched to the premium account, the cracked UUID will be used.
  save-uuid: true
  # Saves in the database the accounts of premium users whose login is via online-mode-need-auth: false
  # Can be disabled to reduce the size of stored data in the database
  save-premium-accounts: true
  enable-totp: true
  totp-need-password: true
  register-need-repeat-password: false
  change-password-need-old-password: true
  # Used in unregister and premium commands.
  confirm-keyword: "yes"
  # This prefix will be added to offline mode players nickname
  offline-mode-prefix: ""
  # This prefix will be added to online mode players nickname
  online-mode-prefix: ""
  # If you want to migrate your database from another plugin, which is not using BCrypt.
  # You can set an old hash algorithm to migrate from.
  # AUTHME - AuthMe SHA256(SHA256(password) + salt) that looks like $SHA$salt$hash (AuthMe, MoonVKAuth, DSKAuth, DBA)
  # AUTHME_NP - AuthMe SHA256(SHA256(password) + salt) that looks like SHA$salt$hash (JPremium)
  # SHA256_NP - SHA256(password) that looks like SHA$salt$hash
  # SHA256_P - SHA256(password) that looks like $SHA$salt$hash
  # SHA512_NP - SHA512(password) that looks like SHA$salt$hash
  # SHA512_P - SHA512(password) that looks like $SHA$salt$hash
  # SHA512_DBA - DBA plugin SHA512(SHA512(password) + salt) that looks like SHA$salt$hash (DBA, JPremium)
  # MD5 - Basic md5 hash
  # ARGON2 - Argon2 hash that looks like $argon2i$v=1234$m=1234,t=1234,p=1234$hash
  # MOON_SHA256 - Moon SHA256(SHA256(password)) that looks like $SHA$hash (no salt)
  # SHA256_NO_SALT - SHA256(password) that looks like $SHA$hash (NexAuth)
  # SHA512_NO_SALT - SHA512(password) that looks like $SHA$hash (NexAuth)
  # SHA512_P_REVERSED_HASH - SHA512(password) that looks like $SHA$hash$salt (nLogin)
  # SHA512_NLOGIN - SHA512(SHA512(password) + salt) that looks like $SHA$hash$salt (nLogin)
  # CRC32C - Basic CRC32C hash
  # PLAINTEXT - Plain text
  migration-hash: AUTHME
  # Available dimensions: OVERWORLD, NETHER, THE_END
  dimension: THE_END
  purge-cache-millis: 3600000
  purge-premium-cache-millis: 28800000
  purge-bruteforce-cache-millis: 28800000
  # Used to ban IPs when a possible attacker incorrectly enters the password
  bruteforce-max-attempts: 10
  # QR Generator URL, set {data} placeholder
  qr-generator-url: "https://api.qrserver.com/v1/create-qr-code/?data={data}&size=200x200&ecc=M&margin=30"
  totp-issuer: "www.Mine.by"
  bcrypt-cost: 10
  login-attempts: 3
  ip-limit-registrations: 3
  totp-recovery-codes-amount: 16
  # Time in milliseconds, when ip limit works, set to 0 for disable.
  ip-limit-valid-time: 21600000
  # Regex of allowed nicknames
  # ^ means the start of the line, $ means the end of the line
  # [A-Za-z0-9_] is a character set of A-Z, a-z, 0-9 and _
  # {3,16} means that allowed length is from 3 to 16 chars
  allowed-nickname-regex: "^[A-Za-zА-Яа-яёЁ0-9_]{3,16}$"
  load-world: false
  # World file type:
  #  SCHEMATIC (MCEdit .schematic, 1.12.2 and lower, not recommended)
  #  STRUCTURE (structure block .nbt, any Minecraft version is supported, but the latest one is recommended).
  #  WORLDEDIT_SCHEM (WorldEdit .schem, any Minecraft version is supported, but the latest one is recommended).
  world-file-type: STRUCTURE
  world-file-path: "world.nbt"
  disable-falling: true
  # World time in ticks (24000 ticks == 1 in-game day)
  world-ticks: 1000
  # World light level (from 0 to 15)
  world-light-level: 15
  # Available: ADVENTURE, CREATIVE, SURVIVAL, SPECTATOR
  game-mode: ADVENTURE
  # Custom isPremium URL
  # You can use Mojang one's API (set by default)
  # Or CloudFlare one's: https://api.ashcon.app/mojang/v2/user/%s
  # Or use this code to make your own API: https://blog.cloudflare.com/minecraft-api-with-workers-coffeescript/
  # Or implement your own API, it should just respond with HTTP code 200 (see parameters below) only if the player is premium
  ispremium-auth-url: "https://api.mojang.com/users/profiles/minecraft/%s"
  # Status codes (see the comment above)
  # Responses with unlisted status codes will be identified as responses with a server error
  # Set 200 if you use using Mojang or CloudFlare API
  status-code-user-exists:
    - 200
  # Set 204 and 404 if you use Mojang API, 404 if you use CloudFlare API
  status-code-user-not-exists:
    - 204
    - 404
  # Set 429 if you use Mojang or CloudFlare API
  status-code-rate-limit:
    - 429
  # Sample Mojang API exists response: {"name":"hevav","id":"9c7024b2a48746b3b3934f397ae5d70f"}
  # Sample CloudFlare API exists response: {"uuid":"9c7024b2a48746b3b3934f397ae5d70f","username":"hevav", ...}
  #
  # Sample Mojang API not exists response (sometimes can be empty): {"path":"/users/profiles/minecraft/someletters1234566","errorMessage":"Couldn't find any profile with that name"}
  # Sample CloudFlare API not exists response: {"code":404,"error":"Not Found","reason":"No user with the name 'someletters123456' was found"}
  #
  # Responses with an invalid scheme will be identified as responses with a server error
  # Set this parameter to [], to disable JSON scheme validation
  user-exists-json-validator-fields:
    - "name"
    - "id"
  json-uuid-field: "id"
  user-not-exists-json-validator-fields: []
  # If Mojang rate-limits your server, we cannot determine if the player is premium or not
  # This option allows you to choose whether every player will be defined as premium or as cracked while Mojang is rate-limiting the server
  # True - as premium; False - as cracked
  on-rate-limit-premium: false
  # If Mojang API is down, we cannot determine if the player is premium or not
  # This option allows you to choose whether every player will be defined as premium or as cracked while Mojang API is unavailable
  # True - as premium; False - as cracked
  on-server-error-premium: false
  register-command:
    - "/r"
    - "/reg"
    - "/register"
  login-command:
    - "/l"
    - "/log"
    - "/login"
  totp-command:
    - "/2fa"
    - "/totp"
  # New players will be kicked with registrations-disabled-kick message
  disable-registrations: false
  # Implement the automatic login using the plugin, the LimboAuth client mod and optionally using a custom launcher
  # See https://github.com/Elytrium/LimboAuth-ClientMod
  mod:
    enabled: true
    # Should the plugin forbid logging in without a mod
    login-only-by-mod: false
    # The key must be the same in the plugin config and in the server hash issuer, if you use it
    verify-key: "..."
  world-coords:
    x: 0
    y: 0
    z: 0
  auth-coords:
    x: 0.0
    y: 0.0
    z: 0.0
    yaw: 0.0
    pitch: 0.0
  cracked-title-settings:
    fade-in: 10
    stay: 70
    fade-out: 20
    clear-after-login: true
  premium-title-settings:
    fade-in: 10
    stay: 70
    fade-out: 20
  backend-api:
    # Should backend API be enabled?
    # Required for PlaceholderAPI expansion to work (https://github.com/UserNugget/LimboAuth-Expansion)
    enabled: false
    # Backend API token
    token: "..."
    # Available endpoints:
    #  premium_state, hash, totp_token, login_date, reg_date, token_issued_at,
    #  uuid, premium_uuid, ip, login_ip, token_issued_at
    enabled-endpoints:
      - "premium_state"
      - "login_date"
      - "reg_date"
      - "uuid"
      - "premium_uuid"
      - "token_issued_at"
  # Available values: FALSE, TRUE, PERMISSION
  #  FALSE - the command will be disallowed
  #  TRUE - the command will be allowed if player has false permission state
  #  PERMISSION - the command will be allowed if player has true permission state
  command-permission-state:
    # Permission: limboauth.commands.changepassword
    change-password: PERMISSION
    # Permission: limboauth.commands.destroysession
    destroy-session: PERMISSION
    # Permission: limboauth.commands.premium
    premium: TRUE
    # Permission: limboauth.commands.totp
    totp: PERMISSION
    # Permission: limboauth.commands.unregister
    unregister: PERMISSION
    # Permission: limboauth.admin.forcechangepassword
    force-change-password: PERMISSION
    # Permission: limboauth.admin.forceregister
    force-register: PERMISSION
    # Permission: limboauth.admin.forcelogin
    force-login: PERMISSION
    # Permission: limboauth.admin.forceunregister
    force-unregister: PERMISSION
    # Permission: limboauth.admin.reload
    reload: PERMISSION
    # Permission: limboauth.admin.help
    help: TRUE
  strings:
    reload: "{PRFX} &aУспешно перезагружено!"
    error-occurred: "{PRFX} &cПроизошла внутренняя ошибка!"
    ratelimited: "{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 hours by default in ip-limit-valid-time
    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} Вы вошли в систему автоматически, используя премиум-аккаунт!" # Can be empty.
    login-premium-title: "{PRFX} Добро пожаловать!" # Can be empty.
    login-premium-subtitle: "&aВы вошли в систему как премиум-игрок!" # Can be empty.
    login-floodgate: "{PRFX} Вы вошли в систему автоматически, используя учетную запись Bedrock!" # Can be empty.
    login-floodgate-title: "{PRFX} Добро пожаловать!" # Can be empty.
    login-floodgate-subtitle: "&aВы вошли в систему как игрок Bedrock!" # Can be empty.
    login: "&r {NL}{PRFX} &6Войдите в аккаунт. &eНажмите T и введите &a/login ваш_пароль&8,&r{NL}&8 с которым вы регистрировались на нашем проекте.&r{NL}&8 У вас {0} попыток"
    login-wrong-password: "{PRFX} &cНеверный пароль, у вас осталось &6{0} &cпопыток"
    login-wrong-password-kick: "{PRFX}{NL}&cВы ввели неверный пароль много раз!"
    login-successful: "{PRFX} &aВы успешно вошли в систему!"
    login-title: "&6Авторизация" # Can be empty.
    login-subtitle: "&eНажмите T и введите &a/login ваш_пароль&r" # Can be empty.
    login-successful-title: "{PRFX}" # Can be empty.
    login-successful-subtitle: "&aВы успешно вошли в систему!" # Can be empty.
    # Or if register-need-repeat-password set to false remove the "<repeat password>" part.
    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: "&6Зарегистрируйтесь," # Can be empty.
    register-subtitle: "&6введя в чате команду &e/reg &7&oпароль" # Can be empty.
    register-successful-title: "{PRFX}" # Can be empty.
    register-successful-subtitle: "&aВы успешно зарегистрированы!" # Can be empty.
    unregister-successful: "{PRFX}{NL}&aВы успешно разрегистрированы!"
    unregister-usage: "{PRFX} Формат: &6/unregister &7&oваш_пароль&r &6yes"
    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 &6yes"
    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Пароль успешно изменен!"
    # Or if change-password-need-old-pass set to false remove the "<old password>" part.
    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"
    force-login-usage: "{PRFX} Usage: &6/forcelogin <nickname>"
    force-login-successful: "{PRFX} &aSuccessfully authenticated &6{0}&a!"
    force-login-unknown-player: "{PRFX} &cUnable to find authenticating player with username &6{0}&a!"
    totp: "{PRFX} Пожалуйста, введите ключ 2FA с помощью команды &6/2fa &7&oключ"
    totp-title: "{PRFX}" # Can be empty.
    totp-subtitle: "&aВведите ключ 2FA командой &6/2fa &7&oключ" # Can be empty.
    totp-successful: "{PRFX} &aУспешно включена 2FA!"
    totp-disabled: "{PRFX} &aУспешно отключена 2FA!"
    # Or if totp-need-pass set to false remove the "<current password>" part.
    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} Ваша сессия истекла, войдите в систему заново"


И кстати, команды /premium не существует.
 
И кстати, команды /premium не существует.
Выдай себе права на неё с помощью LuckPerms Velocity, установи LuckPerms Velocity на прокси сервер и введи в консоли прокси /lpv group default permission set limboauth.commands.* true
 
Да, что уж там, можно сразу игроку выдавать опку и логин с паролем от хостинга... (тут был не прав)
И кстати, команды /premium не существует.
Команда существует, для начала на велосити вам нужно установить LuckPerms если конечно он еще не установлен.
Далее в консоли велосити вам нужно ввести команду lpv editor (так будет проще) и добавить нужные для игрока пермишены в группу дефолт.

Нужные пермишены:
  • limboauth.commands.changepassword - смена пароля пользователем и доступ к команде /changepass
  • limboauth.commands.premium - Добавляет команду /premium и помогает игрокам с лицензии избегать капчу. Однако регистрироваться придется все равно по паролю.
  • limboauth.commands.unregister - Добавляет возможность удаления аккаунта, а конкретнее доступ к команде /unreg. Крайне не рекомендую ее выдавать рядовым пользователям.
  • limboauth.commands.totp - Доступ к двойной аунтификации, в целом штука нужная, но есть альтернативы данному решению и куда более крутые. Рекомендую поискать аналоги.
  • limboauth.commands.destroysession - доступ к команде /logout если нужна...

Остальное доступно по умолчанию.
 
Последнее редактирование:
Да, что уж там, можно сразу игроку выдавать опку и логин с паролем от хостинга...
Как я помню, это выдаёт права не на все админ команды (как вы подумали) а на команды для игроков (changepass и т.п)
 
Как я помню, это выдаёт права не на все админ команды (как вы подумали) а на команды для игроков (changepass и т.п)
offtop Сейчас посмотрел у себя, и да. К админ командам доступ не дает, но unreg все еще доступен.
 
И зачем вообще команда /premium? Неужели нельзя просто сразу пускать премиум игроков?
Технически есть реализация подобного, но не в данном плагине.
 
Назад
Сверху Снизу