ATHENA

ATHENA

Plugin

An extensive and robust event debugger for Paper

Server ManagementUtility

163 downloads
2 followers
Created2 years ago
Updated2 years ago

Follow Save
Host your Minecraft server on BisectHosting - get 25% off your first month with code MODRINTH.

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.

External resources



Project members

Thatsmusic99

Owner


Technical information

License
GPL-3.0-only
Project ID