ServerUtils - [Spigot/Bungee/Velocity] Manage plugins in-game! icon

ServerUtils - [Spigot/Bungee/Velocity] Manage plugins in-game! -----

Reload plugins - Unload unused commands - PluginWatcher - Command/PluginInfo - Automatic Updater



[​IMG]
[​IMG]
[​IMG]
  • Spigot/Paper, BungeeCord/Waterfall and Velocity compatible!
  • Replaces (you can disable this) the /pl and /plugins (bukkit) commands with a customisable message plugins version. Adding the -v tag will add all versions to the output! Please note: the commands /bukkit:pl and /bukkit:plugins are not replaced, so you can still use those!
  • A neat configurable /bpl plugins command for bungeecord! Use the -v flag to output the versions of the plugin and -m flag to also include modules in the plugin list (e.g. cmd_send.jar, cmd_server.jar etc.)
  • Reload plugins on the fly with /su (load/reload/unload)plugin <plugin>! (BungeeCord: the main command is /bsu) Supports tabcomplete to quickly load new plugins from a jar in your plugins folder :)
  • Watch plugin files for changes and automatically reload them! /su watchplugin!
  • Unloading unused commands (spigot/paper): You can define in the config commands which will be unloaded by ServerUtils at boot. These commands will not be accessible anymore to any in-game player, nor the console.
  • Reloading plugins and cleaning things up, like their PluginClassLoader and their recipes, recipe cleanup only works 1.12+, as below those versions a plugin is not associated with a recipe, so there's no way ServerUtils can know a recipe belongs to a plugin.
  • ServerUtils can also fully unload/reload itself! Take that, plugman!
  • Reload commands.yml on the fly without performing a whole reload or restart on the server! Useful to quickly make aliases :) Please note: currently, this only works on 1.8 - 1.16.
  • Reload the bukkit configuration on the fly without performing a whole reload or restart on the server! Please note: some configuration options may not be reloaded, please contact me if you think this is an error. Spigot/Paper configs are not reloaded, you can reload those with /paper reload or /spigot reload. Please note: currently, this only works on 1.8 - 1.16.
  • Automatic updater. The plugin can be configured to automatically download & install new updates of the plugin on server boot or when updates are checked. This feature is disabled by default, but can be precisely configured per config.
  • Plugins can listen for changes! ServerUtils offers an event API which can notify plugins precisely what component has been loaded, enabled, disabled or unloaded -- all with a Pre and Post stage. Please take a look at the Bukkit and Bungee events!
Load stages of a plugin (Spigot/Paper):
To understand the difference between loading / enabling / disabling / unloading of plugins, I will describe the load stages below:

Fully loading a plugin (like at startup):
1. First, the plugin is loaded from a .jar file from the plugins directory. This is called loading of a plugin. The plugin is now "red" in the /plugin list, because it is not yet enabled.
2. At the second step, a plugin is enabled. This causes the plugin to spit all sorts of things in the console (which the developer found important to notify you about at startup), like database connections being setup etc.

Fully disabling a plugin (like closing the server)
1. First the plugin is disabled. This causes the plugin to lose all of it's features, like commands, event listeners, etc. After disabling, the plugin is still loaded in memory, but it is seen "red" in the /plugin list.
2. Then the plugin will be unloaded from the memory, so the plugin won't appear at all anymore in the /plugin list.

Please note that reloading may not be compatible with each and every plugin! Plugins which depend on a reloaded plugin, are likely to be error-prone for reloading. Improper cleanup, or improper startup practises may break plugin (re/un)loading as well. Please be careful!

[​IMG]
[​IMG]

[​IMG]
Help command:

Screenshot 2020-06-11 at 12.17.06.png

Load plugins from the plugin folder:

Screenshot 2020-06-02 at 21.18.13.png

Reload configurations:
Screenshot 2020-06-02 at 21.19.16.png

When reloading configurations, console output in-game!
Screenshot 2020-06-06 at 13.18.58.png

Customisable plugin list message (with versions)!
Screenshot 2020-06-11 at 12.22.08.png

Information about loaded plugins:
Screenshot 2020-06-07 at 17.47.54.png

Information about commands:
Screenshot 2020-06-09 at 21.06.49.png


[​IMG]
For BungeeCord, the main command is /bsu, and the plugin list is /bpl.
For Velocity, the main command is /vsu, and the plugin list is /vpl.
The commands can be changed in the commands config.

/su
(Shows a help page with a few commands ) [serverutils.help ]
/su help (
Shows a help page with a few commands ) [serverutils.help ]
/su reload (
Reloads the ServerUtils plugin ) [serverutils.reload ]
/su restart (
Restarts the ServerUtils plugin, by fully unloading and loading itself ) [serverutils.restart ]
/su reloadconfig (
Reloads individual Server configurations ) [serverutils.reloadconfig ] Please note: currently, this only works on 1.8 - 1.16.
/su loadplugin (Loads and enables the specified jar file as a plugin ) [serverutils.loadplugin ]
/su unloadplugin (
Unloads the specified plugin ) [serverutils.unloadplugin ]
/su enableplugin (
Enables the specified plugin ) [serverutils.enableplugin ]
/su disableplugin (
Disables the specified plugin ) [serverutils.disableplugin ]
/su plugininfo (
Shows information about the specified plugin ) [serverutils.plugininfo ]
/
su commandinfo (
Shows information about the specified command ) [serverutils.commandinfo ]
/su reloadplugin (
Reloads a specified plugin ) [serverutils.reloadplugin ]
/su watchplugin (
Watches the specified plugin for changes. ) [serverutils.watchplugin ]
/su unwatchplugin (
Stops watching the specified plugin for changes. ) [serverutils.watchplugin ]
/pl (
Shows the plugins of this server ) [serverutils.plugins ]
/pl -v (
Shows the plugins of this server with version ) [serverutils.plugins.version ]

Update notifications: [serverutils.notification.update ]

[​IMG]
The following configurations are shown for the bukkit version of the plugin, however, the BungeeCord & Velocity version is almost identical to these.
Code (YAML):
config-version : 1
settings
:
  disable-plugins-command
: false
  check-updates-boot
: true
  check-updates-login
: false
  download-updates-boot
: false
  download-updates-login
: false
  install-updates-boot
: false
  install-updates-login
: false [/COLOR ]
disabled-commands
: [ ]
unload-after-startup
:
  delay-ticks
: 20
  plugins
: [ ]
hide-plugins-from-plugins-command
: [ ]
protected-plugins
: [ ]
Code (YAML):
config-version : 1
messages
:
  generic
:
    prefix
: <aqua><bold>ServerUtils <dark_gray><bold>»<reset> <gray>
    error
: <red>An error occurred, please check the console!
    not-exists
: <red>Plugin <dark_red><plugin></dark_red> does not exist!
    not-enabled
: <red>Plugin <dark_red><plugin></dark_red> is not enabled!
    already-loaded
: <red>Plugin <dark_red><plugin></dark_red> is already loaded!
    already-enabled
: <red>Plugin <dark_red><plugin></dark_red> is already enabled!
    already-disabled
: <red>Plugin <dark_red><plugin></dark_red> is already disabled!
    invalid-plugin
: <red>Plugin <dark_red><plugin></dark_red> is invalid!
    invalid-description
: <red>Plugin <dark_red><plugin></dark_red> has an invalid
      plugin description!
    unknown-dependency
: '<red>Plugin <dark_red><plugin></dark_red> has an unknown
      dependency
: <dark_red><dependency><red>!'
    file-deleted
: <red>File of plugin <dark_red><plugin></dark_red> has been deleted!
    protected-plugin
: <red>Plugin <dark_red><plugin></dark_red> is protected!
  reload
: <dark_aqua>Successfully reloaded <aqua>ServerUtils configurations</aqua>!
  serverutils-updater
: <dark_aqua>Loaded and enabled ServerUtilsUpdater. Completion
    can be monitored from the console, attempting restart now ...
  loadplugin
: <dark_aqua>Successfully loaded <aqua><plugin></aqua>!
  unloadplugin
: <dark_aqua>Successfully unloaded <aqua><plugin></aqua>!
  reloadplugin
:
    success
: <dark_aqua>Successfully reloaded <aqua><plugin></aqua>!
    serverutils
: <red>Sorry, but you can't reload ServerUtils this way. Please restart
      using <dark_red>/<command></dark_red>.
  depending-plugins
:
    prefix
: '<red>Plugin <dark_red><plugin></dark_red> has depending plugins : '
    format
: <dark_red><plugin>
    separator
: '<red>, '
    last-separator
: ' <red>and '
    override
: <red>Use "<dark_red>/<command></dark_red>" to force command execution.
  watchplugin
:
    start
: <dark_aqua>Started watching <aqua><plugin></aqua>!
    change
: <dark_aqua>Changes detected, reloading plugins now ...
    stopped
: <dark_aqua>Stopped watching <aqua><plugin></aqua>!
    file-deleted
: <red>File of plugin <dark_red><plugin></dark_red> has been deleted!
      Waiting for plugin to show up ...
    deleted-file-is-created
: <dark_aqua>File of plugin <aqua><plugin></aqua> has shown
      up again!
    already-watching
: <red>You are already watching <dark_red><plugin></dark_red>!
    not-watching
: <red>You are not watching <dark_red><plugin></dark_red>!
  update
:
    available
: |-
      <dark_gray><strikethrough> ------------=<reset><dark_gray> [ <aqua><bold>ServerUtils Update<reset> <dark_gray> ]<strikethrough>= --------------
       <dark_aqua>Current version
: <aqua><old>
       <dark_aqua>New version
: <aqua><new>
       <dark_aqua>Release info
: <aqua><info >
     <dark_gray><strikethrough> -------------------------------------------------
    downloading
: |-
      <dark_gray><strikethrough> ------------=<reset><dark_gray> [ <aqua><bold>ServerUtils Update<reset> <dark_gray> ]<strikethrough>= --------------
       <dark_aqua>A new version of ServerUtils will be downloaded and installed after a restart!
       <dark_aqua>Current version
: <aqua><old>
       <dark_aqua>New version
: <aqua><new>
       <dark_aqua>Release info
: <aqua><info >
     <dark_gray><strikethrough> -------------------------------------------------
    download-failed
: <red>Failed to download version <new> of ServerUtils. Please
      update manually.
    download-success
: <dark_aqua>ServerUtils has been downloaded and will be installed
      on the next restart.
  help
:
    header
: <dark_gray><strikethrough> -------------=<reset><dark_gray> [ <aqua><bold>ServerUtils
      Help<reset> <dark_gray> ]<strikethrough>= ---------------
    format
: <dark_gray>/<dark_aqua><command> <dark_gray> (<aqua><help><dark_gray> )
    footer
: <dark_gray><strikethrough> -------------------------------------------------
  plugins
:
    header
: <dark_gray><strikethrough> ------------=<reset><dark_gray> [ <aqua><bold>ServerUtils
      Plugins<reset> <dark_gray> ]<strikethrough>= -------------
    prefix
: ' <dark_aqua>Plugins <dark_gray> (<green><count><dark_gray> )<aqua> : '
    format
: <dark_aqua><plugin>
    format-disabled
: <red><plugin>
    separator
: '<aqua>, '
    last-separator
: ' <aqua>and '
    version
: ' <dark_gray> (<green><version><dark_gray> )'
    footer
: <dark_gray><strikethrough> -------------------------------------------------
  plugininfo
:
    header
: <dark_gray><strikethrough> -----------=<reset><dark_gray> [ <aqua><bold>ServerUtils
      PluginInfo<reset> <dark_gray> ]<strikethrough>= -----------
    format
: ' <dark_aqua><key><dark_gray> : <aqua><value>'
    list-format
: <aqua><value>
    list-separator
: '<dark_gray>, '
    list-last-separator
: ' <dark_gray>and '
    footer
: <dark_gray><strikethrough> -------------------------------------------------
  commandinfo
:
    header
: <dark_gray><strikethrough> -----------=<reset><dark_gray> [ <aqua><bold>ServerUtils
      CommandInfo<reset> <dark_gray> ]<strikethrough>= ----------
    format
: ' <dark_aqua><key><dark_gray> : <aqua><value>'
    list-format
: <aqua><value>
    list-separator
: '<dark_gray>, '
    list-last-separator
: ' <dark_gray>and '
    footer
: <dark_gray><strikethrough> -------------------------------------------------
    not-exists
: <red>That command is not a valid registered command.
  reloadconfig
:
    success
: <dark_aqua>Successfully reloaded <aqua><config></aqua>!
    warnings
: <red>There were warnings while reloading <dark_red><config></dark_red>,
      please check the console!
    not-exists
: <red>Config <dark_red><config></dark_red> does not exist.
    not-supported
: <red>Config <dark_red><config></dark_red> is not supported on your
      Minecraft version.
  disableplugin
: <dark_aqua>Successfully disabled <aqua><plugin></aqua>!
  enableplugin
: <dark_aqua>Successfully enabled <aqua><plugin></aqua>
Code (YAML):
config-version : 1
commands
:
  plugins
:
    main
: ' %prefix%plugins'
    aliases
:
   - ' %prefix%pl'
    permission
: serverutils.plugins
    description
: Displays the enabled plugins.
    display-in-help
: true
    flags
:
      version
:
        main
: version
        aliases
:
       - v
        permission
: serverutils.plugins.version
        description
: Displays the plugin versions.
        display-in-help
: true
  serverutils
:
    main
: ' %prefix%serverutils'
    aliases
:
   - ' %prefix%su'
    permission
: serverutils.help
    display-in-help
: false
    subcommands
:
      help
:
        main
: help
        aliases
: [ ]
        permission
: serverutils.help
        description
: Displays the help page.
        display-in-help
: true
      reload
:
        main
: reload
        aliases
: [ ]
        permission
: serverutils.reload
        description
: Reloads the ServerUtils plugin.
        display-in-help
: true
      restart
:
        main
: restart
        aliases
: [ ]
        permission
: serverutils.restart
        description
: Restart the ServerUtils plugin.
        display-in-help
: true
        flags
:
          force
:
            main
: force
            aliases
:
           - f
            permission
: serverutils.restart
            description
: Force restart of the ServerUtils plugin.
            display-in-help
: false
      loadplugin
:
        main
: loadplugin
        aliases
:
       - lp
        permission
: serverutils.loadplugin
        description
: Loads the specified jar file (s ).
        display-in-help
: true
      unloadplugin
:
        main
: unloadplugin
        aliases
:
       - up
        permission
: serverutils.unloadplugin
        description
: Disables and unloads the specified plugin (s ).
        display-in-help
: true
        flags
:
          force
:
            main
: force
            aliases
:
           - f
            permission
: serverutils.unloadplugin
            description
: Force disable and unload the specified plugin (s ).
            display-in-help
: false
      reloadplugin
:
        main
: reloadplugin
        aliases
:
       - rp
        permission
: serverutils.reloadplugin
        description
: Reloads the specified plugin (s ).
        display-in-help
: true
        flags
:
          force
:
            main
: force
            aliases
:
           - f
            permission
: serverutils.reloadplugin
            description
: Force reloads the specified plugin (s ).
            display-in-help
: false
      watchplugin
:
        main
: watchplugin
        aliases
:
       - wp
        permission
: serverutils.watchplugin
        description
: Watches the specified plugin (s ) for changes.
        display-in-help
: true
        flags
:
          force
:
            main
: force
            aliases
:
           - f
            permission
: serverutils.watchplugin
            description
: Force watches the specified plugin (s ) for changes.
            display-in-help
: false
      unwatchplugin
:
        main
: unwatchplugin
        aliases
:
       - uwp
        permission
: serverutils.watchplugin
        description
: Stops watching the specified plugin for changes.
        display-in-help
: true
      plugininfo
:
        main
: plugininfo
        aliases
:
       - pi
        permission
: serverutils.plugininfo
        description
: Shows information about the specified plugin.
        display-in-help
: true
      commandinfo
:
        main
: commandinfo
        aliases
:
       - ci
        permission
: serverutils.commandinfo
        description
: Shows information about the specified command.
        display-in-help
: true
      enableplugin
:
        main
: enableplugin
        aliases
:
       - ep
        permission
: serverutils.enableplugin
        description
: Enables the specified plugin (s ).
        display-in-help
: true
      disableplugin
:
        main
: disableplugin
        aliases
:
       - dp
        permission
: serverutils.disableplugin
        description
: Disables the specified plugin (s ).
        display-in-help
: true
        flags
:
          force
:
            main
: force
            aliases
:
           - f
            permission
: serverutils.disableplugin
            description
: Force disables the specified plugin (s ).
            display-in-help
: false
      reloadconfig
:
        main
: reloadconfig
        aliases
:
       - rc
        permission
: serverutils.reloadconfig
        description
: Reloads particular server configurations.

[​IMG]
You can get support at my Discord server, in a PM, GitHub or in the discussions thread of this plugin.

Enjoy! :D
Resource Information
Author:
----------
Total Downloads: 22,738
First Release: Jun 2, 2020
Last Update: Dec 29, 2022
Category: ---------------
All-Time Rating:
35 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings