EpicPluginLib icon

EpicPluginLib -----

A general library to help use configurations, languages, commands, updates, and reflection.




EpicPluginLib changelog:
  • Add partial support for MC 26.1.2 (no Reflection)
  • Update to yaml-handler 1.5.3
  • Add PathLocker class that allows locks for each path currently being worked on, without the need to call system file locks.
  • Rename ConfigurationLoader to ConfigurationManager (deprecating the previous one), and use PathLocker to lock configuration files while being loaded.
  • ConfigurationManager will load the configurations concurrently in a parallel stream.
  • ConfigurationHolder method names were simplified, deprecating the older ones.
  • Downloader Runnable class was deprecated in favor of using a Callable Downloader class.
  • Downloader class redirect resolver will now detect redirect loops, too many redirects and relative URLs.
  • Version class was deprecated in favor of using maven-artifact's ComparableVersion.
  • Add TaskFactory interface and BukkitTaskFactory, FoliaTaskFactory and SpongeTaskFactory implementations, to simplify use of schedulers across platforms.
  • Deprecate GitHubUpdateChecker and SpigotUpdateChecker in favor of a new GitHubUpdateChecker and a new SpigotUpdateChecker that use TaskFactory for its HTTP requests.
  • Use LURE instead of DURABILITY for GUI item glowing effect.
  • Fix circular static initialization when using PackageType before ReflectionUtil.
  • Add NMSVersion class.
  • Classes extending Command can now be registered in CommandManager.
  • Make isNumeric accept decimal numbers.
    Full Changelog: 2.7...3.0
Yaml-Handler changelog:
  • Add support for comments.
  • Add support for custom serializers.
  • Add support for spigot's ConfigurationSerializable.
  • Add support for NULL values.
  • Rewrite most of the node getting/setting code.
  • Move YamlConfigurationLoader to loaders package.
  • Remove constructor that used the parameter YamlConfigurationLoader from Configuration class, and add one that uses ConfigurationLoader interface instead.
  • Maps will be automatically converted to configuration sections on set.
  • Equals and hashCode from ConfigurationSection will no longer use the Configuration root, and the ones from Configuration will no longer take the file path into account.
  • Add compat module, for plugins that depend on an older version of yaml-handler.
----------, Jun 14, 2026

  • Add support for Folia!
  • Add EpicPluginLib.Platform#isFolia method, to check is server is Folia/a fork of Folia.
  • Fix a vulnerability that would allow players to steal items from GUIs if InventoryOpenEvent was cancelled by another plugin while a GUI was already open. Now every time InventoryCloseEvent is called for EpicPluginLib's GUIs, Player#closeInventory will be called again to ensure the inventory is closed.
  • Clean open GUI inventories once the plugin disables, to prevent players from taking items from anvils (or other inventories that takes items on close) once the server disables/reloads.
  • Move breakLore method to core StringUtils and deprecate breakLore in bukkit InventoryUtils due to no need for bukkit API.
  • Key not found message will actually tell you the key that was not found.
----------, Feb 13, 2024

Fix sendPacket method not working on newer versions.
----------, Jan 20, 2024

Server Owners:
  • Item Lore lines can also be broken with \n now. You can use this example for a more clear lore in your configuration.
Code (YAML):
Item:
  Lore
: |-
    This is the new way to set
    an item's lore. It's much
    easier and you don't need
    to keep adding '<line>'
    everytime you break a line
    anymore.
Developers:
  • Add InventoryUtils#breakLore method, for automatically breaking lines when the words don't fit in a single line.
  • Add EpicPluginLib.Platform#isPaper method, to check if server is Paper/a fork of Paper.
  • Add InputGetterUtils class, for helping to retrieve input from a player when using GUIs.
  • Update GitHub link of update checker.
----------, Oct 25, 2023

Because of SnakeYAML changes, this update will drop support to Spigot versions older than 1.16.5.

  • Add support for Spigot 1.20
  • Add GitHub update checker
  • Add InventoryUtils class, a helper class for creating GUIs easily
  • Made command aliases mutable, add #setAliases method
  • Update to bStats 3.0.1
  • Update to yaml-handler 1.4 with SnakeYAML 2.0
----------, Jun 10, 2023

  • Add ObjectUtils#splitIntoPages utility method.
----------, Jan 19, 2023

Make so sendPacket throws unsupported exception if PlayerConnection#sendPacket could not be found
----------, Nov 3, 2022

  • Add ConsoleLogger#simpleLogger method
  • Fix extra space when you don't specify a logger for bukkit's logger
----------, Oct 8, 2022

Changes:
  • Add message-specific properties, you can now add properties to the start of the message to tell how it's going to behave.
    • Properties are enclosed with <> at the start at the message.
    • The first space of the message will be used to tell there are no other properties.
    • There are 2 currently available properties:
      • <noprefix>: Prevents the prefix from being added to the message.
      • <cooldown=TIME>: Prevents the message from being sent if another message was sent within the specified TIME in milliseconds.
    • Example: '<noprefix><cooldown=5000> This is a message!'
    • The message output will be 'This is a message!', if another message was not sent within 5 seconds.

  • Move most logic of MessageSender to LanguageHolder
----------, Sep 1, 2022

  • Add PathUtils#getDirectory to get a path to a created directory, if a regular file exists in this path, then a different path is used to create a directory.
  • Bukkit's Logger#setLogger now accepts null parameter, to default to bukkit's logger.
  • Optimize PathUtils#getUniquePath.
  • Update available message will go away if you disable "Check for updates" boolean in config.
----------, Jul 16, 2022

  • Add more utility methods to ReflectionUtil.
  • Make ReflectionUtil#sendPacket version independent.
----------, May 11, 2022

  • Add warning when you try to run the lib without bukkit or sponge.
  • Add way of knowing which platform and version of the platform the lib is running on.
  • Rename lib main classes for bukkit and sponge.
  • ZipUtils#zipFiles will copy file attributes when zipping.
----------, Feb 28, 2022

  • Add support for command arguments tab completion
  • Add support for Sponge API version 8.0.0
  • Update bStats to version 3.0.0
----------, Feb 12, 2022

Add support for 1.17 reflection
----------, Dec 3, 2021

  • Add an utility to create or extract zip files.
  • Fix getUniquePath not working for paths without file extensions.
  • Change license to GNU GPLv3
----------, Jun 23, 2021

  • Fix outdated configuration path not being unique, making so if there was already a file in that path an error to be thrown.
----------, Nov 21, 2020

  • Add support for older versions of bukkit
----------, Nov 16, 2020

  • Add min and max versions to restore configurations that have versions out of this range on ConfigLoader.
----------, Nov 9, 2020

  • Add async update checker.
----------, Oct 30, 2020

  • Add a version field so plugins can check EpicPluginLib version before starting.
  • Add platform independant log message level.
  • Add support for yaml-handler v1.3
  • Change sponge initialization time to GameInitializationEvent
  • Implement bStats metrics collecting.
----------, Oct 29, 2020

Warning: This updates breaks the plugins depending on the previous version, make sure they support this version before updating.

Changes:
  • Added an updater that will check for updates when your server starts, if you don't wanna check for updates, you can disable this feature in configuration.
  • Added Version checking API: You can now check for versions greater, lower or equal instead of just greater.
  • Fixed Downloader not redirecting to the final page before downloading, resulting in a corrupted download.
  • Fixed error that configurations could not have defaults before having comments.
  • Sponge Logger now implements ConsoleLogger.
----------, Jun 25, 2020

Resource Information
Author:
----------
Total Downloads: 12,786
First Release: Jun 20, 2020
Last Update: Jun 14, 2026
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings