2.0.0
Compatibility
Changes
🔐 AuthAnvil | Anvil GUI Login Plugin
Say goodbye to chat-based commands. AuthAnvil provides an intuitive and secure login experience using the vanilla anvil interface. Supports offline/premium players and is highly configurable.
✦ Core Features
- Anvil GUI Login: Enter your password directly in the anvil interface — clean and simple.
- Two-Step Registration: Requires entering the password twice to ensure accuracy.
- Premium Auto-Login: Verify premium players via Mojang or LittleSkin API and let them in automatically.
- OP Bypass: Admins can configure OP players to skip the login process.
- Custom Middle Slot: The middle slot of the anvil can be turned into a customizable command button (e.g., help, menu, etc.).
- Session Persistence: After logging in, players can rejoin without re-authentication for a configurable time.
- Anti-ESC Close: The login GUI cannot be closed with ESC, ensuring security.
- Fully Configurable: All messages, sounds, rules, and timings can be adjusted via
config.yml. - Hot Reload: Use
/authanvil reloadin-game to apply configuration changes instantly.
📥 Quick Start
- Place
AuthAnvil-2.0.0.jarinto your server'spluginsfolder. - Start the server, and
plugins/AuthAnvil/config.ymlwill be generated. - Edit the configuration file to your needs.
- In-game, run
/authanvil reloadto reload the config (or restart the server).
⚙️ Full Configuration File
# ============================================
# AuthAnvil Configuration File
# ============================================
# Allow players with OP permissions to bypass login entirely.
op-bypass: true
# Session settings.
session:
# Time in minutes a player can rejoin without re-authentication.
# Set to 0 to require login every time.
timeout: 1440
# Left slot settings (quit button).
left-slot:
# Material name (must be a valid Material enum value).
item-material: "RED_DYE"
# Display name of the item.
item-name: "§c§lQuit"
# Lore shown when hovering over the item.
item-lore: "§7Click to quit the game"
# Right slot settings (confirm button).
right-slot:
item-material: "LIME_DYE"
item-name: "§a§lConfirm"
item-lore: "§7Click to confirm"
# Middle slot settings (custom button).
custom-slot:
# Whether the custom middle button is enabled.
enabled: true
# Material name.
item-material: "LIGHT_BLUE_DYE"
# Item display name (hidden by default, shown as blank).
item-name: "§r"
# Lore displayed on hover.
item-lore: "§7Click to execute custom commands"
# Commands to execute when clicked. Use %player% for the player name.
commands:
- "tell %player% §eThis is a custom button!"
# Commands executed after a successful login. %player% is replaced with the player name.
login-commands:
- "tell %player% &aWelcome back!"
# Commands executed after a successful registration.
register-commands:
- "tell %player% &aRegistration successful!"
# Password policy settings.
password:
# Minimum password length.
min-length: 4
# Maximum password length.
max-length: 16
# Require at least one letter.
require-letter: false
# Require at least one number.
require-number: false
# Maximum wrong attempts before action is taken.
max-attempts: 3
# Action when max attempts reached: kick, tempban, ban-ip.
exceed-action: "kick"
# Duration in minutes for tempban (only if exceed-action is tempban).
tempban-duration: 30
# Restrictions applied to unauthenticated players.
restrictions:
# Prevent movement.
disable-movement: true
# Prevent chatting.
disable-chat: true
# Prevent using commands.
disable-commands: true
# Commands allowed while not logged in.
allowed-commands:
- "/login"
- "/register"
- "/authanvil"
# Apply blindness effect.
apply-blindness: true
# Apply slowness effect.
apply-slowness: true
# Registration limits.
registration:
# Maximum accounts allowed per IP address.
max-accounts-per-ip: 3
# Whether new registrations are allowed.
allow-register: true
# Login timeout settings.
force:
# Seconds a player has to complete login before being kicked. 0 to disable.
login-timeout: 60
# Action on timeout: kick, nothing.
timeout-action: "kick"
# Kick message shown on timeout.
kick-message: "&cLogin timed out, please rejoin"
# Sound and visual effects.
effects:
# Sound played on successful login.
login-sound: "entity.player.levelup"
# Sound played on successful registration.
register-sound: "entity.player.levelup"
# Sound played on wrong password.
wrong-password-sound: "entity.villager.no"
# Title shown on successful login.
login-title: "&aWelcome back!"
# Subtitle shown on successful login.
login-subtitle: "&7%player%"
# Debug settings.
debug:
# Enable debug logging.
enabled: false
# Write login logs to file.
log-to-file: true
# Database settings (currently only yaml is supported).
database:
type: "yaml"
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:TRtxkOLj:bnLMZ2KG"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:TRtxkOLj:bnLMZ2KG"
}

