Events API
Events API - Planning and development stage
The aim of this API is to make it much easier for plugin creators to make their own event plugins that attach to some simpler events, such as when a player is killed by another player specifically in the same event, as well as making it easier for server owners to configure their events, and also allowing events to link together for some things like stat collection or player entry (preventing players from being in more than one). It can also provide some callable functions such as ending the event (with winners or a tie), defining teams (with colours), and announcing messages about it's state globally (such as the winners of the last game).Main goals
- Centralized method of allowing players to join or leave an event
- Ability for events to get data from other events (such as entrants in that event)
- Simpler methods for plugin developers to make statistics (if they choose to)
- Easier for plugin developers to create their own events (all the loading, saving, and player management is done by the API)
Other planned features
- Ability to view stats for all events for a particular player
- Leaderboards for various stats such as total event wins or kills in event X
- Ability to list everyone currently in an event, and which event that is
- Option to allow spectators in an event, which would be completely handled by the API
- Option to restrict an event to people with a permission node
- Functions to allow registering commands within the /event command to avoid conflict with common command names, such as /join
Planned permissions
- events.toggle - Allow turning an event on/off and restarting it
Planned configuration
Most of the config settings would be handled by the events themselves, but the following things would be handled by the API:- Stating if an event should be enabled or not
- Database settings for the statistics on players
- Option to enable 'high frequency' statistic tracking, such as damage dealt and received
- Custom formatting for the sign, in the form of 4 lines where %name% is replaced with the event name
As part of the API, I will also release some plugins using it so server owners and plugin developers can see exactly how it will work. All my plugins are open-source, so developers can modify them to make any improvements they want, like adding an event call they need from the API, or fixing some game logic inside one of the PvP events. I will be looking into a way for developers using this API to have a way for server owners to easily find their plugins, which right now seems like linking their plugins in a section or page on this plugin.
Plugin progress checklist
- Create a basic plugin that has a simple API for stat reporting only
- Create one or more test plugins using that API to make sure it works ok
- Add all API calls I can think of that would be needed by plugins using it
- Add stuff to manage players joining the events and events starting/ending (events themselves manage what players are in it)
- Add signs to allow joining an event by right-clicking it
- Make a test event plugin to make sure the API works ok, and to see if any additions are needed
- Make a fully working PvP event using my API and release both together
Planning Because you can't make java plugin?