Notice: This will not keep your aternos server always running, this plugin is to help servers keep players connecting whilst minecraft authentication servers are down.
This plugin will NOT help you when you first install it when mojang servers are offline, it must be installed when they are online!
Overview
Hate mojang servers being offline? Same with me. So to resolve this issue, I have created AlwaysOnline. A plugin that keeps your bukkit, spigot, paper or bungeecord server online while mojang is offline.
How it works
The plugin is set to a repeating task with a configurable delay, to see if the session servers are offline. If they are, the plugin will go into mojang offline mode. When in this mode, the server will allow players to login if their ip matches from their last authenticated login. If they don't match, it denies them from logging in. The plugin will also deny new players from joining if the mojang authentication servers are down.
Works with: Bungeecord, Velocity, Spigot, Paper, Bukkit
Features
-
Stores last authenticated data in a FlatFile type database or MySQL
-
UUIDs will not be cracked, but instead premium. This means that player UUIDs will always be consistent.
-
Doesn't rely on any third party services
-
Compatible with most bukkit, spigot, paper & bungee plugins
-
Lightweight and efficient
-
No libraries required
-
Works with all bungeecord versions
-
Works with bukkit, spigot, paper versions
-
It's free!
Commands
-
/alwaysonline toggle - Manually toggle between mojang offline mode and back.
-
/alwaysonline enable - Makes the plugin check to see if the mojang servers are offline.
-
/alwaysonline disable - Makes the plugin stop checking to see if the mojang servers are offline.
-
/alwaysonline reload - Reloads the configuration file.
Permission node for all of these commands is alwaysonline.usage
Permissions
alwaysonline.notify - Players with this permission node will be alerted when the mojang servers go online or offline.
Configuration file
#Welcome to the AlwaysOnline main configuration file!
#The delay to wait between checking to see if mojang is online, in seconds.
check-interval=60
#Message for the MOTD to be when mojang servers are offline. Set to 'null' to disable.
message-motd-offline=&eMojang servers are down,\n&ebut you can still connect!
#The message to display when a user attempts to login while the mojang servers are offline, but their IP does not match.
message-kick-ip=We can not let you join since you are not on the same computer you logged on before!
#The message to display when a user is new and logs in while mojang servers are offline.
message-kick-new=We can not let you join because the mojang servers are offline!
#The message to display when a user attempts to login with an invalid minecraft username.
message-kick-invalid=Invalid username. Hacking?
#The message to display when mojang servers go offline. Set to null to disable.
message-mojang-offline=&5[&2AlwaysOnline&5]&a Mojang servers are now offline!
#The message to display when mojang servers go back online. Set to null to disable.
message-mojang-online=&5[&2AlwaysOnline&5]&a Mojang servers are now online!
#Below are three session server check methods which can be used to determine if mojang is online or not.
#For example, if http-head-session-server is true AND mojang-server-status is also true, then the plugin will
#only go into mojang offline mode if both services claim the session servers are offline.
#Uses the status information located at https://sessionserver.mojang.com/
http-head-session-server=true
##########################################
# Mysql Database Information
# Only edit if using mysql
##########################################
use_mysql=false
host=127.0.0.1
port=3306
database-name=minecraft
database-username=root
database-password=password
#Please do not change this!
config_version=5
The following information is sent to bstats.org:
- A unique identifier
- The server's Java version
- Whether the server is on online or offline mode.
- The plugin's version
- The server's version
- The OS' version, name, and architecture
- The core count of the CPU
- The number of players online
- The Metrics version
Opting out of this service can be done by disabling Metrics globally by editing the bStats's configuration file.
All Versions
+ Add VersionJust swap in the new jar and restart. No config changes needed.
- If you upgraded to 6.4.0 and your messages contained decorative characters (for example the fullwidth brackets 【 】), they were saved garbled during the config.properties import. 6.4.1 repairs them automatically on its first start and writes the corrected config.yml back; the log tells you how many messages were fixed. Nothing else in the file is touched.
- Upgrading straight from 6.3.x now imports config.properties with the correct character encoding, so this cannot happen again.
- Only the player-facing and notification messages are repaired. Webhook URLs, tokens, chat ids, console commands and database settings are never modified.
- Your existing config.properties is imported automatically the first time 6.4.0 starts. Every value is carried across and the old file is renamed to config.properties.old, so there is nothing to do by hand.
- Options added in a release now appear in your config.yml with their defaults instead of staying invisible until you delete the file. This is why the Discord webhook and the other notification settings that shipped in 6.3.5 never showed up on existing servers.
- Kick messages support the placeholders {player}, {player_ip} and {last_ip}, so a denied player can be told which address they connected from and which one the server remembers.
- Fixed a crash in the Mojang status check. When the session server replied with a plain-text error page instead of JSON it threw an exception, which was noisy on Velocity and, more importantly, skipped that check entirely, so an outage of that shape would not have switched the server into offline mode.
- A config.yml that cannot be read is moved aside and replaced with a working one rather than stopping the plugin from loading.
- Added generic webhook, Telegram, push, and command notifications

