mirror of
https://github.com/CitizensDev/Citizens2.git
synced 2024-12-23 09:37:35 +01:00
Patch consistent application of scoreboard teams (#2302)
* 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
This commit is contained in:
parent
31409f46e2
commit
a79e8a571a
@ -33,10 +33,6 @@ public class HumanController extends AbstractEntityController {
|
|||||||
final WorldServer nmsWorld = ((CraftWorld) at.getWorld()).getHandle();
|
final WorldServer nmsWorld = ((CraftWorld) at.getWorld()).getHandle();
|
||||||
String coloredName = npc.getFullName();
|
String coloredName = npc.getFullName();
|
||||||
String name = coloredName.length() > 16 ? coloredName.substring(0, 16) : coloredName;
|
String name = coloredName.length() > 16 ? coloredName.substring(0, 16) : coloredName;
|
||||||
if (npc.requiresNameHologram()) {
|
|
||||||
name = npc.getId() + UUID.randomUUID().toString().replace("-", "");
|
|
||||||
name = name.substring(0, 16);
|
|
||||||
}
|
|
||||||
|
|
||||||
UUID uuid = npc.getUniqueId();
|
UUID uuid = npc.getUniqueId();
|
||||||
if (uuid.version() == 4) { // clear version
|
if (uuid.version() == 4) { // clear version
|
||||||
@ -46,6 +42,11 @@ public class HumanController extends AbstractEntityController {
|
|||||||
uuid = new UUID(msb, uuid.getLeastSignificantBits());
|
uuid = new UUID(msb, uuid.getLeastSignificantBits());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String teamName = Util.getTeamName(uuid);
|
||||||
|
if (npc.requiresNameHologram()) {
|
||||||
|
name = teamName;
|
||||||
|
}
|
||||||
|
|
||||||
final GameProfile profile = new GameProfile(uuid, name);
|
final GameProfile profile = new GameProfile(uuid, name);
|
||||||
|
|
||||||
final EntityHumanNPC handle = new EntityHumanNPC(nmsWorld.getServer().getServer(), nmsWorld, profile,
|
final EntityHumanNPC handle = new EntityHumanNPC(nmsWorld.getServer().getServer(), nmsWorld, profile,
|
||||||
@ -67,12 +68,14 @@ public class HumanController extends AbstractEntityController {
|
|||||||
|
|
||||||
if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) {
|
if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) {
|
||||||
Scoreboard scoreboard = Util.getDummyScoreboard();
|
Scoreboard scoreboard = Util.getDummyScoreboard();
|
||||||
String teamName = Util.getTeamName(profile.getId());
|
|
||||||
|
|
||||||
Team team = scoreboard.getTeam(teamName);
|
Team team = scoreboard.getTeam(teamName);
|
||||||
int mode = 2;
|
int mode = 2;
|
||||||
if (team == null) {
|
if (team == null) {
|
||||||
team = scoreboard.registerNewTeam(teamName);
|
team = scoreboard.registerNewTeam(teamName);
|
||||||
|
if (npc.requiresNameHologram()) {
|
||||||
|
team.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.NEVER);
|
||||||
|
}
|
||||||
mode = 0;
|
mode = 0;
|
||||||
}
|
}
|
||||||
team.addPlayer(handle.getBukkitEntity());
|
team.addPlayer(handle.getBukkitEntity());
|
||||||
|
@ -33,10 +33,6 @@ public class HumanController extends AbstractEntityController {
|
|||||||
final WorldServer nmsWorld = ((CraftWorld) at.getWorld()).getHandle();
|
final WorldServer nmsWorld = ((CraftWorld) at.getWorld()).getHandle();
|
||||||
String coloredName = npc.getFullName();
|
String coloredName = npc.getFullName();
|
||||||
String name = coloredName.length() > 16 ? coloredName.substring(0, 16) : coloredName;
|
String name = coloredName.length() > 16 ? coloredName.substring(0, 16) : coloredName;
|
||||||
if (npc.requiresNameHologram()) {
|
|
||||||
name = npc.getId() + UUID.randomUUID().toString().replace("-", "");
|
|
||||||
name = name.substring(0, 16);
|
|
||||||
}
|
|
||||||
|
|
||||||
UUID uuid = npc.getUniqueId();
|
UUID uuid = npc.getUniqueId();
|
||||||
if (uuid.version() == 4) { // clear version
|
if (uuid.version() == 4) { // clear version
|
||||||
@ -46,6 +42,11 @@ public class HumanController extends AbstractEntityController {
|
|||||||
uuid = new UUID(msb, uuid.getLeastSignificantBits());
|
uuid = new UUID(msb, uuid.getLeastSignificantBits());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String teamName = Util.getTeamName(uuid);
|
||||||
|
if (npc.requiresNameHologram()) {
|
||||||
|
name = teamName;
|
||||||
|
}
|
||||||
|
|
||||||
final GameProfile profile = new GameProfile(uuid, name);
|
final GameProfile profile = new GameProfile(uuid, name);
|
||||||
|
|
||||||
final EntityHumanNPC handle = new EntityHumanNPC(nmsWorld.getServer().getServer(), nmsWorld, profile,
|
final EntityHumanNPC handle = new EntityHumanNPC(nmsWorld.getServer().getServer(), nmsWorld, profile,
|
||||||
@ -67,12 +68,14 @@ public class HumanController extends AbstractEntityController {
|
|||||||
|
|
||||||
if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) {
|
if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) {
|
||||||
Scoreboard scoreboard = Util.getDummyScoreboard();
|
Scoreboard scoreboard = Util.getDummyScoreboard();
|
||||||
String teamName = Util.getTeamName(profile.getId());
|
|
||||||
|
|
||||||
Team team = scoreboard.getTeam(teamName);
|
Team team = scoreboard.getTeam(teamName);
|
||||||
int mode = 2;
|
int mode = 2;
|
||||||
if (team == null) {
|
if (team == null) {
|
||||||
team = scoreboard.registerNewTeam(teamName);
|
team = scoreboard.registerNewTeam(teamName);
|
||||||
|
if (npc.requiresNameHologram()) {
|
||||||
|
team.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.NEVER);
|
||||||
|
}
|
||||||
mode = 0;
|
mode = 0;
|
||||||
}
|
}
|
||||||
team.addPlayer(handle.getBukkitEntity());
|
team.addPlayer(handle.getBukkitEntity());
|
||||||
|
@ -33,10 +33,6 @@ public class HumanController extends AbstractEntityController {
|
|||||||
final WorldServer nmsWorld = ((CraftWorld) at.getWorld()).getHandle();
|
final WorldServer nmsWorld = ((CraftWorld) at.getWorld()).getHandle();
|
||||||
String coloredName = npc.getFullName();
|
String coloredName = npc.getFullName();
|
||||||
String name = coloredName.length() > 16 ? coloredName.substring(0, 16) : coloredName;
|
String name = coloredName.length() > 16 ? coloredName.substring(0, 16) : coloredName;
|
||||||
if (npc.requiresNameHologram()) {
|
|
||||||
name = npc.getId() + UUID.randomUUID().toString().replace("-", "");
|
|
||||||
name = name.substring(0, 16);
|
|
||||||
}
|
|
||||||
|
|
||||||
UUID uuid = npc.getUniqueId();
|
UUID uuid = npc.getUniqueId();
|
||||||
if (uuid.version() == 4) { // clear version
|
if (uuid.version() == 4) { // clear version
|
||||||
@ -46,6 +42,11 @@ public class HumanController extends AbstractEntityController {
|
|||||||
uuid = new UUID(msb, uuid.getLeastSignificantBits());
|
uuid = new UUID(msb, uuid.getLeastSignificantBits());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String teamName = Util.getTeamName(uuid);
|
||||||
|
if (npc.requiresNameHologram()) {
|
||||||
|
name = teamName;
|
||||||
|
}
|
||||||
|
|
||||||
final GameProfile profile = new GameProfile(uuid, name);
|
final GameProfile profile = new GameProfile(uuid, name);
|
||||||
|
|
||||||
final EntityHumanNPC handle = new EntityHumanNPC(nmsWorld.getServer().getServer(), nmsWorld, profile,
|
final EntityHumanNPC handle = new EntityHumanNPC(nmsWorld.getServer().getServer(), nmsWorld, profile,
|
||||||
@ -67,12 +68,14 @@ public class HumanController extends AbstractEntityController {
|
|||||||
|
|
||||||
if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) {
|
if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) {
|
||||||
Scoreboard scoreboard = Util.getDummyScoreboard();
|
Scoreboard scoreboard = Util.getDummyScoreboard();
|
||||||
String teamName = Util.getTeamName(profile.getId());
|
|
||||||
|
|
||||||
Team team = scoreboard.getTeam(teamName);
|
Team team = scoreboard.getTeam(teamName);
|
||||||
int mode = 2;
|
int mode = 2;
|
||||||
if (team == null) {
|
if (team == null) {
|
||||||
team = scoreboard.registerNewTeam(teamName);
|
team = scoreboard.registerNewTeam(teamName);
|
||||||
|
if (npc.requiresNameHologram()) {
|
||||||
|
team.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.NEVER);
|
||||||
|
}
|
||||||
mode = 0;
|
mode = 0;
|
||||||
}
|
}
|
||||||
team.addPlayer(handle.getBukkitEntity());
|
team.addPlayer(handle.getBukkitEntity());
|
||||||
|
@ -33,10 +33,6 @@ public class HumanController extends AbstractEntityController {
|
|||||||
final WorldServer nmsWorld = ((CraftWorld) at.getWorld()).getHandle();
|
final WorldServer nmsWorld = ((CraftWorld) at.getWorld()).getHandle();
|
||||||
String coloredName = npc.getFullName();
|
String coloredName = npc.getFullName();
|
||||||
String name = coloredName.length() > 16 ? coloredName.substring(0, 16) : coloredName;
|
String name = coloredName.length() > 16 ? coloredName.substring(0, 16) : coloredName;
|
||||||
if (npc.requiresNameHologram()) {
|
|
||||||
name = npc.getId() + UUID.randomUUID().toString().replace("-", "");
|
|
||||||
name = name.substring(0, 16);
|
|
||||||
}
|
|
||||||
|
|
||||||
UUID uuid = npc.getUniqueId();
|
UUID uuid = npc.getUniqueId();
|
||||||
if (uuid.version() == 4) { // clear version
|
if (uuid.version() == 4) { // clear version
|
||||||
@ -46,6 +42,11 @@ public class HumanController extends AbstractEntityController {
|
|||||||
uuid = new UUID(msb, uuid.getLeastSignificantBits());
|
uuid = new UUID(msb, uuid.getLeastSignificantBits());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String teamName = Util.getTeamName(uuid);
|
||||||
|
if (npc.requiresNameHologram()) {
|
||||||
|
name = teamName;
|
||||||
|
}
|
||||||
|
|
||||||
final GameProfile profile = new GameProfile(uuid, name);
|
final GameProfile profile = new GameProfile(uuid, name);
|
||||||
|
|
||||||
final EntityHumanNPC handle = new EntityHumanNPC(nmsWorld.getServer().getServer(), nmsWorld, profile,
|
final EntityHumanNPC handle = new EntityHumanNPC(nmsWorld.getServer().getServer(), nmsWorld, profile,
|
||||||
@ -67,12 +68,14 @@ public class HumanController extends AbstractEntityController {
|
|||||||
|
|
||||||
if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) {
|
if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) {
|
||||||
Scoreboard scoreboard = Util.getDummyScoreboard();
|
Scoreboard scoreboard = Util.getDummyScoreboard();
|
||||||
String teamName = Util.getTeamName(profile.getId());
|
|
||||||
|
|
||||||
Team team = scoreboard.getTeam(teamName);
|
Team team = scoreboard.getTeam(teamName);
|
||||||
int mode = 2;
|
int mode = 2;
|
||||||
if (team == null) {
|
if (team == null) {
|
||||||
team = scoreboard.registerNewTeam(teamName);
|
team = scoreboard.registerNewTeam(teamName);
|
||||||
|
if (npc.requiresNameHologram()) {
|
||||||
|
team.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.NEVER);
|
||||||
|
}
|
||||||
mode = 0;
|
mode = 0;
|
||||||
}
|
}
|
||||||
team.addPlayer(handle.getBukkitEntity());
|
team.addPlayer(handle.getBukkitEntity());
|
||||||
|
@ -33,10 +33,6 @@ public class HumanController extends AbstractEntityController {
|
|||||||
final WorldServer nmsWorld = ((CraftWorld) at.getWorld()).getHandle();
|
final WorldServer nmsWorld = ((CraftWorld) at.getWorld()).getHandle();
|
||||||
String coloredName = npc.getFullName();
|
String coloredName = npc.getFullName();
|
||||||
String name = coloredName.length() > 16 ? coloredName.substring(0, 16) : coloredName;
|
String name = coloredName.length() > 16 ? coloredName.substring(0, 16) : coloredName;
|
||||||
if (npc.requiresNameHologram()) {
|
|
||||||
name = npc.getId() + UUID.randomUUID().toString().replace("-", "");
|
|
||||||
name = name.substring(0, 16);
|
|
||||||
}
|
|
||||||
|
|
||||||
UUID uuid = npc.getUniqueId();
|
UUID uuid = npc.getUniqueId();
|
||||||
if (uuid.version() == 4) { // clear version
|
if (uuid.version() == 4) { // clear version
|
||||||
@ -46,6 +42,11 @@ public class HumanController extends AbstractEntityController {
|
|||||||
uuid = new UUID(msb, uuid.getLeastSignificantBits());
|
uuid = new UUID(msb, uuid.getLeastSignificantBits());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String teamName = Util.getTeamName(uuid);
|
||||||
|
if (npc.requiresNameHologram()) {
|
||||||
|
name = teamName;
|
||||||
|
}
|
||||||
|
|
||||||
final GameProfile profile = new GameProfile(uuid, name);
|
final GameProfile profile = new GameProfile(uuid, name);
|
||||||
|
|
||||||
final EntityHumanNPC handle = new EntityHumanNPC(nmsWorld.getServer().getServer(), nmsWorld, profile,
|
final EntityHumanNPC handle = new EntityHumanNPC(nmsWorld.getServer().getServer(), nmsWorld, profile,
|
||||||
@ -67,12 +68,14 @@ public class HumanController extends AbstractEntityController {
|
|||||||
|
|
||||||
if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) {
|
if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) {
|
||||||
Scoreboard scoreboard = Util.getDummyScoreboard();
|
Scoreboard scoreboard = Util.getDummyScoreboard();
|
||||||
String teamName = Util.getTeamName(profile.getId());
|
|
||||||
|
|
||||||
Team team = scoreboard.getTeam(teamName);
|
Team team = scoreboard.getTeam(teamName);
|
||||||
int mode = 2;
|
int mode = 2;
|
||||||
if (team == null) {
|
if (team == null) {
|
||||||
team = scoreboard.registerNewTeam(teamName);
|
team = scoreboard.registerNewTeam(teamName);
|
||||||
|
if (npc.requiresNameHologram()) {
|
||||||
|
team.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.NEVER);
|
||||||
|
}
|
||||||
mode = 0;
|
mode = 0;
|
||||||
}
|
}
|
||||||
team.addPlayer(handle.getBukkitEntity());
|
team.addPlayer(handle.getBukkitEntity());
|
||||||
|
@ -33,10 +33,6 @@ public class HumanController extends AbstractEntityController {
|
|||||||
final WorldServer nmsWorld = ((CraftWorld) at.getWorld()).getHandle();
|
final WorldServer nmsWorld = ((CraftWorld) at.getWorld()).getHandle();
|
||||||
String coloredName = npc.getFullName();
|
String coloredName = npc.getFullName();
|
||||||
String name = coloredName.length() > 16 ? coloredName.substring(0, 16) : coloredName;
|
String name = coloredName.length() > 16 ? coloredName.substring(0, 16) : coloredName;
|
||||||
if (npc.requiresNameHologram()) {
|
|
||||||
name = npc.getId() + UUID.randomUUID().toString().replace("-", "");
|
|
||||||
name = name.substring(0, 16);
|
|
||||||
}
|
|
||||||
|
|
||||||
UUID uuid = npc.getUniqueId();
|
UUID uuid = npc.getUniqueId();
|
||||||
if (uuid.version() == 4) { // clear version
|
if (uuid.version() == 4) { // clear version
|
||||||
@ -46,6 +42,11 @@ public class HumanController extends AbstractEntityController {
|
|||||||
uuid = new UUID(msb, uuid.getLeastSignificantBits());
|
uuid = new UUID(msb, uuid.getLeastSignificantBits());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String teamName = Util.getTeamName(uuid);
|
||||||
|
if (npc.requiresNameHologram()) {
|
||||||
|
name = teamName;
|
||||||
|
}
|
||||||
|
|
||||||
final GameProfile profile = new GameProfile(uuid, name);
|
final GameProfile profile = new GameProfile(uuid, name);
|
||||||
|
|
||||||
final EntityHumanNPC handle = new EntityHumanNPC(nmsWorld.getServer().getServer(), nmsWorld, profile,
|
final EntityHumanNPC handle = new EntityHumanNPC(nmsWorld.getServer().getServer(), nmsWorld, profile,
|
||||||
@ -67,12 +68,14 @@ public class HumanController extends AbstractEntityController {
|
|||||||
|
|
||||||
if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) {
|
if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) {
|
||||||
Scoreboard scoreboard = Util.getDummyScoreboard();
|
Scoreboard scoreboard = Util.getDummyScoreboard();
|
||||||
String teamName = Util.getTeamName(profile.getId());
|
|
||||||
|
|
||||||
Team team = scoreboard.getTeam(teamName);
|
Team team = scoreboard.getTeam(teamName);
|
||||||
int mode = 2;
|
int mode = 2;
|
||||||
if (team == null) {
|
if (team == null) {
|
||||||
team = scoreboard.registerNewTeam(teamName);
|
team = scoreboard.registerNewTeam(teamName);
|
||||||
|
if (npc.requiresNameHologram()) {
|
||||||
|
team.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.NEVER);
|
||||||
|
}
|
||||||
mode = 0;
|
mode = 0;
|
||||||
}
|
}
|
||||||
team.addPlayer(handle.getBukkitEntity());
|
team.addPlayer(handle.getBukkitEntity());
|
||||||
|
@ -33,10 +33,6 @@ public class HumanController extends AbstractEntityController {
|
|||||||
final WorldServer nmsWorld = ((CraftWorld) at.getWorld()).getHandle();
|
final WorldServer nmsWorld = ((CraftWorld) at.getWorld()).getHandle();
|
||||||
String coloredName = npc.getFullName();
|
String coloredName = npc.getFullName();
|
||||||
String name = coloredName.length() > 16 ? coloredName.substring(0, 16) : coloredName;
|
String name = coloredName.length() > 16 ? coloredName.substring(0, 16) : coloredName;
|
||||||
if (npc.requiresNameHologram()) {
|
|
||||||
name = npc.getId() + UUID.randomUUID().toString().replace("-", "");
|
|
||||||
name = name.substring(0, 16);
|
|
||||||
}
|
|
||||||
|
|
||||||
UUID uuid = npc.getUniqueId();
|
UUID uuid = npc.getUniqueId();
|
||||||
if (uuid.version() == 4) { // clear version
|
if (uuid.version() == 4) { // clear version
|
||||||
@ -45,6 +41,12 @@ public class HumanController extends AbstractEntityController {
|
|||||||
msb |= 0x0000000000002000L;
|
msb |= 0x0000000000002000L;
|
||||||
uuid = new UUID(msb, uuid.getLeastSignificantBits());
|
uuid = new UUID(msb, uuid.getLeastSignificantBits());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String teamName = Util.getTeamName(uuid);
|
||||||
|
if (npc.requiresNameHologram()) {
|
||||||
|
name = teamName;
|
||||||
|
}
|
||||||
|
|
||||||
final GameProfile profile = new GameProfile(uuid, name);
|
final GameProfile profile = new GameProfile(uuid, name);
|
||||||
|
|
||||||
final EntityHumanNPC handle = new EntityHumanNPC(nmsWorld.getServer().getServer(), nmsWorld, profile,
|
final EntityHumanNPC handle = new EntityHumanNPC(nmsWorld.getServer().getServer(), nmsWorld, profile,
|
||||||
@ -67,12 +69,14 @@ public class HumanController extends AbstractEntityController {
|
|||||||
if (!Setting.USE_SCOREBOARD_TEAMS.asBoolean())
|
if (!Setting.USE_SCOREBOARD_TEAMS.asBoolean())
|
||||||
return;
|
return;
|
||||||
Scoreboard scoreboard = Util.getDummyScoreboard();
|
Scoreboard scoreboard = Util.getDummyScoreboard();
|
||||||
String teamName = Util.getTeamName(profile.getId());
|
|
||||||
|
|
||||||
Team team = scoreboard.getTeam(teamName);
|
Team team = scoreboard.getTeam(teamName);
|
||||||
int mode = 2;
|
int mode = 2;
|
||||||
if (team == null) {
|
if (team == null) {
|
||||||
team = scoreboard.registerNewTeam(teamName);
|
team = scoreboard.registerNewTeam(teamName);
|
||||||
|
if (npc.requiresNameHologram()) {
|
||||||
|
team.setOption(Team.Option.NAME_TAG_VISIBILITY, Team.OptionStatus.NEVER);
|
||||||
|
}
|
||||||
mode = 0;
|
mode = 0;
|
||||||
}
|
}
|
||||||
team.addPlayer(handle.getBukkitEntity());
|
team.addPlayer(handle.getBukkitEntity());
|
||||||
|
@ -7,6 +7,7 @@ import org.bukkit.Location;
|
|||||||
import org.bukkit.craftbukkit.v1_8_R3.CraftWorld;
|
import org.bukkit.craftbukkit.v1_8_R3.CraftWorld;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.scoreboard.NameTagVisibility;
|
||||||
import org.bukkit.scoreboard.Scoreboard;
|
import org.bukkit.scoreboard.Scoreboard;
|
||||||
import org.bukkit.scoreboard.Team;
|
import org.bukkit.scoreboard.Team;
|
||||||
|
|
||||||
@ -33,11 +34,7 @@ public class HumanController extends AbstractEntityController {
|
|||||||
final WorldServer nmsWorld = ((CraftWorld) at.getWorld()).getHandle();
|
final WorldServer nmsWorld = ((CraftWorld) at.getWorld()).getHandle();
|
||||||
String coloredName = npc.getFullName();
|
String coloredName = npc.getFullName();
|
||||||
String name = coloredName.length() > 16 ? coloredName.substring(0, 16) : coloredName;
|
String name = coloredName.length() > 16 ? coloredName.substring(0, 16) : coloredName;
|
||||||
if (npc.requiresNameHologram()) {
|
|
||||||
name = npc.getId() + UUID.randomUUID().toString().replace("-", "");
|
|
||||||
name = name.substring(0, 16);
|
|
||||||
}
|
|
||||||
|
|
||||||
UUID uuid = npc.getUniqueId();
|
UUID uuid = npc.getUniqueId();
|
||||||
if (uuid.version() == 4) { // clear version
|
if (uuid.version() == 4) { // clear version
|
||||||
long msb = uuid.getMostSignificantBits();
|
long msb = uuid.getMostSignificantBits();
|
||||||
@ -46,6 +43,11 @@ public class HumanController extends AbstractEntityController {
|
|||||||
uuid = new UUID(msb, uuid.getLeastSignificantBits());
|
uuid = new UUID(msb, uuid.getLeastSignificantBits());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final String teamName = Util.getTeamName(uuid);
|
||||||
|
if (npc.requiresNameHologram()) {
|
||||||
|
name = teamName;
|
||||||
|
}
|
||||||
|
|
||||||
final GameProfile profile = new GameProfile(uuid, name);
|
final GameProfile profile = new GameProfile(uuid, name);
|
||||||
|
|
||||||
final EntityHumanNPC handle = new EntityHumanNPC(nmsWorld.getServer().getServer(), nmsWorld, profile,
|
final EntityHumanNPC handle = new EntityHumanNPC(nmsWorld.getServer().getServer(), nmsWorld, profile,
|
||||||
@ -67,12 +69,14 @@ public class HumanController extends AbstractEntityController {
|
|||||||
|
|
||||||
if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) {
|
if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) {
|
||||||
Scoreboard scoreboard = Util.getDummyScoreboard();
|
Scoreboard scoreboard = Util.getDummyScoreboard();
|
||||||
String teamName = Util.getTeamName(profile.getId());
|
|
||||||
|
|
||||||
Team team = scoreboard.getTeam(teamName);
|
Team team = scoreboard.getTeam(teamName);
|
||||||
int mode = 2;
|
int mode = 2;
|
||||||
if (team == null) {
|
if (team == null) {
|
||||||
team = scoreboard.registerNewTeam(teamName);
|
team = scoreboard.registerNewTeam(teamName);
|
||||||
|
if (npc.requiresNameHologram()) {
|
||||||
|
team.setNameTagVisibility(NameTagVisibility.NEVER);
|
||||||
|
}
|
||||||
mode = 0;
|
mode = 0;
|
||||||
}
|
}
|
||||||
team.addPlayer(handle.getBukkitEntity());
|
team.addPlayer(handle.getBukkitEntity());
|
||||||
|
Loading…
Reference in New Issue
Block a user