Sueta

RealLogin

1.3

Login plugin with PIN & GUI interaction

·Plugin

RealLogin

Login plugin with PIN & GUI interaction

A lightweight login plugin where players type a PIN on a keypad instead of a password in chat.

Discord | Source Code | Report a Bug


What is RealLogin?

RealLogin asks every player for a PIN when they join. New players pick a PIN on a keypad GUI, and returning players click their PIN in to log in. Until they do, they can't move, chat or use commands, and closing the keypad just opens it again.

Features

  • PIN keypad GUI for registering and logging in, with number heads or plain panes
  • PINs are stored hashed (salted PBKDF2), never as plain text
  • Sessions: a player who rejoins shortly after logging in doesn't need to type the PIN again
  • PIN reset: players can reset their own PIN, and admins can delete anyone's
  • Admin bypass to let a waiting player in without their PIN
  • Login history: the date and IP of each join, shown with /rl info
  • Login and after-login locations to teleport players to
  • Hide inventories until the player logs in (optional)
  • BungeeCord: send players to a lobby server after they log in (optional)
  • On 1.21.6+, a settings editor and confirmations in native dialogs. The keypad always stays an inventory, so a PIN is never shown in a text box as it's typed
  • SQLite (default) or MySQL storage
  • RealPermissions support
  • Fully configurable and translatable YAML config

Before Logging In

While a player hasn't entered their PIN:

  • They can't move, interact, drop items, chat or run commands.
  • They can't be hurt while the keypad is open.
  • Closing the keypad opens it again. The door button kicks them from the server instead.
  • If Hide-Inventories is on, their inventory is emptied and given back when they log in or leave.
Sessions

After a player logs in, they have a session for Max-Session-Time seconds (120 by default). If they rejoin before it runs out, they skip the keypad. The countdown starts when they log in, not when they leave.

Sessions are kept in memory, so a restart ends them. /rl logout ends your own session and shows the keypad again. Set Max-Session-Time to 0 to turn sessions off.

Updating from an older version

PINs saved by older versions in players.yml are moved to the database, hashed, the next time each player joins.

Photos

Login message

PIN registration screen

Login screen

Getting Started

  1. Join the server. The register keypad opens.
  2. Click the numbers of your PIN (at least 2 digits, and no more than Max-Pin-Length, 4 by default). To remove the last digit, press the drop key on any number or right-click the emerald.
  3. Click the emerald to confirm.
  4. Next time you join, click your PIN in. You're logged in as soon as it's right. The lava bucket removes the last digit.
  5. (Optional) Stand where players should wait and run /rl settplogin, then stand where they should go after logging in and run /rl settpafterlogin.

Commands

Base commands: /reallogin, /rl

CommandDescriptionPermission
/rlShows the plugin version and buildNone
/rl logoutEnds your session and asks for your PIN againNone
/rl resetpinDeletes your PIN so you can choose a new one straight awayreallogin.resetpin
/rl reloadReloads the configreallogin.admin
/rl settingsOpens the settings editor (needs 1.21.6+)reallogin.admin
/rl info <player>Shows a player's locale, session, login count, latest logins and last 10 IPsreallogin.admin
/rl bypass <player>Logs in an online player who is waiting at the keypadreallogin.admin
/rl deletepin <player>Deletes a player's PIN; they register a new one when they next joinreallogin.admin
/rl settplogin / /rl settpafterloginSets the login or after-login location to where you standreallogin.admin
/rl tplogin / /rl tpafterloginTeleports you to that locationreallogin.admin
/rl deltplogin / /rl deltpafterloginDeletes that locationreallogin.admin

Permissions

PermissionDescription
reallogin.adminAll admin commands
reallogin.resetpinCan reset their own PIN with /rl resetpin

Requirements

Installation

  1. Put the jar in your plugins folder.
  2. Restart the server.
  3. To use MySQL, set the connection details in plugins/RealLogin/sql.yml and restart.
  4. Edit plugins/RealLogin/config.yml and run /rl reload, or use /rl settings on 1.21.6+.

Need help or found a bug?

Please don't use the comments for bug reports. Get in touch through:

Discord | GitHub Issues

This plugin uses bStats to collect anonymous usage statistics. You can turn this off in plugins/bStats/config.yml.

Similar projects

Plugin →