* Reduce potential for errors with packet teams
Move scoreboard removal out of NMS to event method, and make more unique names
* remove unneeded isCancelled check
* Implement packet-based scoreboard team enforcement
This should fix incompatibility with scoreboard plugins that break the main scoreboard
* impl to 1.8-1.12, move event logic, fix Setting usage
* pull setting if to outside of foreach loop
* fix return vs continue, minor opti as requested
* Improve handling of NPC names, fixes#1640
Moves the logic to a Util method (instead of duplicated in each module), and adds the "prefixColors" portions (replacing just a static 'RESET' code).
If colors and effects are combined, using only the most recent effect is sufficient (eg reapplying bold) as that should produce effectively no change while still having a color code stuck into the name as is needed to break NPCs looking like real players internally.
* Additional NPC name improvement: fix color code splliting
a name consisting of a color code followed by 15 letters would get split in the middle of the color code, rather than around it. This fixes that.
* Fix#1360 - don't missend player spawn packets
Player spawn packets were improperly sent by the Minecraft internals in early NPC spawn sequence, when they are not valid to be sent yet. This patch blocks their sending until the tracker system is pushed onto the NPC. Tested and functional.
* improve long name cutting order, fixes#1422
ensures that root name will always be 16 characters if the given name was too long - previously, the root name could be as small as a single character (for input name of 17 characters).