Extracting base event "types" into interfaces

`BlockEvent` interface may be combined with any other event interface
rather than limiting child classes to being of one type.

Modifying state events to match the new structure.
Merge pull request #52 from prism/event-interfaces

Extracting base event "types" into interfaces
Add JSR 305 for @nullable support
Initial commit of Vector{3/2}{i/f/d} interfaces

Based on flow-math stuff
Document the Vector classes
Merge branch 'math'
We now have vector classes, use these instead of adding location classes
Cleanup/Enforce Game object on Event

Signed-off-by: Chris Sanders <zidane@outlook.com>
Add simple GameRegistry interface

Remove un-needed exception
Add getting an identifier by obj

Signed-off-by: Chris Sanders <zidane@outlook.com>
Add .checkstyle to .gitignore
Adding entity/player event interfaces

Adding a base event interface for both `Entity` and `Player`
Ignore .nb-gradle folder
Add collection of online players, max number of players, and a getPlayer method to `Game`
Add Damageable class with basic methods
Add AsyncPlayerChatEvent
Event hooks ignore cancelled events by default
Add CONTRIBUTING.md, Update README.md
Merge pull request #73 from jacklin213/documentation

Add CONTRIBUTING.md, Update README.md
Merge pull request #67 from Marenwynn/master

Event hooks ignore cancelled events by default