Skip to main content

Nexal Reload

A development utility that watches the plugins/ folder and loads or reloads plugins the moment their JAR changes, through PlugManX. Drop a freshly built JAR into the folder and it is running a second later, with no manual reload or restart.

Features​

  1. Automatic Reloads - A plugin reloads as soon as its JAR in the plugins folder is modified, e.g. by a build
  2. New Plugin Loading - JARs newly dropped into the plugins folder are loaded automatically (can be turned off)
  3. Renamed Builds - A rebuilt JAR with a new file name (e.g. MyPlugin-1.1.jar next to MyPlugin-1.0.jar) replaces the running plugin instead of loading it twice, and the console reminds you to remove the old JAR
  4. Upload-Safe - Waits until a JAR has stopped changing before using it, so slow copies and SFTP uploads never reload a half-written file
  5. Load Notifications - Admins are told when a plugin loaded or reloaded, and when PlugManX failed to load it
  6. PlugManX Check - When PlugManX is missing, admins are told once and changed JARs wait until it is installed
  7. Exclusion List - Plugins that must never be reloaded automatically; NexalReload excludes itself by default
  8. Pause and Resume - Stop monitoring while you need stability, and pick up waiting changes when you resume
  9. Reload History - The last 20 loads and reloads with their time and file
  10. Status Screen - Monitoring state, monitored JARs, interval and PlugManX availability with one command
  11. Admin GUI - /nexalreload admin opens a menu with the monitor toggle, status, history, a config reload and a Configuration screen for every setting
  12. Configurable Interval - How often the folder is checked; a change applies at once, without a restart
  13. Fully Customizable Messages - Every message, including the status screen, lives in messages.yml with sounds

Technologies​

  • Paper API 1.20.1+ - Minecraft server API (Spigot compatible)
  • Utilizer - Configuration, messages, items, tasks and GUIs
  • ACF - Command framework
  • nexal-core - Help menu and license check
  • PlugManX - Loads, unloads and reloads the plugins

Dependencies​

PluginRequiredPurpose
PlugManXNo (softdepend): nothing is loaded or reloaded without itHandles the actual plugin load, unload and reload

Commands​

Every command needs nexalreload.admin; players without it do not see the command at all.

Aliases: /nrl, /reload

/reload takes over Bukkit's reload command: /reload, /reload status, /reload admin and every other subcommand below work the same as with /nexalreload. Bukkit's own reload command is still available as /bukkit:reload.

Player Commands​

CommandDescriptionPermission
/nexalreloadShow the help menunexalreload.admin
/nexalreload help [page]Show the help menunexalreload.admin
/nexalreload statusView the monitoring state and recent reload historynexalreload.admin

Admin Commands​

CommandDescriptionPermission
/nexalreload adminOpen the admin menu (console: admin help)nexalreload.admin
/nexalreload admin help [page]Show the admin commandsnexalreload.admin
/nexalreload admin reloadReload config.yml and messages.ymlnexalreload.admin
/nexalreload admin pausePause JAR monitoringnexalreload.admin
/nexalreload admin resumeResume JAR monitoringnexalreload.admin

Admin GUI​

ScreenContents
Admin menu (/nexalreload admin)Configuration, JAR Monitoring (pause or resume), Status, Reload History, Reload, Close
ConfigurationMonitor Interval, Auto-Load New JARs, Excluded Plugins, Back, Close
Excluded PluginsEvery loaded or excluded plugin; click to exclude it or monitor it again
Reload HistoryThe last 20 loads and reloads, newest first

Monitor Interval: left click +1, right click -1, shift for +10/-10, between 1 and 1200 ticks. Every change is saved to config.yml and applies at once.

Permissions​

PermissionDescriptionDefault
nexalreload.adminAccess to all NexalReload commands and the admin menu, and receive load and reload notificationsop

Configuration​

config.yml​

# How often to check for JAR file changes (in ticks, 20 ticks = 1 second)
monitor-interval-ticks: 20

# Automatically load new JAR files dropped into the plugins folder
auto-load-new: true

# Plugin names to exclude from monitoring (case-sensitive, matches plugin.yml name)
excluded-plugins:
- NexalReload

A changed interval applies on /nexalreload admin reload, when the file is saved (it is watched), or when changed in the admin menu.

messages.yml​

All messages are fully customizable, with sounds: load and reload notifications, failures, the /nexalreload status screen and admin feedback. Colors use MiniMessage gradients with a blue primary color; the palette is listed at the top of the file for find-and-replace. Messages added in an update work without regenerating the file.

Installation​

  1. Install PlugManX (NexalReload monitors without it, but cannot load or reload anything).
  2. Drop NexalReload-\<version>.jar into your plugins/ folder.
  3. Restart the server. config.yml and messages.yml are created in plugins/NexalReload/.
  4. Build or copy a plugin JAR into plugins/: it is loaded or reloaded within a couple of seconds.

This is a development tool: keep it off production servers, where reloading plugins at runtime can leave them in a broken state.