Work on events and causes

Just a small sample of work, however I hope it follows this projects goals. Please confirm @MazenMC 
not sure what the devs have to say but i feel like this could just be getCause() (same goes for PlayerDeathEvent and PlayerDisconnectEvent)