ATHENA
ATHENA is a convenient and informative event debugging tool designed for both server owners and plugin developers. The main goal of this mod is to provide users with an easy-to-use and reliable tool for event analysis.
System Requirements
- Java 16
- Minecraft version 1.17 or newer
- Paper or any of its forks
Available Commands
/athena listen <Event Name>— starts tracking a specific event. If the command doesn't work, you need to specify the full package name./athena listeners <Event Name|Plugin>— shows a list of all plugins that are tracking the specified event, or all active listeners in a specific plugin./athena stop [Event Name]— stops tracking a specific event or all events if no parameter is specified./athena lookup <Command>— finds the source of a command and the corresponding permissions required to execute it.
Permissions
athena.command.stop— access to the/athena stopcommandathena.command.lookup— access to the/athena lookupcommandathena.command.listen— access to the/athena listencommandathena.command.listeners— access to the/athena listenerscommand
Important Notes
ATHENA is developed with a focus on usability, stability, and detailed information. However, performance is not a priority for this plugin. Although every effort has been made to optimize it, it is not recommended to use ATHENA continuously unless necessary. The plugin actively uses the reflection mechanism to collect event data, which can negatively impact server performance.
Additionally, ATHENA tries not to interfere with the operation of other plugins but may affect their optimization metrics in the Paper Timings monitoring system. If you are measuring event performance using Timings and ATHENA, it is recommended to take separate measurements.
For server owners: you should only be concerned about performance if the execution time of an individual listener exceeds 40 ms. Since one tick in Minecraft takes 50 ms, it's important to maintain a 20 TPS indicator. Don't worry if the execution time of listeners varies between different plugins—this is normal, as some plugins perform more tasks.
If ATHENA cannot track a specific event or an error occurs when attempting to do so, please report the issue, specifying the event name. For events from plugins, it's desirable to provide the event class.
In case of an error, ATHENA will continue working with other listeners, so this should not affect the functionality of other plugins. Events executed asynchronously may not identify the plugin source.
Suggestions for improving the plugin, including performance optimization, are always welcome.