Basics of Spigot Server Plugin Development - nsporillo/GlobalWarming GitHub Wiki
Note: This is not an exhaustive guide, only a small collection of things I think are most relevant to this project's development.
Resources
Event Based
- Plugins use EventListeners to interface with in-game player/entity/world actions
Main Thread
- As noted in Common Mistakes, you should not execute non-threadsafe methods in non-main threads.
- This creates real limitations for what is reasonably possible in Minecraft. Creativity is required to distribute the load of expensive tasks so the server performance does not tank.
Performance
- Server performance is mission critical. The server main thread must not be blocked for a long period of time.
- Performance is measured by Ticks Per Second (TPS). There should be 20 ticks for every 1 second.
- Whenever the TPS dips below 20, the players will notice server lag and complain.