* Patch consistent application of scoreboard teams
This corrects issues with scoreboard team logic by ensuring NPCs use a consistent internal name, rather than randomizing
* apply team name tag visible=false earlier
* 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).
* Fix npc skin -t argument order
Command input is doc'd as (and should function as) data then signature, but the called method was signature then data... update calls it in correct order. Also, fixes doc to indicate that a name is valid input, not just uuid (not entirely sure how that is handled when sent out in a packet, but it seems to be correct to feed a name)
* Ensure rename command will handle scoreboard changes
Always update prefix/suffix, not just only when team is newly created
Guarantee removal entity from scoreboard team on remove
Also removes a fileheader screwup (first line changed in 1_12_R1 file)
Also removes non-used code bits (the two coloredName lines - they don't actually functionally do anything)
Also removes a duplicated data get call
* patch gamemode command
Uppercase + unique permission node
* patch for names of length 30