Compatibility
Minecraft: Java Edition
Platforms
Tags
Creators
Details
๐ AstraLogin
A user-friendly, efficient, and reliable login system designed for modern Minecraft servers.
Created and maintained with ๐ป from Poland by DawcoU ๐ต๐ฑ
AstraLogin is a modern, high-performance login plugin built specifically for newer Minecraft versions (1.18 - 26.3+). Developed in Java 17 and leveraging the Paper API for maximum efficiency, it is the perfect choice for Survival, RPG, and SMP servers. ๐๐ฎ
โญ AstraLogin supports:
- Paper ๐
- Purpur ๐ช
- Folia ๐
- Arclight โก (supported, but not recommended)
- Spigot ๐ฐ (supported, but not recommended)
โ ๏ธ Spigot is supported, but it is not the recommended platform. Some features may behave differently or cause compatibility issues. Paper or its forks are strongly recommended for the best experience.
๐ธ Screenshots & Showcase
๐ Login Screen
๐ป 2FA Setup
๐ซ Too Many Failed Logins
๐ง Config
๐ Key Features
-
Advanced Security: Password hashing using the BCrypt or Argon2id algorithm, ensuring no plain text is ever stored and protecting against dictionary attacks. Passwords are automatically re-hashed using the selected hashing algorithm after a successful login when necessary. ๐ก๏ธ๐๐๐ป
-
Suspicious Activity Alerts: Sends real-time notifications to administrators with permissions when suspicious actions occur, such as a player logging in from an unknown IP address completely different from their saved profile IP. ๐จ๐โ ๏ธ๐ก๏ธ
-
Strict Input Validation: Prevents players from registering with unauthorized characters, emojis, or special symbols. Includes a configurable regex pattern and pre-built rules to block weak passwords, such as those made entirely of letters or entirely of numbers. ๐๐ค๐ซโ ๏ธ
-
Detailed Event Logging: All key server events, including player logins, suspicious access attempts, and administrative actions, are logged to dedicated files in the
logsfolder inside the plugin directory. ๐๐๐๐ -
Smart Brute-Force Protection: ๐ซ๐ค๐จ
- Failed Attempts Limit: Automatically kicks players after exceeding allowed login attempts. ๐ฅพโ
- Margin of Error: Configure extra "mercy" chances (margin) before a final action is taken. โณ๐ก๏ธ
- Temporary IP Bans: If the limit is reached, the user's IP is banned to prevent further attacks without bloating your database. ๐ซ๐ก๏ธ๐๐
-
Two-Factor Authentication (2FA): Next-level account security! Players can link their accounts to authenticator apps to protect themselves from hackers. ๐ฑ๐๐ฒ๐ก๏ธ
-
Account Management & Statistics: Comprehensive tracking of player data, including registration/last login dates, 2FA status, UUIDs, and more! ๐๐๐๐ค
-
Session System: Allows players to rejoin without re-typing their password within a configurable time limit (IP-based). ๐๐๐ป
- Dedicated 2FA Sessions: Separately manages 2FA verification, allowing players to authenticate their 2FA code periodically (e.g., once every 2 days) independently from the main login session. ๐ฑ๐๐โ
-
In-Game Player Protection: ๐ก๏ธ๐
- Equipment Protection: Complete concealment of player inventory and armor during the login process to prevent exploits and unauthorized spying on other players' gear. ๐๐ก๏ธ๐ฆบ
- Location Protection: Teleports unauthorized players to a secure location (or spawn) and restores their previous position only after successful login, preventing coordinate leaks and exploits. ๐๐๐บ๏ธโจ
- Inventory Storage: Temporarily holds player items during the login process until they are authorized. ๐ฆ๐พ๐
-
Visual Effects: ๐จโจ๐
- Blindness Effect: Keeps unauthorized players in total darkness. ๐๐ถ๏ธ
- HEX Colors: Full support for modern HEX color codes in the prefix and all messages via MiniMessage/Legacy! ๐๐จ๐๏ธ
- Interactive Sound Effects: Plays custom, configurable sound effects during various player actions (e.g., successful login, wrong password entry, invalid password format) to enhance the user experience. ๐๐ถโจ
-
Seasonal Events: ๐๐ Automatically activates themed events during configured dates, replacing standard sound effects with randomly selected seasonal sounds and displaying atmospheric messages.
-
Localization & Multilingual Support: Native built-in language files with full translation support for English, Polish, Spanish, and German. ๐๐ต๐ฑ๐ฌ๐ง๐ช๐ธ๐ฉ๐ช
-
Admin Utilities: ๐ ๏ธโ๏ธ๐งฐ
- Auto-Updater: Configuration files automatically update when you install a newer plugin version. Additionally, you can automatically download the latest
.jarfile from Modrinth directly into the server'supdatefolder via command, ensuring it installs seamlessly upon the next server restart. ๐โก - Update Notifications: Notifies administrators when a new version is available, with warnings about pre-release versions, newer versions, and available patches. ๐๐โ ๏ธ
- Auto-Updater: Configuration files automatically update when you install a newer plugin version. Additionally, you can automatically download the latest
-
Smart Schedulers: Automatically selects the most suitable scheduler based on the server engine and available scheduling APIs, ensuring compatibility across supported platforms such as Paper, Folia, and other supported server implementations. โ๏ธ๐ง ๐
-
AutoLogin Premium: Automatic login system for premium accounts: ๐๐ค๐ป
- FULL Mode: Secure, complete Minecraft/Mojang session authentication handshake (requires ProtocolLib or PacketEvents depending on the selected backend configuration). ๐โ
- MINI Mode: Prototype mode that checks nickname existence in Mojang database without full authentication, allowing cracked logins with that nickname without a password. ๐งช๐
-
Password Recovery: Using the PIN as a separate source of authentication confirmation, you can reset your password yourself. ๐๐๐๐ก๏ธ
-
Security Reminders: Periodically reminds players to boost their account security by enabling 2FA or setting up a recovery PIN. ๐๐ก๏ธโฐ๐ข
๐ ๏ธ Commands & Permissions
| Command | Description | Permission |
|---|---|---|
/register <pass> <repeat> |
Register a new account ๐ | None |
/login <pass> |
Log into the server ๐ | None |
/logout |
Log out of the server โก๏ธ | None |
/pin <set> <PIN/Automatically> |
Generates a random PIN or requires manual entry (Depending on configuration) โก๏ธ | None |
/changepassword <old> <new> <repeat> |
Change your current password ๐ | None |
/2fa <setup/unsetup/code> |
Manage and verify your 2FA security ๐ฑ | None |
/forgotpass <PIN> |
Resets password using pin ๐๐ | None |
/account <player> |
View advanced account stats (UUID, IP, 2FA, dates) ๐ | astralogin.account |
/accountslist |
View all AstraLogin accounts ๐ฅ | astralogin.accountslist |
/resetpassword <player> |
Deletes a player's password โ | astralogin.resetpassword |
/resetip <player> |
Resets the player's IP address ๐ | astralogin.resetip |
/resetpin <player> |
Resets the player's PIN ๐โ | astralogin.resetpin |
/reset2fa <player> |
Resets a player's 2FA ๐ | astralogin.reset2fa |
/resetaccount <player> |
Wipes all player data (password, IP, location, 2FA eg.) โ ๏ธ | astralogin.resetaccount |
/moveaccount <old player> <new player> |
Transfers all AstraLogin player data to another account โถ๏ธ | astralogin.moveaccount |
/loginspawn <setspawn/delspawn> <before_login/after_login> |
Sets and removes the selected login spawn ๐บ๏ธ | astralogin.spawn.setspawn, astralogin.spawn.delspawn |
/astralogin reload |
Reloads the plugin configuration โ๏ธ | astralogin.reload |
/astralogin update |
Downloads the latest version from Modrinth to the server's update folder ๐ฅ |
astralogin.update |
/iptrust <info/set/reset> <IP> <score> |
Shows IP reputation, resets, and sets ๐๐ | astralogin.iptrust.info, astralogin.iptrust.set, astralogin.iptrust.reset |
/iplist |
Shows all IP bans ๐๐ก๏ธ | astralogin.iplist |
/ipmanager <info/unban/bypass/unbypass> <player> |
Manage IP bans and bypass status for players ๐๐ก๏ธ | astralogin.ipmanager.info, astralogin.ipmanager.unban, astralogin.ipmanager.bypass, astralogin.ipmanager.unbypass |
Other Permissions:
astralogin.updateโ Receive a notification when a new version is available and access plugin auto-updates. ๐ก๐astralogin.alertsโ Sends alerts about suspicious player activity ๐๐๏ธ
๐ฅ Installation
- Download the
.jarfile from Modrinth. ๐ฅ - Drop it into your
pluginsfolder. ๐ - Restart your server. ๐
- Customize your messages in the languages folder and settings in
config.yml. ๐โ๏ธ
๐ ๏ธ Other Projects
- ๐ก๏ธ AstraRedstoneSystems Check out my other plugin! It's an advanced redstone mechanics system with number gates and more!
Links ๐พ
GitHub AstraLogin: GitHub ๐ฅ๏ธ
๐ Support & Community
If you need help, want to report a bug, or follow the development by DawcoU, join our official Discord community:
๐ Join our Discord Server ๐ฌ๐ฅ
๐ฆ AstraLogin API & Events (JitPack)
You can easily use AstraLogin as a dependency in your own projects using JitPack.
โ ๏ธ Note: The API and Custom Events are available starting from v4.6.0 and newer. Versions below
v4.6.0do not support the API. ReplaceTagin the examples below with a specific version tag from AstraLogin GitHub Releases / Tags (e.g.,v4.6.0).
โ๏ธ API Licensing Exception: The API interfaces and classes are exempt from the main project's strict ARR (All Rights Reserved) license. You are fully authorized and legally safe to develop companion plugins, extensions, or helper tools (such as small utilities checking login status or 2FA) that hook into AstraLogin's API without violating terms! ๐โจ
Gradle (build.gradle)
repositories {
mavenCentral()
maven { url = 'https://jitpack.io' }
}
dependencies {
compileOnly 'com.github.DawcoU:AstraLogin:Tag'
}
Maven (pom.xml)
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.github.DawcoU</groupId>
<artifactId>AstraLogin</artifactId>
<version>Tag</version>
<scope>provided</scope>
</dependency>
</dependencies>
๐ป Example 1: Basic API Access
import org.bukkit.Bukkit;
import org.bukkit.plugin.RegisteredServiceProvider;
import pl.dawcou.astralogin.api.AstraLoginAPI;
import java.util.UUID;
public class ExamplePlugin {
private AstraLoginAPI api;
public void loadApi() {
RegisteredServiceProvider<AstraLoginAPI> provider =
Bukkit.getServicesManager().getRegistration(AstraLoginAPI.class);
if (provider != null) {
this.api = provider.getProvider();
}
}
public boolean isPlayerAuthenticated(UUID uuid) {
return api != null && api.isLogged(uuid);
}
}
๐ Example 2: Listening to AstraLogin Events
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import pl.dawcou.astralogin.api.events.PlayerLoginEvent;
public class CustomLoginListener implements Listener {
@EventHandler
public void onPlayerLogin(PlayerLoginEvent event) {
// Retrieve parameters provided by AstraLoginEvent
Player player = event.getPlayer();
String ip = event.getIp();
long timestamp = event.getTimestamp();
// Perform custom action on successful login
player.sendMessage("Welcome back! Successfully logged in from IP: " + ip);
// Example: Check or cancel event status if needed (since PlayerLoginEvent implements Cancellable)
if (event.isCancelled()) {
return;
}
}
}


