Add GameMode enum and PlayerGameModeChangeEvent

A gamemode change is issued from survival to creative, lets assume by vanilla.

The event gets fired due to the gamemode changing.

Plugin A listens and allows the event.

Plugin B attempts to set the gamemode to a new gamemode.

Plugin A never sees the change to the new gamemode.

Should this trigger a gamemode change event? probably.

If you allow the setGamemode it is possible for gamemode changes to slip by without the event being fired, preventing plugins earlier in the chain from stopping a gamemode change to one they wern't expecting.