authmebia 图标

authmebia

作者:rebot | 分类:模组

价格:0 墨喵币 下载量:0 点赞:0 版本 0.0.6
本资源为搬运资源,原资源地址: https://modrinth.com/mod/authmebia
资源信息

Minecraft 版本: 1.21.6 1.21.7 1.21.8 1.21.9 1.21.10 1.21.11 26.1 26.1.1 26.1.2 26.2

平台: bukkit folia paper purpur

标签: game-mechanics management social

资源介绍
authmebia # authmebia An addon for AuthMe Reloaded that replaces chat-based login and register prompts with native Minecraft dialogs (1.21.6+). Players interact through proper GUI windows instead of typing commands in chat. [Source code](https://github.com/Mytai20100/authmebia)

Login ![Login dialog](https://cdn.modrinth.com/data/cached_images/cd5d9af9bda7ece8d1d356db202e4a25887c934c_0.webp) Register ![Register dialog](https://cdn.modrinth.com/data/cached_images/dfe496ec27483904a149e74ee75017cf2c23fe9d_0.webp) Rules ![Rules dialog](https://cdn.modrinth.com/data/cached_images/e230aa5498712bfe9a8ce5e4fdef85f125260620_0.webp) Wait screen before join server ![wait](https://cdn.modrinth.com/data/cached_images/744b0c064cf88b80ad1d1b55eb3829c1212a208a_0.webp) Custom buttons link ![custom link](https://cdn.modrinth.com/data/cached_images/6c9f73d2a0bcd5f67612e970e620766a1de23906_0.webp) Captcha ![captcha](https://cdn.modrinth.com/data/cached_images/ffcb7bf5ebd6d214edfef4d3959e7f61b58de333_0.webp) 2FA ![2FA](https://cdn.modrinth.com/data/cached_images/6ae253424f125170265388cc66286695e02741a8_0.webp) Add Email ![Add email dialog](https://cdn.modrinth.com/data/cached_images/48e1866b127ba7434922f483d9268b2bfd77d1da_0.webp) Email verify ![Email verify](https://cdn.modrinth.com/data/cached_images/e5b39e68c1cc8e3fd770c355e3422e600e95426d_0.webp) Recovery password ![Recovery password](https://cdn.modrinth.com/data/cached_images/3c0b3d3c53b5feadf70431b4eeee284f67fae1de_0.webp) Forgot Password but email not found dialog ![Forgot Password but email not found dialog](https://cdn.modrinth.com/data/cached_images/63333e06d7a34b50a6564f5467f5b31039cea889_0.webp)
Requirement Version
Minecraft 1.21.6+
Paper
Folia
Java 21
AuthMe Reloaded 6.0.0+
ViaVersion Optional

Optional, only needed for specific features:

  • Floodgate — required for auto.bedrock_autologin and the Bedrock dialog overrides (dialog.bedrock)
  • ItemsAdder / NexoMC / Oraxen — only needed if the corresponding integrations.* entry is enabled
  • PlaceholderAPI — only needed if you want %placeholder% expansions inside config.yml/lang text; without it, {player} substitution and MiniMessage formatting still work normally

Features

Dialog modes

  • Pre-spawn dialog mode: the login or register window blocks the connection phase, so the player spawns already authenticated
  • Post-spawn dialog mode: the window appears after the player joins the world
  • Three auth input modes: password text field, numeric PIN grid, or per-digit slider
  • Old-client numpad fallback: clients whose protocol version can't render dialogs at all (pre-1.21.6) get an inventory-GUI numpad instead when auth_mode.mode is pin or slider, since there's otherwise no way to type a code through AuthMe's plain chat commands. Works post-spawn only; uses the exact same wrong-code/attempt-limit/2FA logic as the normal PIN/slider dialog
  • Button layout switch (dialog.button_layout): arrange the main action buttons vertically (stacked) or horizontally (side by side) in both the register and login dialogs

Authentication

  • Premium bypass: players whose UUID matches a premium account stored in AuthMe are detected automatically and skip all dialogs entirely
  • Premium auto-login (auto.premium_autologin, off by default): goes a step further than the premium bypass above — a matching premium UUID is automatically forceRegister'd (if needed) and forceLogin'd with no dialog at all, then shown a one-time mandatory password-set dialog so the account still has a real AuthMe password on file
  • Bedrock auto-login (auto.bedrock_autologin, off by default): the same automatic login, but for Bedrock players connecting through Geyser/Floodgate. auto.bedrock_mode controls how much this trusts: link (default, safe) only applies if Floodgate reports the player's account as linked to a verified Java premium account; geyser (opt-in, unsafe unless Geyser's own online auth-type is enabled) trusts any Bedrock/Geyser connection with no linked-account check at all
  • Bedrock dialog support: Bedrock players see the same register/login/recover/rule/captcha dialogs as Java players, reusing all the same logic. dialog.bedrock lets you optionally override button width, input width, and the auth input mode (password/PIN/slider) just for Bedrock clients, since some Bedrock devices have a smaller usable dialog area
  • Session auto-login (auto.session_autologin, on by default): skips the dialog entirely for a returning player that AuthMe's own session feature (settings.sessions.enabled/timeout in AuthMe's own config.yml) would already authenticate by matching IP and timeout. This reproduces AuthMe's own session comparison rather than asking AuthMe whether it already decided, since AuthMe does not evaluate its session feature until later in the join than this plugin's dialog decision is made. Has no effect at all unless AuthMe's own session feature is also enabled
  • TOTP / 2FA dialog for players who have an authenticator app set up in AuthMe
  • Captcha dialog synced with AuthMe's captcha setting
  • Email verification dialog on registration (reuses AuthMe's SMTP config)
  • Self-service "Forgot Password?": a button on the login dialog lets players reset their own password without an admin. It looks up the email already on file (set during email-verified registration), sends a reset code to it through AuthMe's SMTP config, and — once the code is verified — shows the same reset dialog used for admin-forced recovery. Accounts with no email on file are told to contact an admin instead
  • Admin-forced password recovery: use /bia recover <player> to flag an account; the player is shown a reset dialog on their next login or immediately if they are already online. The reset dialog now follows auth_mode.mode (password/PIN/slider), matching the register and login dialogs instead of always showing a text field
  • Server rules agreement checkbox shown to new players before their account is created
  • Login attempt limit with kick after too many wrong passwords
  • Login timeout with optional kick or re-show of the dialog
  • IP ban with escalating ban durations after repeated failed logins across sessions

Notifications

  • Custom toast notifications (notifications.toasts): show the small achievement-style popup in the corner of the screen on first_register, first_login, first_message, or first_advancement, with a configurable title, description, item icon, sound, and advancement frame (task/goal/challenge). Each toast only ever fires once per player
  • /bia notifier <toast> <player> show [seconds] lets an admin preview any configured toast on an online player without touching its persisted "already shown" state, so testing never affects whether it fires for real later

Third-party item plugin integrations

  • Optional, self-checking integrations with ItemsAdder, NexoMC, and Oraxen (integrations.*, all off by default). Each one only activates if the corresponding plugin is actually installed and its API is loadable; if it isn't, the integration quietly disables itself without affecting login/registration in any way

Admin tools

  • Bypass list: players added with /bia add skip all dialogs and fall back to AuthMe's own commands
  • Custom screens: define any number of dialog windows in config.yml and push them to any online player with /bia screen <id> [player], or auto-show them on join with trigger: postjoin/trigger: prejoin instead of only on command
  • Debug commands: preview individual dialogs in-game without going through the full login flow
  • Startup check that warns in the console if AuthMe's own built-in dialog (settings.registration.dialog.preJoin/postJoin.enable) is also enabled, to prevent two dialogs from appearing at once

Extras

  • PlaceholderAPI support: any config.yml or lang text field can use %placeholder% expansions from installed PlaceholderAPI extensions (e.g. LuckPerms prefixes, Vault ranks), on top of the plugin's own {player} substitution and MiniMessage formatting. Only active while rendering text for a specific player, and never throws or blocks if PlaceholderAPI is not installed
  • Link buttons inside dialogs (open URL, copy to clipboard)
  • Per-button click sounds: nearly every dialog button (submit, logout, agree, verify, resend, forgot password, custom screen buttons, etc.) can play its own Minecraft sound on click
  • Discord webhook notification on player join or first registration
  • Welcome image sent to the player after first login
  • ViaVersion support: players on older protocol versions fall back to AuthMe's normal flow automatically
  • Folia support: detects Folia at startup and automatically switches to its region-aware scheduler instead of the standard Bukkit scheduler

Commands

Command Permission Description
/bia reload OP Reload config and lang
/bia info - Show plugin version and status
/bia add <player> authmebia.bypass Add player to bypass list
/bia rm <player> authmebia.bypass Remove player from bypass list
/bia recover <player> bia.admin.recover Force password reset on next login
/bia screen <id> [player] OP Show a custom screen to a player
/bia debug <feature> <true\|false\|show> OP Test features in-game
/bia notifier <toast> <player> show [seconds] OP Preview a configured toast on an online player without affecting its once-per-player state

Debug features: captcha, email, register, login, wait, recover, rule.
Use show with captcha or email to preview those dialogs directly without going through the login flow.


AuthMe API used

AuthMeBia hooks into AuthMe Reloaded through reflection rather than a compile-time API dependency, so it stays compatible across minor AuthMe builds without recompiling.

Class Usage
fr.xephi.authme.api.v3.AuthMeApi Core operations: isRegistered, forceLogin, forceRegister, forceLogout, checkPassword, changePassword, isAuthenticated, registerPlayer, getLastIp, getLastLoginTime
fr.xephi.authme.data.auth.PlayerAuth Read player data: isPremium, getPremiumUuid, getEmail, getTotpKey, setEmail
fr.xephi.authme.data.auth.PlayerCache isAuthenticated(name) — used for in-memory authentication checks
fr.xephi.authme.datasource.DataSource Fetch PlayerAuth records (getAuth), check auto.session_autologin state (hasSession), persist email changes (updateEmail)
fr.xephi.authme.mail.EmailService Check SMTP availability, send verification codes
fr.xephi.authme.security.totp.TotpAuthenticator Verify TOTP codes for 2FA dialog (checkCode(PlayerAuth, String))
fr.xephi.authme.events.LoginEvent Detect successful login to complete async futures
fr.xephi.authme.events.RegisterEvent Detect successful registration
fr.xephi.authme.events.FailedLoginEvent Detect failed login

AuthMeBia also optionally bridges to Floodgate's API the same way (reflection, no compile-time dependency), only when auto.bedrock_autologin or a Bedrock dialog override is in use:

Class Usage
org.geysermc.floodgate.api.FloodgateApi Detect Floodgate/Bedrock connections
org.geysermc.floodgate.api.player.FloodgatePlayer Look up a Bedrock player's linked account
org.geysermc.floodgate.util.LinkedPlayer Read the verified linked Java UUID, if any

Building from source

Clone

git clone https://github.com/Mytai20100/authmebia.git
cd authmebia

IntelliJ IDEA (recommended)

  1. Open IntelliJ IDEA and choose Open, then select the authmebia folder.
  2. IntelliJ will detect the Gradle project automatically and import it.
  3. Wait for the Gradle sync to finish and dependencies to download.
  4. Open the Gradle panel (right side) and run Tasks > shadow > shadowJar.
  5. The output jar is in build/libs/.

Command line

./gradlew shadowJar

The built jar is placed in build/libs/. Copy it to your server's plugins/ folder alongside AuthMe Reloaded.


Configuration

config.yml ```yaml # AuthMeBia configuration. # Text fields support MiniMessage color/decoration tags, e.g. , , . # Use {player} as a placeholder for the player's name where supported. # Use \n inside a string to insert a line break. # Language code for messages (disconnect/kick, errors, chat). # Built-in options: en (English), vi (Vietnamese). # To add your own, copy plugins/AuthMeBia/lang/en.yml to lang/.yml and edit it. # Reload with /bia reload. lang: en # Automatic authentication skip for already-verified identities. # Both flags default to false. With both false, behavior is identical to not # having this section at all. auto: premium_autologin: false bedrock_autologin: false # link (default, safe) or geyser (unsafe unless Geyser's own online # auth-type is enabled -- see the full comment in config.yml) bedrock_mode: link # Skips the dialog for a player already authenticated by AuthMe's own # session feature. No effect unless AuthMe's settings.sessions.enabled # is also true. Default: true. session_autologin: true dialog: enabled: true menu: true min_protocol_version: 771 button_width: 200 # vertical (stacked) or horizontal (side by side) button_layout: vertical input_width: 200 register: title: "Create Account#4287f5>" content: "" password_label: "Password" confirm_password_label: "Confirm Password" submit_sound: "" login: title: "Login" content: "Welcome back, {player}!" password_label: "Password" submit_sound: "" forgot_password: # Self-service password reset via the email already on file. # Requires email.enabled so an email is stored on the account. enabled: false button: "Forgot Password?" button_sound: "" email_title: "Forgot Password" email_content: "Enter the email address registered to this account." email_label: "Email" submit_button: "Send Code" submit_sound: "" invalid_email_error: "Incorrect email" no_email_message: "No email is linked to this account. Please contact an admin." logout_button: "Logout" logout_sound: "" submit_register_button: "Register" submit_login_button: "Login" allow_close: true # Only used when allow_close is false; delay in ticks before re-checking # and re-showing an in-game dialog the player closed without a click. reopen_delay_ticks: 10 # Optional overrides applied only to Bedrock (Geyser/Floodgate) players. # Leave enabled: false to keep Bedrock identical to Java. bedrock: enabled: false button_width: 300 input_width: 300 # "" = inherit auth_mode.mode. Options: "", password, pin, slider auth_mode_override: "" auth_mode: # password | pin | slider mode: password pin: length: 4 title: "Enter your PIN" confirm_button: "Confirm" delete_button: "Delete" button_width: 100 button_sound: "" slider: length: 4 title: "Enter your code" confirm_button: "Confirm" button_width: 100 button_sound: "" auth_wait: wait: true prejoin: true time: 3 title: "Please wait" content: "Logging you in, please wait..." rule: enabled: false title: "Server Rules" content: "" checkbox_label: "I have read and agree to the rules" agree_button: "Agree" agree_sound: "" discord: enabled: false webhook_url: "" welcome_image: enabled: false links: enabled: false position: grouped button_width: 200 buttons: - enabled: true label: "Discord#5865F2>" action: open_url value: "https://discord.gg/abc" width: 200 - enabled: true label: "{player}, copy IP" action: copy value: "play.example.com" width: 200 captcha: enabled: false length: 5 title: "Verification" content: "Type the code below to continue:\n{code}" input_label: "Enter code" submit_button: "Verify" submit_sound: "" trust_duration_seconds: 18000 login_attempts: enabled: true max_tries: 5 login_timeout: enabled: true seconds: 60 kick_message: "Authentication timed out. Please reconnect." recover: title: "Reset Password" content: "An admin has requested you set a new password." new_password_label: "New password" confirm_password_label: "Confirm password" submit_button: "Set Password" submit_sound: "" success_message: "Password updated successfully." mismatch_message: "Passwords do not match. Try again." # Password-set dialog shown once, the first time a player joins via # auto.premium_autologin or auto.bedrock_autologin. Has no effect if both # of those are false. premium: title: "Set Your Password" content: "You were signed in automatically. Please set a password for your account (used if you ever join from a non-verified client)." new_password_label: "New password" confirm_password_label: "Confirm password" submit_button: "Set Password" submit_sound: "" success_message: "Password set successfully." mismatch_message: "Passwords do not match. Try again." email: enabled: false code_length: 6 resend_cooldown: 60 field_label: "Email" verify_title: "Verify your email" verify_content: "A code was sent to {email}.\nResend available in {cooldown}s." code_label: "Code" verify_button: "Verify" verify_sound: "" resend_button: "Resend code" resend_sound: "" resend_button_cooldown: "Resend ({cooldown}s)" invalid_email_message: "Please enter a valid email address." send_failed_message: "Could not send the email. Please contact an admin." wrong_code_error: "Incorrect code" totp_2fa: # Shows a 2FA dialog after login if the player has TOTP enabled in AuthMe. # Requires AuthMe 5.6+. enabled: false title: "Two-Factor Authentication" content: "Enter your 6-digit authenticator app code:" input_label: "Authenticator code" submit_button: "Verify" submit_sound: "" wrong_code_error: "Invalid code" # Custom dialog screens. Show with: /bia screen [player] # Button actions: close, open_url, copy custom_screens: - id: example enabled: true title: "Server Notice" content: "Welcome to the server, {player}!\nHave fun playing." allow_close: true button_width: 200 # command (default), postjoin, or prejoin -- see doc/README.md trigger: command sound_on_show: "" buttons: - label: "OK" action: close sound: "" - label: "Discord#5865F2>" action: open_url value: "https://discord.gg/abc" width: 200 ip_ban: enabled: false threshold: 10 ban_durations_seconds: [600, 1800, 3600, 86400] ``` notifications.toasts and integrations ```yaml # Custom toast notifications shown once per player per check. notifications: toasts: - name: welcome_toast check: first_register title: "Welcome!" content: "Thanks for joining the server." icon: "minecraft:player_head" sound: "minecraft:entity.player.levelup 0.6 1.0" delay: 5 frame: task # Optional integrations with third-party item/resource-pack plugins. # Each self-checks whether the target plugin is installed; if not, it does # nothing and never affects login/registration. integrations: itemsadder: enabled: false nexomc: enabled: false oraxen: enabled: false ```
下载太慢?试试 墨喵加速站,支持 Modrinth 和外网直链高速下载! 用的人越多,下载的越快!
下载与版本
评论(0)
登录 后发表评论。

暂无评论,抢个沙发吧~

举报此资源

请登录后举报

🔥 相关推荐
Persistent Death Drops

价格:0 墨喵币
下载量:0

查看详情
realism blend 1024x

价格:0 墨喵币
下载量:0

查看详情
Advanced eHideTags

价格:0 墨喵币
下载量:0

查看详情
Dalek Mod: Module Cabinets

价格:0 墨喵币
下载量:0

查看详情