Compatibility
Minecraft: Java Edition
Platforms
Supported environments
90% of ad revenue goes to creators
Support creators and Modrinth ad-free with Modrinth+Creators
Details
Overview
ATHENA is an easy-to-use and informative event debugger for server owners and plugin developers alike, with aims at being end-user friendly and robust.
Requirements
- Java 16
- Minecraft 1.17 or newer
- Paper, or any of its forks.
Commands
/athena listen <Event Name>
- start listening to a specific event. If this fails, you need to include the full package./athena listeners <Event Name|Plugin>
- lists all the plugins listening to a given event, or all of the active listeners in a given plugin./athena stop [Event Name]
- stops listening to a specific event, or all of them if you specify nothing./athena lookup <Command>
- finds the source of a command, as well as its permission to run.
Permissions
athena.command.stop
- access to/athena stop
.athena.command.lookup
- access to/athena lookup
.athena.command.listen
- access to/athena listen
.athena.command.listeners
- access to/athena listeners
.
Important notes and disclaimers
ATHENA is made with usability, stability and detail in mind. However, performance is not necessarily a priority with the plugin. Whilst I have applied the majority of my knowledge to make the plugin as optimised as possible, it is not recommended to run ATHENA when you don't need it. The plugin uses a considerable amount of reflection to function and collect data from events, which in itself can take a hit on performance. In addition, whilst ATHENA does not (or at least tries to not) interfere with individual plugin listeners, it may have an impact on how optimised they may appear in Paper's Timings. If you are measuring event performance using Timings and ATHENA, it is recommended to take separate measurements (e.g. /timings paste first, then use ATHENA to see completion times on one occasion).
If you are a server owner measuring listener durations, you should only be concerned about performance if a single listener exceeds 40ms of completion time. A single tick in Minecraft takes 50ms, hence why 20 TPS is an important number to aim for in servers. Please do not nag plugin developers if their listeners' time simply takes the longest; some plugins need to carry out more tasks than others. In addition, a spark/profiling report as well as timings may be more helpful than a single snippet from ATHENA.
If ATHENA is unable to listen to a specific event or crashes when you attempt to do so, please open an issue with the event. If it is an event from a plugin, please send the class of the event where possible.
If ATHENA experiences an error, it should still let the listeners it has control over run so it should not have an impact on other plugins' functionality.
Events that execute asynchronously may not be able to pick up the plugin source.
PRs and suggestions on how to improve the plugin - including its performance - are more than welcome.