From 5dbc578fd20d0e0c5704e8272ba15fe8d1aa6865 Mon Sep 17 00:00:00 2001 From: fullwall Date: Mon, 25 Jul 2022 23:14:00 +0800 Subject: [PATCH] Integrate team creation directly into ScoreboardTrait --- .../net/citizensnpcs/npc/CitizensNPC.java | 13 +-- .../citizensnpcs/trait/ScoreboardTrait.java | 105 ++++++++++++------ .../net/citizensnpcs/trait/ShopTrait.java | 2 +- .../main/java/net/citizensnpcs/util/Util.java | 46 -------- .../nms/v1_10_R1/entity/HumanController.java | 3 +- .../v1_10_R1/entity/MobEntityController.java | 4 +- .../nms/v1_11_R1/entity/HumanController.java | 3 +- .../v1_11_R1/entity/MobEntityController.java | 4 +- .../nms/v1_12_R1/entity/HumanController.java | 3 +- .../v1_12_R1/entity/MobEntityController.java | 4 +- .../nms/v1_13_R2/entity/HumanController.java | 3 +- .../v1_13_R2/entity/MobEntityController.java | 4 +- .../nms/v1_14_R1/entity/HumanController.java | 3 +- .../v1_14_R1/entity/MobEntityController.java | 4 +- .../nms/v1_15_R1/entity/HumanController.java | 3 +- .../v1_15_R1/entity/MobEntityController.java | 4 +- .../nms/v1_16_R3/entity/HumanController.java | 3 +- .../v1_16_R3/entity/MobEntityController.java | 4 +- .../nms/v1_17_R1/entity/HumanController.java | 3 +- .../v1_17_R1/entity/MobEntityController.java | 4 +- .../nms/v1_18_R2/entity/HumanController.java | 3 +- .../v1_18_R2/entity/MobEntityController.java | 4 +- .../nms/v1_19_R1/entity/HumanController.java | 3 +- .../v1_19_R1/entity/MobEntityController.java | 4 +- .../nms/v1_8_R3/entity/HumanController.java | 3 +- .../v1_8_R3/entity/MobEntityController.java | 4 +- 26 files changed, 117 insertions(+), 126 deletions(-) diff --git a/main/src/main/java/net/citizensnpcs/npc/CitizensNPC.java b/main/src/main/java/net/citizensnpcs/npc/CitizensNPC.java index 31a719e94..cb28e027d 100644 --- a/main/src/main/java/net/citizensnpcs/npc/CitizensNPC.java +++ b/main/src/main/java/net/citizensnpcs/npc/CitizensNPC.java @@ -479,16 +479,8 @@ public class CitizensNPC extends AbstractNPC { } private void updateCustomName() { - boolean nameVisibility = false; - if (!getEntity().isCustomNameVisible() - && !data(). get(NPC.Metadata.NAMEPLATE_VISIBLE, true).toString().equals("hover")) { - } else if (!requiresNameHologram()) { - nameVisibility = true; - getEntity().setCustomName(getFullName()); - } - if (data().has(NPC.Metadata.SCOREBOARD_FAKE_TEAM_NAME)) { - getOrAddTrait(ScoreboardTrait.class).apply(nameVisibility); + getOrAddTrait(ScoreboardTrait.class).update(); } } @@ -497,6 +489,9 @@ public class CitizensNPC extends AbstractNPC { if (requiresNameHologram()) { nameplateVisible = "false"; } + if (nameplateVisible.equals("true") || nameplateVisible.equals("hover")) { + getEntity().setCustomName(getFullName()); + } getEntity().setCustomNameVisible(Boolean.parseBoolean(nameplateVisible)); } diff --git a/main/src/main/java/net/citizensnpcs/trait/ScoreboardTrait.java b/main/src/main/java/net/citizensnpcs/trait/ScoreboardTrait.java index 84f31e1b9..746322aad 100644 --- a/main/src/main/java/net/citizensnpcs/trait/ScoreboardTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/ScoreboardTrait.java @@ -10,6 +10,7 @@ import org.bukkit.ChatColor; import org.bukkit.entity.Player; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.scoreboard.Scoreboard; import org.bukkit.scoreboard.Team; import org.bukkit.scoreboard.Team.Option; import org.bukkit.scoreboard.Team.OptionStatus; @@ -45,7 +46,73 @@ public class ScoreboardTrait extends Trait { tags.add(tag); } - public void apply(boolean nameVisibility) { + public void createTeam(String entityName) { + String teamName = Util.getTeamName(npc.getUniqueId()); + npc.data().set(NPC.SCOREBOARD_FAKE_TEAM_NAME_METADATA, teamName); + Scoreboard scoreboard = Util.getDummyScoreboard(); + Team team = scoreboard.getTeam(teamName); + if (team == null) { + team = scoreboard.registerNewTeam(teamName); + } + team.addEntry(entityName); + } + + public ChatColor getColor() { + return color; + } + + public Set getTags() { + return tags; + } + + private Team getTeam() { + String teamName = npc.data().get(NPC.Metadata.SCOREBOARD_FAKE_TEAM_NAME, ""); + if (teamName.isEmpty()) + return null; + return Util.getDummyScoreboard().getTeam(teamName); + } + + @Override + public void onDespawn() { + if (npc.getEntity() == null) + return; + String name = npc.getEntity() instanceof Player ? npc.getEntity().getName() : npc.getUniqueId().toString(); + String teamName = npc.data().get(NPC.SCOREBOARD_FAKE_TEAM_NAME_METADATA, ""); + if (teamName.isEmpty()) + return; + Team team = Util.getDummyScoreboard().getTeam(teamName); + npc.data().remove(NPC.SCOREBOARD_FAKE_TEAM_NAME_METADATA); + if (team == null) + return; + if (team.hasEntry(name)) { + if (team.getSize() == 1) { + for (Player player : Bukkit.getOnlinePlayers()) { + NMS.sendTeamPacket(player, team, 1); + } + team.unregister(); + } else { + team.removeEntry(name); + } + } + } + + @Override + public void onSpawn() { + changed = true; + } + + public void removeTag(String tag) { + tags.remove(tag); + } + + public void setColor(ChatColor color) { + this.color = color; + } + + public void update() { + String forceVisible = npc.data(). get(NPC.Metadata.NAMEPLATE_VISIBLE, true).toString(); + boolean nameVisibility = !npc.requiresNameHologram() + && (forceVisible.equals("true") || forceVisible.equals("hover")); Team team = getTeam(); if (team == null) return; @@ -155,42 +222,6 @@ public class ScoreboardTrait extends Trait { } } - public ChatColor getColor() { - return color; - } - - public Set getTags() { - return tags; - } - - private Team getTeam() { - String teamName = npc.data().get(NPC.Metadata.SCOREBOARD_FAKE_TEAM_NAME, ""); - if (teamName.isEmpty()) - return null; - return Util.getDummyScoreboard().getTeam(teamName); - } - - @Override - public void onDespawn() { - if (npc.getEntity() == null) - return; - Util.removeTeamFor(npc, - npc.getEntity() instanceof Player ? npc.getEntity().getName() : npc.getUniqueId().toString()); - } - - @Override - public void onSpawn() { - changed = true; - } - - public void removeTag(String tag) { - tags.remove(tag); - } - - public void setColor(ChatColor color) { - this.color = color; - } - public static void onPlayerJoin(PlayerJoinEvent event) { for (Player npcPlayer : PlayerUpdateTask.getCurrentPlayerNPCs()) { NPC npc = ((NPCHolder) npcPlayer).getNPC(); diff --git a/main/src/main/java/net/citizensnpcs/trait/ShopTrait.java b/main/src/main/java/net/citizensnpcs/trait/ShopTrait.java index cbc997643..68ef843da 100644 --- a/main/src/main/java/net/citizensnpcs/trait/ShopTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/ShopTrait.java @@ -219,7 +219,7 @@ public class ShopTrait extends Trait { } } - @Menu(title = "NPC Shop Item Editor", type = InventoryType.CHEST, dimensions = { 5, 9 }) + @Menu(title = "NPC Shop Item Editor", type = InventoryType.CHEST, dimensions = { 6, 9 }) @MenuSlot(slot = { 0, 4 }, material = Material.DISPENSER, amount = 1, title = "Place display item below") public static class NPCShopItemEditor extends InventoryMenuPage { private final Consumer callback; diff --git a/main/src/main/java/net/citizensnpcs/util/Util.java b/main/src/main/java/net/citizensnpcs/util/Util.java index e0b50dfcc..12a7b6083 100644 --- a/main/src/main/java/net/citizensnpcs/util/Util.java +++ b/main/src/main/java/net/citizensnpcs/util/Util.java @@ -17,7 +17,6 @@ import org.bukkit.entity.Player; import org.bukkit.event.player.PlayerInteractEntityEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.scoreboard.Scoreboard; -import org.bukkit.scoreboard.Team; import org.bukkit.util.Vector; import com.google.common.base.Joiner; @@ -101,23 +100,6 @@ public class Util { NMS.look(entity, to, headOnly, immediate); } - public static void generateTeamFor(NPC npc, String name, String teamName) { - Scoreboard scoreboard = getDummyScoreboard(); - Team team = scoreboard.getTeam(teamName); - int mode = 2; - if (team == null) { - team = scoreboard.registerNewTeam(teamName); - if (npc.requiresNameHologram() - || npc.data(). get(NPC.Metadata.NAMEPLATE_VISIBLE, true).toString().equals("false")) { - NMS.setTeamNameTagVisible(team, false); - } - mode = 0; - } - team.addEntry(name); - npc.data().set(NPC.SCOREBOARD_FAKE_TEAM_NAME_METADATA, teamName); - sendTeamPacketToOnlinePlayers(team, mode); - } - public static Location getCenterLocation(Block block) { Location bloc = block.getLocation(AT_LOCATION); Location center = new Location(bloc.getWorld(), bloc.getBlockX() + 0.5, bloc.getBlockY(), @@ -314,34 +296,6 @@ public class Util { to.getBlockZ(), (int) to.getYaw(), (int) to.getPitch()); } - public static void removeTeamFor(NPC npc, String name) { - String teamName = npc.data().get(NPC.SCOREBOARD_FAKE_TEAM_NAME_METADATA, ""); - if (teamName.isEmpty()) - return; - Team team = getDummyScoreboard().getTeam(teamName); - npc.data().remove(NPC.SCOREBOARD_FAKE_TEAM_NAME_METADATA); - if (team == null) - return; - if (team.hasEntry(name)) { - if (team.getSize() == 1) { - sendTeamPacketToOnlinePlayers(team, 1); - team.unregister(); - } else { - team.removeEntry(name); - } - } - } - - /** - * @param mode - * 0 for create, 1 for remove, 2 for update - */ - public static void sendTeamPacketToOnlinePlayers(Team team, int mode) { - for (Player player : Bukkit.getOnlinePlayers()) { - NMS.sendTeamPacket(player, team, mode); - } - } - /** * Sets the entity's yaw and pitch directly including head yaw. */ diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/HumanController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/HumanController.java index 7479db222..046b84192 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/HumanController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/HumanController.java @@ -16,6 +16,7 @@ import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.skin.Skin; import net.citizensnpcs.npc.skin.SkinnableEntity; +import net.citizensnpcs.trait.ScoreboardTrait; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.PlayerInteractManager; @@ -46,7 +47,7 @@ public class HumanController extends AbstractEntityController { } if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { - Util.generateTeamFor(npc, name, teamName); + npc.getOrAddTrait(ScoreboardTrait.class).createTeam(name); } final GameProfile profile = new GameProfile(uuid, name); diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/MobEntityController.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/MobEntityController.java index b5f73ec1f..a4217edc4 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/MobEntityController.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/MobEntityController.java @@ -14,8 +14,8 @@ import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_10_R1.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; +import net.citizensnpcs.trait.ScoreboardTrait; import net.citizensnpcs.util.NMS; -import net.citizensnpcs.util.Util; import net.minecraft.server.v1_10_R1.EntityInsentient; import net.minecraft.server.v1_10_R1.World; @@ -48,7 +48,7 @@ public abstract class MobEntityController extends AbstractEntityController { e.printStackTrace(); } if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { - Util.generateTeamFor(npc, npc.getUniqueId().toString(), Util.getTeamName(npc.getUniqueId())); + npc.getOrAddTrait(ScoreboardTrait.class).createTeam(npc.getUniqueId().toString()); } return entity.getBukkitEntity(); } diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/HumanController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/HumanController.java index ad21142f7..291a20c79 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/HumanController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/HumanController.java @@ -16,6 +16,7 @@ import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.skin.Skin; import net.citizensnpcs.npc.skin.SkinnableEntity; +import net.citizensnpcs.trait.ScoreboardTrait; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.PlayerInteractManager; @@ -46,7 +47,7 @@ public class HumanController extends AbstractEntityController { } if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { - Util.generateTeamFor(npc, name, teamName); + npc.getOrAddTrait(ScoreboardTrait.class).createTeam(name); } final GameProfile profile = new GameProfile(uuid, name); diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/MobEntityController.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/MobEntityController.java index 0d79c76cf..fae377c96 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/MobEntityController.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/MobEntityController.java @@ -14,8 +14,8 @@ import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_11_R1.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; +import net.citizensnpcs.trait.ScoreboardTrait; import net.citizensnpcs.util.NMS; -import net.citizensnpcs.util.Util; import net.minecraft.server.v1_11_R1.EntityInsentient; import net.minecraft.server.v1_11_R1.World; @@ -48,7 +48,7 @@ public abstract class MobEntityController extends AbstractEntityController { e.printStackTrace(); } if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { - Util.generateTeamFor(npc, npc.getUniqueId().toString(), Util.getTeamName(npc.getUniqueId())); + npc.getOrAddTrait(ScoreboardTrait.class).createTeam(npc.getUniqueId().toString()); } return entity.getBukkitEntity(); } diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/HumanController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/HumanController.java index 7870f07f3..53dbbac01 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/HumanController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/HumanController.java @@ -16,6 +16,7 @@ import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.skin.Skin; import net.citizensnpcs.npc.skin.SkinnableEntity; +import net.citizensnpcs.trait.ScoreboardTrait; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.PlayerInteractManager; @@ -46,7 +47,7 @@ public class HumanController extends AbstractEntityController { } if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { - Util.generateTeamFor(npc, name, teamName); + npc.getOrAddTrait(ScoreboardTrait.class).createTeam(name); } final GameProfile profile = new GameProfile(uuid, name); diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/MobEntityController.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/MobEntityController.java index 0d8ee7d1a..4257f41d1 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/MobEntityController.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/MobEntityController.java @@ -14,8 +14,8 @@ import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; +import net.citizensnpcs.trait.ScoreboardTrait; import net.citizensnpcs.util.NMS; -import net.citizensnpcs.util.Util; import net.minecraft.server.v1_12_R1.EntityInsentient; import net.minecraft.server.v1_12_R1.World; @@ -49,7 +49,7 @@ public abstract class MobEntityController extends AbstractEntityController { e.printStackTrace(); } if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { - Util.generateTeamFor(npc, npc.getUniqueId().toString(), Util.getTeamName(npc.getUniqueId())); + npc.getOrAddTrait(ScoreboardTrait.class).createTeam(npc.getUniqueId().toString()); } return entity.getBukkitEntity(); } diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HumanController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HumanController.java index 5361316d2..a49f7cb12 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HumanController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/HumanController.java @@ -16,6 +16,7 @@ import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.skin.Skin; import net.citizensnpcs.npc.skin.SkinnableEntity; +import net.citizensnpcs.trait.ScoreboardTrait; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.PlayerInteractManager; @@ -46,7 +47,7 @@ public class HumanController extends AbstractEntityController { } if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { - Util.generateTeamFor(npc, name, teamName); + npc.getOrAddTrait(ScoreboardTrait.class).createTeam(name); } final GameProfile profile = new GameProfile(uuid, name); diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/MobEntityController.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/MobEntityController.java index b1bdfde79..b7c7a1865 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/MobEntityController.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/MobEntityController.java @@ -14,8 +14,8 @@ import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_13_R2.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; +import net.citizensnpcs.trait.ScoreboardTrait; import net.citizensnpcs.util.NMS; -import net.citizensnpcs.util.Util; import net.minecraft.server.v1_13_R2.EntityInsentient; import net.minecraft.server.v1_13_R2.World; @@ -48,7 +48,7 @@ public abstract class MobEntityController extends AbstractEntityController { e.printStackTrace(); } if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { - Util.generateTeamFor(npc, npc.getUniqueId().toString(), Util.getTeamName(npc.getUniqueId())); + npc.getOrAddTrait(ScoreboardTrait.class).createTeam(npc.getUniqueId().toString()); } return entity.getBukkitEntity(); } diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HumanController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HumanController.java index 657594061..12f369e36 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HumanController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/HumanController.java @@ -16,6 +16,7 @@ import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.skin.Skin; import net.citizensnpcs.npc.skin.SkinnableEntity; +import net.citizensnpcs.trait.ScoreboardTrait; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.PlayerInteractManager; @@ -46,7 +47,7 @@ public class HumanController extends AbstractEntityController { } if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { - Util.generateTeamFor(npc, name, teamName); + npc.getOrAddTrait(ScoreboardTrait.class).createTeam(name); } final GameProfile profile = new GameProfile(uuid, name); diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/MobEntityController.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/MobEntityController.java index 74709d978..a152fb79e 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/MobEntityController.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/MobEntityController.java @@ -14,8 +14,8 @@ import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_14_R1.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; +import net.citizensnpcs.trait.ScoreboardTrait; import net.citizensnpcs.util.NMS; -import net.citizensnpcs.util.Util; import net.minecraft.server.v1_14_R1.EntityInsentient; import net.minecraft.server.v1_14_R1.EntityTypes; import net.minecraft.server.v1_14_R1.World; @@ -50,7 +50,7 @@ public abstract class MobEntityController extends AbstractEntityController { e.printStackTrace(); } if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { - Util.generateTeamFor(npc, npc.getUniqueId().toString(), Util.getTeamName(npc.getUniqueId())); + npc.getOrAddTrait(ScoreboardTrait.class).createTeam(npc.getUniqueId().toString()); } return entity.getBukkitEntity(); } diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HumanController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HumanController.java index e579febb0..c642367ac 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HumanController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/HumanController.java @@ -16,6 +16,7 @@ import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.skin.Skin; import net.citizensnpcs.npc.skin.SkinnableEntity; +import net.citizensnpcs.trait.ScoreboardTrait; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_15_R1.PlayerInteractManager; @@ -46,7 +47,7 @@ public class HumanController extends AbstractEntityController { } if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { - Util.generateTeamFor(npc, name, teamName); + npc.getOrAddTrait(ScoreboardTrait.class).createTeam(name); } final GameProfile profile = new GameProfile(uuid, name); diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/MobEntityController.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/MobEntityController.java index fba0ba076..cbf98cb50 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/MobEntityController.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/MobEntityController.java @@ -14,8 +14,8 @@ import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_15_R1.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; +import net.citizensnpcs.trait.ScoreboardTrait; import net.citizensnpcs.util.NMS; -import net.citizensnpcs.util.Util; import net.minecraft.server.v1_15_R1.EntityInsentient; import net.minecraft.server.v1_15_R1.EntityTypes; import net.minecraft.server.v1_15_R1.World; @@ -51,7 +51,7 @@ public abstract class MobEntityController extends AbstractEntityController { e.printStackTrace(); } if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { - Util.generateTeamFor(npc, npc.getUniqueId().toString(), Util.getTeamName(npc.getUniqueId())); + npc.getOrAddTrait(ScoreboardTrait.class).createTeam(npc.getUniqueId().toString()); } return entity.getBukkitEntity(); } diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HumanController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HumanController.java index e8d45d45f..89236e0ba 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HumanController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/HumanController.java @@ -16,6 +16,7 @@ import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.skin.Skin; import net.citizensnpcs.npc.skin.SkinnableEntity; +import net.citizensnpcs.trait.ScoreboardTrait; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_16_R3.PlayerInteractManager; @@ -45,7 +46,7 @@ public class HumanController extends AbstractEntityController { } if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { - Util.generateTeamFor(npc, name, teamName); + npc.getOrAddTrait(ScoreboardTrait.class).createTeam(name); } final GameProfile profile = new GameProfile(uuid, name); diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/MobEntityController.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/MobEntityController.java index e9745c993..12d1332ba 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/MobEntityController.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/MobEntityController.java @@ -14,8 +14,8 @@ import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_16_R3.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; +import net.citizensnpcs.trait.ScoreboardTrait; import net.citizensnpcs.util.NMS; -import net.citizensnpcs.util.Util; import net.minecraft.server.v1_16_R3.EntityInsentient; import net.minecraft.server.v1_16_R3.EntityTypes; import net.minecraft.server.v1_16_R3.World; @@ -51,7 +51,7 @@ public abstract class MobEntityController extends AbstractEntityController { e.printStackTrace(); } if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { - Util.generateTeamFor(npc, npc.getUniqueId().toString(), Util.getTeamName(npc.getUniqueId())); + npc.getOrAddTrait(ScoreboardTrait.class).createTeam(npc.getUniqueId().toString()); } return entity.getBukkitEntity(); } diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HumanController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HumanController.java index 0e65bd363..385dd8028 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HumanController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/HumanController.java @@ -16,6 +16,7 @@ import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.skin.Skin; import net.citizensnpcs.npc.skin.SkinnableEntity; +import net.citizensnpcs.trait.ScoreboardTrait; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.server.MinecraftServer; @@ -45,7 +46,7 @@ public class HumanController extends AbstractEntityController { } if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { - Util.generateTeamFor(npc, name, teamName); + npc.getOrAddTrait(ScoreboardTrait.class).createTeam(teamName); } final GameProfile profile = new GameProfile(uuid, name); diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/MobEntityController.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/MobEntityController.java index 39c51031a..63baca900 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/MobEntityController.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/MobEntityController.java @@ -13,7 +13,7 @@ import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_17_R1.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; -import net.citizensnpcs.util.Util; +import net.citizensnpcs.trait.ScoreboardTrait; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.Mob; import net.minecraft.world.level.Level; @@ -43,7 +43,7 @@ public abstract class MobEntityController extends AbstractEntityController { } entity.setUUID(npc.getUniqueId()); if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { - Util.generateTeamFor(npc, npc.getUniqueId().toString(), Util.getTeamName(npc.getUniqueId())); + npc.getOrAddTrait(ScoreboardTrait.class).createTeam(npc.getUniqueId().toString()); } return entity.getBukkitEntity(); } diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HumanController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HumanController.java index 404898d81..a31a488d4 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HumanController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/HumanController.java @@ -16,6 +16,7 @@ import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.skin.Skin; import net.citizensnpcs.npc.skin.SkinnableEntity; +import net.citizensnpcs.trait.ScoreboardTrait; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.server.MinecraftServer; @@ -45,7 +46,7 @@ public class HumanController extends AbstractEntityController { } if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { - Util.generateTeamFor(npc, name, teamName); + npc.getOrAddTrait(ScoreboardTrait.class).createTeam(name); } final GameProfile profile = new GameProfile(uuid, name); diff --git a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/MobEntityController.java b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/MobEntityController.java index 89a95956d..fc8022558 100644 --- a/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/MobEntityController.java +++ b/v1_18_R2/src/main/java/net/citizensnpcs/nms/v1_18_R2/entity/MobEntityController.java @@ -13,7 +13,7 @@ import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_18_R2.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; -import net.citizensnpcs.util.Util; +import net.citizensnpcs.trait.ScoreboardTrait; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.Mob; import net.minecraft.world.level.Level; @@ -45,7 +45,7 @@ public abstract class MobEntityController extends AbstractEntityController { entity.setUUID(npc.getUniqueId()); if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { - Util.generateTeamFor(npc, npc.getUniqueId().toString(), Util.getTeamName(npc.getUniqueId())); + npc.getOrAddTrait(ScoreboardTrait.class).createTeam(npc.getUniqueId().toString()); } return entity.getBukkitEntity(); } diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/HumanController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/HumanController.java index bdcdade9e..d4c29482e 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/HumanController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/HumanController.java @@ -16,6 +16,7 @@ import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.skin.Skin; import net.citizensnpcs.npc.skin.SkinnableEntity; +import net.citizensnpcs.trait.ScoreboardTrait; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.server.MinecraftServer; @@ -45,7 +46,7 @@ public class HumanController extends AbstractEntityController { } if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { - Util.generateTeamFor(npc, name, teamName); + npc.getOrAddTrait(ScoreboardTrait.class).createTeam(name); } final GameProfile profile = new GameProfile(uuid, name); diff --git a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/MobEntityController.java b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/MobEntityController.java index 294abeacf..4a52cce61 100644 --- a/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/MobEntityController.java +++ b/v1_19_R1/src/main/java/net/citizensnpcs/nms/v1_19_R1/entity/MobEntityController.java @@ -13,7 +13,7 @@ import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_19_R1.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; -import net.citizensnpcs.util.Util; +import net.citizensnpcs.trait.ScoreboardTrait; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.Mob; import net.minecraft.world.level.Level; @@ -45,7 +45,7 @@ public abstract class MobEntityController extends AbstractEntityController { entity.setUUID(npc.getUniqueId()); if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { - Util.generateTeamFor(npc, npc.getUniqueId().toString(), Util.getTeamName(npc.getUniqueId())); + npc.getOrAddTrait(ScoreboardTrait.class).createTeam(npc.getUniqueId().toString()); } return entity.getBukkitEntity(); } diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/HumanController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/HumanController.java index 09590e157..213f2bf01 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/HumanController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/HumanController.java @@ -16,6 +16,7 @@ import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.npc.AbstractEntityController; import net.citizensnpcs.npc.skin.Skin; import net.citizensnpcs.npc.skin.SkinnableEntity; +import net.citizensnpcs.trait.ScoreboardTrait; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.PlayerInteractManager; @@ -46,7 +47,7 @@ public class HumanController extends AbstractEntityController { } if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { - Util.generateTeamFor(npc, name, teamName); + npc.getOrAddTrait(ScoreboardTrait.class).createTeam(name); } final GameProfile profile = new GameProfile(uuid, name); diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/MobEntityController.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/MobEntityController.java index f285a8bdf..0c914c955 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/MobEntityController.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/MobEntityController.java @@ -14,8 +14,8 @@ import net.citizensnpcs.Settings.Setting; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl; import net.citizensnpcs.npc.AbstractEntityController; +import net.citizensnpcs.trait.ScoreboardTrait; import net.citizensnpcs.util.NMS; -import net.citizensnpcs.util.Util; import net.minecraft.server.v1_8_R3.EntityInsentient; import net.minecraft.server.v1_8_R3.World; @@ -48,7 +48,7 @@ public abstract class MobEntityController extends AbstractEntityController { e.printStackTrace(); } if (Setting.USE_SCOREBOARD_TEAMS.asBoolean()) { - Util.generateTeamFor(npc, npc.getUniqueId().toString(), Util.getTeamName(npc.getUniqueId())); + npc.getOrAddTrait(ScoreboardTrait.class).createTeam(npc.getUniqueId().toString()); } return entity.getBukkitEntity(); }