diff --git a/config (1).yml b/config (1).yml new file mode 100644 index 0000000..3542f50 --- /dev/null +++ b/config (1).yml @@ -0,0 +1,317 @@ +version: "1.1.19" +# Available serializers: +# LEGACY_AMPERSAND - "&c&lExample &c&9Text". +# LEGACY_SECTION - "§c§lExample §c§9Text". +# MINIMESSAGE - "Example Text". (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: MINIMESSAGE +prefix: "&f" + +# Don't use \n, use {NL} for new line, and {PRFX} for prefix. +main: + # Check if player's Minecraft client sends the network packet with the settings. + check-client-settings: true + # Check if player's Minecraft client has a brand. + check-client-brand: true + # If a player's Minecraft client brand (e.g., fabric or forge) is set here, then that player will be kicked. + blocked-client-brands: + - "brand1" + - "brand2" + # Time in milliseconds, how frequently will the cache list with verified players be reset. Before that time, verified players can join the server without passing antibot checks. + purge-cache-millis: 3600000 + # Max attempts, which a player has to solve the captcha. + captcha-attempts: 3 + # Duration of Falling Check in Minecraft ticks (1 tick = 0.05 second, 20 ticks = 1 second). + falling-check-ticks: 128 + # Maximum time to check the player in milliseconds. If the player stays on the filter limbo for longer than this time, then the check will fail. + time-out: 45000 + # Same, but for Geyser users. + geyser-time-out: 90000 + # The timeout for Netty. Max ping while being on the filter limbo. Used to remove useless buffers from RAM. + max-ping: 3500 + # Change the parameters below only if you know what they mean. + non-valid-position-xz-attempts: 10 + non-valid-position-y-attempts: 10 + max-valid-position-difference: 0.01 + # Parameter for developers and contributors. + falling-check-debug: false + # Should captcha be displayed in the left hand. May cause problems with entering captcha for users with 4:3 monitors. Version: 1.9+ + captcha-left-hand: false + # Available states: ONLY_POSITION, ONLY_CAPTCHA, CAPTCHA_POSITION, CAPTCHA_ON_POSITION_FAILED + # Meaning: + # ONLY_POSITION -> Only falling check (Player will be spawned in the void, server will check player's coordinates, speed, acceleration). + # ONLY_CAPTCHA -> Only captcha (Map items with a captcha image will be given to the players, players need to solve captcha, and send the answer in the chat). + # CAPTCHA_POSITION -> Falling and Captcha checking concurrently (Player will be kicked, if he fails either falling check or captcha checking). + # CAPTCHA_ON_POSITION_FAILED -> Initially, the falling check will be started, but if the player fails that check, the captcha checking will be started. + check-state: CAPTCHA_POSITION + # See "filter-auto-toggle.check-state-toggle". + check-state-non-toggled: CAPTCHA_ON_POSITION_FAILED + # See "filter-auto-toggle.check-state-toggle". + geyser-check-state: CAPTCHA_POSITION + # See "filter-auto-toggle.check-state-toggle". + geyser-check-state-non-toggled: CAPTCHA_ON_POSITION_FAILED + load-world: false + # World file types: + # 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" + # World time in ticks (24000 ticks == 1 in-game day) + world-ticks: 4000 + # World light level (from 0 to 15) + world-light-level: 15 + # Should we override block light level (to light up the nether and the end) + world-override-block-light-level: true + # Available: ADVENTURE, CREATIVE, SURVIVAL, SPECTATOR + game-mode: ADVENTURE + # Should we prevent the player from falling after passing the fall check, or after they join the game when the ONLY_CAPTCHA mode is enabled + # This might be useful when using a world schema to allow players to walk in that world + disable-falling-on-captcha: true + # Unit of time in seconds for the Auto Toggles and Statistics. + unit-of-time-cps: 300 + # Unit of time in seconds for the Auto Toggles and the Statistics. + unit-of-time-pps: 5 + # Time in milliseconds how much we should wait before re-enabling logs after attacks + log-enabler-check-refresh-rate: 1000 + # Duration (in seconds) between regeneration of captchas + captcha-regenerate-rate: 3600 + # Coordinates for the falling check + falling-coords: + x: 0 + y: 512 + z: 0 + teleport-id: 44 + # A "USERNAME - IP" list containing information about players who should join the server without verification. + whitelisted-players: + - username: "TestUser123" + ip: "127.0.0.1" + # Minimum/maximum total connections amount per the unit of time to toggle anti-bot checks. + # -1 to disable the check. + # 0 to enable on any connections per the unit of time. + filter-auto-toggle: + # All players will bypass all anti-bot checks + all-bypass: 0 + # Online mode players will bypass all anti-bot checks. + # Doesn't work with online-mode-verify: -1 + online-mode-bypass: 49 + # Geyser players will bypass all anti-bot checks. + geyser-bypass: 0 + # Verify Online Mode connection before AntiBot. + # If connections per unit of time amount is bigger than the limit: online mode players will need to reconnect. + # Else: Some attacks can consume more cpu and network, and can lead to long-lasting Mojang rate-limiting. + # Only works if you have an auth plugin installed. In other cases you should configure need-to-reconnect parameter + online-mode-verify: 79 + # Toggles check-state/check-state-non-toggled. + # It is not recommended to enable it, if you want to protect your server from spam-bots. + # If connections per unit of time amount is bigger than the limit: check-state will be used. + # Else: check-state-non-toggled will be used. + check-state-toggle: 0 + # The player will need to reconnect after passing the AntiBot check. + need-to-reconnect: 129 + # Picture in the MOTD Server Ping packet will be disabled. + disable-motd-picture: 25 + # All the log messages from all plugins will be disabled. + disable-log: 129 + world-coords: + x: -4 + y: 250 + z: -1 + captcha-generator: + # Prepares Captcha packets, consumes x8 more RAM, but improves CPU performance during bot attacks. It's recommended to disable it, if you have less than 2GB of RAM. + prepare-captcha-packets: false + # List of paths to the background image to draw on captcha. Any format, 128x128 128x128 px (will be automatically resized and stretched to the correct size). [] if empty. + backplate-paths: + - "el1.png" + - "el2.png" + - "el3.png" + - "el4.png" + # Path to the font files to draw on captcha (ttf), can be empty. + fonts-path: + - "font.ttf" + # Use standard fonts(SANS_SERIF/SERIF/MONOSPACED), use false only if you provide fonts path + use-standard-fonts: false + letter-offset-x: 12 + letter-offset-y: 0 + font-letter-spacing-x: -20 + font-letter-spacing-y: 0 + render-font-size: 72.0 + font-letter-width: 44 + font-letter-height: 128 + font-outline: false + font-rotate: true + font-ripple: true + font-ripple-amplitude-width: 100.0 + font-ripple-amplitude-height: 10.0 + font-outline-rate: 1.25 + font-outline-offset-x: -4 + font-outline-offset-y: 4 + font-outline-override-radius: 1 + # Set 0 to disable + curve-size: 5 + # Set 0 to disable + curves-amount: 5 + # RGB colors without # + curves-colors: + - "000000" + strikethrough: false + underline: false + pattern: "abcdefhijklmnprstuvwxyz12345678" + # If enabled, both lowercase and uppercase captcha answers entered by players will be correct + ignore-case: true + length: 4 + images-count: 600 + number-spelling: false + # Set to true if you want to verify the number spelling configuration. + # Results will be saved to the number_spelling.txt file. + save-number-spelling-output: false + each-word-on-separate-line: true + # If the number ends with any key specified here, the corresponding value will be used. + # For example: if exception 11 is specified with value 'eleven', the number 411 will be spelt as 'four hundred eleven'. + number-spelling-exceptions: + "11": "одиннадцать" + "12": "двенадцать" + "13": "тринадцать" + "14": "четырнадцать" + "15": "пятнадцать" + "16": "шестнадцать" + "17": "семнадцать" + "18": "восемнадцать" + "19": "девятнадцать" + # null or "" means that the digit should be skipped. + # Note: all the characters used here (including the space) must be listed in pattern. + number-spelling-words: + - - "" + - "один" + - "два" + - "три" + - "четыре" + - "пять" + - "шесть" + - "семь" + - "восемь" + - "девять" + - - "" + - "десять" + - "двадцать" + - "тридцать" + - "сорок" + - "пятьдесят" + - "шестьдесят" + - "семьдесят" + - "восемьдесят" + - "девяносто" + - - "" + - "сто" + - "двести" + - "триста" + - "четыреста" + - "пятьсот" + - "шестьсот" + - "семьсот" + - "восемьсот" + - "девятьсот" + rgb-color-list: + - "00AA00" + - "0000AA" + - "AA00AA" + - "00AAAA" + - "C20000" + - "E6BA00" + gradient: + gradient-enabled: true + gradients-count: 40 + start-x: 0.0 + start-y: 40.0 + end-x: 128.0 + end-y: 80.0 + start-x-randomness: 0.0 + start-y-randomness: 2.0 + end-x-randomness: 0.0 + end-y-randomness: 2.0 + # Numbers ranging from 0.0 to 1.0 specifying the distribution of colors along the gradient. Can be empty. + fractions: null + framed-captcha: + framed-captcha-enabled: true + width: 5 + height: 3 + frame-rotation-chance: 0.0 + autoscale-font: true + coords: + x: -4 + y: 251 + z: 3 + offset-1-7: + x: 0 + y: -2 + z: 1 + # Available dimensions: OVERWORLD, NETHER, THE_END + botfilter-dimension: OVERWORLD + coords: + captcha-x: -1.5 + # If your server supports Minecraft 1.7, don't set captcha-y to 0. https://media.discordapp.net/attachments/878241549857738793/915165038464098314/unknown.png + captcha-y: 251.0 + captcha-z: 0.5 + captcha-yaw: 0.0 + captcha-pitch: 0.0 + falling-check-yaw: 90.0 + falling-check-pitch: 10.0 + tcp-listener: + # Experimental proxy check feature + # Checks the proxy via comparing L4 (TCP PSH+ACK -> TCP ACK) and L7 (Minecraft KeepAlive) ping + # Works better with falling check enabled (150+ falling-check-ticks) + # Needs libpcap (libpcap-dev) on Linux; WinPcap/npcap on Windows + # Needs CAP_NET_RAW (or super-user) on Linux + # Doesn't work if Velocity is behind reverse-proxy (haproxy, protection services, etc) + proxy-detector-enabled: false + # Difference between TCP (L4) and Minecraft (L7) ping in milliseconds to detect proxies. + proxy-detector-difference: 5 + interface-name: "any" + # How many bytes we should take from the each frame to analyse. 120 is enough for any TCP+IP header analysing + snaplen: 120 + # How many milliseconds should the delay be between frame analysis. + listen-delay: 50 + # Time in millis for capturing frames + timeout: 10 + # Log L4 and L7 ping + debug-on-fail: false + debug-on-success: false + # 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: limbofilter.admin.sendfilter + send-filter: PERMISSION + # Permission: limbofilter.admin.reload + reload: PERMISSION + # Permission: limbofilter.admin.stats + stats: PERMISSION + # Permission: limbofilter.admin.help + help: TRUE + # Leave title fields empty to disable. + strings: + reload: "{PRFX} Плагин успешно перезагружен!" + client-settings-kick: "{NL}ꜰᴀɪʟᴜʀᴇ{NL}{NL}Ваш клиент не отправляет пакеты настроек." + client-brand-kick: "{NL}ꜰᴀɪʟᴜʀᴇ{NL}{NL}Ваш клиент не отправляет пакет данных." + proxy-check-kick: "{NL}ꜰᴀɪʟᴜʀᴇ{NL}{NL}Ваше подключение вызывает подозрения." + checking-chat: "{NL} ᴀɴᴛɪʙᴏᴛ{NL} Проходит проверка..{NL}" + checking-title: "ᴀɴᴛɪʙᴏᴛ" + checking-subtitle: "Пожалуйста, подождите..." + checking-captcha-chat: "{NL} ᴀɴᴛɪʙᴏᴛ{NL} Введите символы с картинки в чат.{NL}{NL} Нажмите на клавишу <T>, чтобы открыть чат.{NL}" + checking-wrong-captcha-chat: "{NL} 🔥 ꜰᴀɪʟᴜʀᴇ{NL} Вы ввели неверные символы.{NL}{NL} Пожалуйста, попробуйте ещё раз.{NL}" + checking-captcha-title: "" + checking-captcha-subtitle: "" + successful-cracked: "{NL} ᴀɴᴛɪʙᴏᴛ{NL} Проверка успешно пройдена!{NL}{NL} Приятной игры!{NL}" + successful-premium-kick: "{NL}ᴀɴᴛɪʙᴏᴛ{NL}{NL}Проверка успешно пройдена!{NL}Пожалуйста, присоединяйтесь к серверу!" + captcha-failed-kick: "{NL}ꜰᴀɪʟᴜʀᴇ{NL}{NL}Проверка не пройдена.{NL}Пожалуйста, попробуйте ещё раз." + falling-check-failed-kick: "{NL}ꜰᴀɪʟᴜʀᴇ{NL}{NL}Проверка не пройдена.{NL}Пожалуйста, попробуйте ещё раз." + times-up: "{NL}ᴀɴᴛɪʙᴏᴛ{NL}{NL}Вы превысили максимальное время проверки.{NL}Пожалуйста, перезайдите на сервер." + stats-format: "{NL} sᴛᴀᴛᴜs{NL} Всего заблокировано: {0}{NL} Подключений: {1}s{NL} Пингов: {2}s{NL} Всего подключений: {3}{NL} L7 Пинг: {4}{NL} 4 Пинг: {5}{NL}" + stats-enabled: "{NL} sʏsᴛᴇᴍ{NL} Статистика над панелью быстрого доступа показана." + stats-disabled: "{NL} sʏsᴛᴇᴍ{NL} Статистика над панелью быстрого доступа скрыта." + send-player-successful: "{NL} sʏsᴛᴇᴍ{NL} Успешно отправлено {0} игроков в фильтр лимбо{NL}" + send-server-successful: "{NL} sʏsᴛᴇᴍ{NL} Успешно отправлено {0} игроков из {1} в фильтр лимбо{NL}" + send-failed: "🔥 ᴇʀʀᴏʀ{NL} Нет зарегистрированных серверов или подключенных игроков с именем {0}.{NL}" + captcha-not-ready-yet: "{NL}ᴀɴᴛɪʙᴏᴛ{NL}{NL}Капча еще не готова. Повторите попытку через несколько секунд." diff --git a/config.yml b/config.yml new file mode 100644 index 0000000..07ef2f6 --- /dev/null +++ b/config.yml @@ -0,0 +1,327 @@ +version: "1.1.14" +# Available serializers: +# LEGACY_AMPERSAND - "&c&lExample &c&9Text". +# LEGACY_SECTION - "§c§lExample §c§9Text". +# MINIMESSAGE - "Example Text". (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: "&x&F&C&D&0&5&Cᴀ&x&F&1&C&4&5&3ʙ&x&E&5&B&8&4&9ᴏ&x&D&A&A&C&4&0ʙ&x&C&F&A&0&3&6ᴀ&x&C&3&9&4&2&Dᴡ&x&B&8&8&8&2&3ᴏ&x&A&D&7&C&1&Aʀ&x&A&1&7&0&1&0ʟ&x&9&6&6&4&0&7ᴅ" + +# 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: false + # Available colors: PINK, BLUE, RED, GREEN, YELLOW, PURPLE, WHITE + bossbar-color: YELLOW + # 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: 70 + 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: false + # 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: false + # 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: true + change-password-need-old-password: true + # Used in unregister and premium commands. + confirm-keyword: "confirm" + # 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: OVERWORLD + purge-cache-millis: 3600000 + purge-premium-cache-millis: 100000 + 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: "LimboAuth by Elytrium" + bcrypt-cost: 10 + login-attempts: 3 + ip-limit-registrations: 4 + 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-z0-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: true + # 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: true + register-command: + - "/reg" + - "/register" + login-command: + - "/l" + - "/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: "Y2ltQl2q2RFyzrRmcTrLYzyN" + world-coords: + x: 0 + y: 520 + z: 0 + auth-coords: + x: 0.0 + y: 520.0 + z: 0.0 + yaw: 0.0 + pitch: 0.0 + cracked-title-settings: + fade-in: 10 + stay: 70 + fade-out: 20 + clear-after-login: false + 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: "19dgqcbgwg8ta" + # 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: PERMISSION + # 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} &f> &aПерезагружено успешно!" + error-occurred: "{PRFX} &f> &cПроизошла внутренняя ошибка!" + ratelimited: "{PRFX} &f> &cПожалуйста, подождите перед следующим использованием!" + database-error-kick: "{PRFX} &f> &cПроизошла ошибка базы данных!" + not-player: "{PRFX} &f> &cКонсоли не разрешено выполнять эту команду!" + not-registered: "{PRFX} &f> &cВы не зарегистрированы или ваш аккаунт &bПРЕМИУМ!" + cracked-command: "{PRFX}{NL}&fВы не можете использовать эту команду, так как ваша учетная запись &6ПРЕМИУМ&f!" + wrong-password: "{PRFX} &f> &cНеверный пароль!" + nickname-invalid-kick: "{PRFX}{NL}&cВаш никнейм содержит запрещенные символы. Пожалуйста, смените никнейм!" + reconnect-kick: "{PRFX}{NL}&cПереподключитесь к серверу, чтобы подтвердить свою учетную запись!" + # 6 hours by default in ip-limit-valid-time + ip-limit-kick: "{PRFX}{NL}{NL}&cВаш IP достиг максимального количества зарегистрированных учетных записей. Если это ошибка, перезагрузите маршрутизатор или подождите около 6 часов." + wrong-nickname-case-kick: "{PRFX}{NL}&fВы должны присоединиться, используя имя пользователя &c{0}&f, а не &c{1}&f." + bossbar: "{PRFX} &f> &fУ вас осталось &c{0} &fсекунд для входа в систему." + times-up: "{PRFX}{NL}&cВремя авторизации истекло." + login-premium: "{PRFX} &f> &fВы вошли в систему автоматически, используя премиум-аккаунт!" # Can be empty. + login-premium-title: "{PRFX} &f> &aДобро пожаловать!" # Can be empty. + login-premium-subtitle: "&fВы вошли в систему как премиум-игрок!" # Can be empty. + login-floodgate: "{PRFX} &f> Вы вошли в систему автоматически, используя учетную запись Bedrock!" # Can be empty. + login-floodgate-title: "{PRFX} &f> &aДобро пожаловать!" # Can be empty. + login-floodgate-subtitle: "&fВы вошли в систему как основоположник!" # Can be empty. + login: "{PRFX} &f> &fИспользование: &5/login &f(пароль)" + login-wrong-password: "{PRFX} &f> &cВы ввели неправильный пароль, у вас осталось {0} попыток." + login-wrong-password-kick: "{PRFX}{NL}&cВы ввели неправильный пароль несколько раз!" + login-successful: "{PRFX} &f> &aУспешно вошли в систему!" + login-title: "{PRFX}" # Can be empty. + login-subtitle: "&fИспользование: &5/login &f(пароль)" # 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 "" part. + register: "{PRFX} &f> &fИспользование: &5/register &f(пароль) (пароль)" + register-different-passwords: "{PRFX} &f> &cВведенные пароли отличаются друг от друга!" + register-password-too-short: "{PRFX} &f> &cВы ввели слишком короткий пароль, используйте другой!" + register-password-too-long: "{PRFX} &f> &cВы ввели слишком длинный пароль, используйте другой!" + register-password-unsafe: "{PRFX} &f> &cВаш пароль ненадежен, используйте другой!" + register-successful: "{PRFX} &f> &aУспешно зарегистрирован!" + register-title: "{PRFX}" # Can be empty. + register-subtitle: "&fИспользование: &5/register &f(пароль) (пароль)" # 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} &f> Использование: &5/unregister &f(текущий пароль) подтвердить" + premium-successful: "{PRFX}{NL}&fСостояние учетной записи успешно изменено на &bПРЕМИУМ&f!" + already-premium: "{PRFX} &f> &cВаш аккаунт уже &bПРЕМИУМ&c!" + not-premium: "{PRFX} &f> &cВаш аккаунт не &bПРЕМИУМ&c!" + premium-usage: "{PRFX} &f> Использование: &5/premium &f(текущий пароль) подтвердить" + event-cancelled: "{PRFX} &f> Событие авторизации было отменено" + force-unregister-successful: "{PRFX} &f> &a{0} &aУспешно незарегистрированный!" + force-unregister-kick: "{PRFX}{NL}&aВы были сняты с регистрации администратором!" + force-unregister-not-successful: "{PRFX} &f> &cНевозможно отменить регистрацию &c{0}&c. Скорее всего этот игрок никогда не был на этом сервере." + force-unregister-usage: "{PRFX} &f> Использование: &5/forceunregister &f(ник)" + registrations-disabled-kick: "{PRFX} &f> &cВ настоящее время регистрации отключены." + change-password-successful: "{PRFX} &f> &aПароль успешно изменен!" + # Or if change-password-need-old-pass set to false remove the "" part. + change-password-usage: "{PRFX} &f> &fИспользование: &5/changepassword &f(старый пароль) (новый пароль)" + force-change-password-successful: "{PRFX} &f> &fПароль для игрока &a{0} &fуспешно изменен!" + force-change-password-message: "{PRFX} &f> &fВаш пароль был изменен на &a{0} &fадминистратором!" + force-change-password-not-successful: "{PRFX} &f> &fНевозможно изменить пароль для &a{0}&f. Скорее всего этот игрок никогда не был на этом сервере." + force-change-password-not-registered: "{PRFX} &f> &fИгрок &a{0}&f не зарегистрирован." + force-change-password-usage: "{PRFX} &f> &fИспользование: &5/forcechangepassword &f(ник) (новый пароль)" + force-register-usage: "{PRFX} &f> &fИспользование: &5/forceregister &f(ник) (пароль)" + force-register-incorrect-nickname: "{PRFX} &f> &cНик содержит запрещенные символы." + force-register-taken-nickname: "{PRFX} &f> &cЭтот ник уже занят." + force-register-successful: "{PRFX} &f> Успешно зарегистрированный игрок &a{0}!" + force-register-not-successful: "{PRFX} &f> Не могу зарегистрировать игрока &a{0}&f." + force-login-usage: "{PRFX} Usage: &6/forcelogin " + 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} &f> Пожалуйста, введите ключ 2FA с помощью &5/2fa &f(ключ)" + totp-title: "{PRFX}" # Can be empty. + totp-subtitle: "&fВведите ключ 2FA, используя &5/2fa &f(ключ)" # Can be empty. + totp-successful: "{PRFX} &f> &aУспешно включил 2FA!" + totp-disabled: "{PRFX} &f> &aУспешно отключил 2FA!" + # Or if totp-need-pass set to false remove the "" part. + totp-usage: "{PRFX} &f> Использование: &5/2fa enable &f(текущий пароль) или &5/2fa disable &f(верхний ключ)." + totp-wrong: "{PRFX} &f> &cНеверный ключ 2FA!" + totp-already-enabled: "{PRFX} &f> 2FA уже включен. Отключите его с помощью &5/2fa disable &f(ключ)." + totp-qr: "{PRFX} &f> Нажмите здесь, чтобы открыть QR-код 2FA в браузере." + totp-token: "{PRFX} &f> &fВаш токен двухфакторной аутентификации &7(Нажмите, чтобы скопировать)&f: &a{0}" + totp-recovery: "{PRFX} &f> &fВаши коды восстановления &7(Нажмите, чтобы скопировать)&f: &a{0}" + destroy-session-successful: "{PRFX} &f> &cВаша сессия теперь уничтожена, вам нужно снова войти в систему после повторного подключения." + mod-session-expired: "{PRFX} &f> &cСрок действия вашего сеанса истек, войдите снова." + +# Database settings +database: + # Database type: mariadb, mysql, postgresql, sqlite or h2. + storage-type: MARIADB + # Settings for Network-based database (like MySQL, PostgreSQL): + hostname: "100.107.33.61:64000" + user: "u20_iAdJFuiHWu" + password: "xVXEHtA^u.w9i9sr=IegfKvu" + database: "s20_AbobaWorld" + connection-parameters: "?autoReconnect=true&initialTimeout=1&useSSL=false"