Sueta

AstraLogin

4.6.0-beta2

Efficient and modern login system ๐Ÿ”’๐Ÿ›ก๏ธ

ยทPlugin
Tested MC versions
1.18, 1.19, 1.20, 1.21, 26.1, 26.2, 26.3

๐ŸŒŒ 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.


๐Ÿš€ 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 logs folder 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 .jar file from Modrinth directly into the server's update folder 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. ๐Ÿ›œ๐Ÿ””โš ๏ธ

  • 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

CommandDescriptionPermission
/register <pass> <repeat>Register a new account ๐Ÿ”None
/login <pass>Log into the server ๐Ÿ”‘None
/logoutLog 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
/accountslistView 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) โš ๏ธ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 reloadReloads the plugin configuration โš™๏ธastralogin.reload
/astralogin updateDownloads 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
/iplistShows 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

  1. Download the .jar file from Modrinth. ๐Ÿ“ฅ
  2. Drop it into your plugins folder. ๐Ÿ“‚
  3. Restart your server. ๐Ÿ”„
  4. 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.0 do not support the API.
Replace Tag in 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;
        }
    }
}

Similar projects

Plugin โ†’