diff --git a/lib/CitizensAPI.jar b/lib/CitizensAPI.jar index 1180a67ad..264c07ee1 100644 Binary files a/lib/CitizensAPI.jar and b/lib/CitizensAPI.jar differ diff --git a/src/net/citizensnpcs/npc/CitizensNPC.java b/src/net/citizensnpcs/npc/CitizensNPC.java index c305cde52..ba9774ea5 100644 --- a/src/net/citizensnpcs/npc/CitizensNPC.java +++ b/src/net/citizensnpcs/npc/CitizensNPC.java @@ -14,17 +14,20 @@ import net.citizensnpcs.api.npc.trait.trait.LocationTrait; import net.citizensnpcs.resources.lib.CraftNPC; import org.bukkit.Bukkit; +import org.bukkit.ChatColor; import org.bukkit.Location; public class CitizensNPC implements NPC { private final int id; - private final Set traits = new HashSet(); private Character character = null; + private final Set traits = new HashSet(); + private String name; private CraftNPC mcEntity; private boolean spawned; private final CitizensNPCManager manager; - protected CitizensNPC(Character character, Trait... traits) { + protected CitizensNPC(String name, Character character, Trait... traits) { + this.name = name; this.character = character; for (Trait trait : traits) { this.traits.add(trait); @@ -33,6 +36,21 @@ public class CitizensNPC implements NPC { id = manager.getUniqueID(); } + @Override + public String getFullName() { + return name; + } + + @Override + public String getName() { + return ChatColor.stripColor(name); + } + + @Override + public void setName(String name) { + this.name = name; + } + @Override public void addTrait(Trait trait) { if (!hasTrait(trait)) diff --git a/src/net/citizensnpcs/npc/CitizensNPCManager.java b/src/net/citizensnpcs/npc/CitizensNPCManager.java index 4a3e0b226..2be316dd0 100644 --- a/src/net/citizensnpcs/npc/CitizensNPCManager.java +++ b/src/net/citizensnpcs/npc/CitizensNPCManager.java @@ -29,18 +29,18 @@ public class CitizensNPCManager implements NPCManager { private Map byID = new HashMap(); @Override - public NPC createNPC() { - return createNPC(null); + public NPC createNPC(String name) { + return createNPC(name, null); } @Override - public NPC createNPC(Character character) { - return createNPC(character); + public NPC createNPC(String name, Character character) { + return createNPC(name, character); } @Override - public NPC createNPC(Character character, Trait... traits) { - CitizensNPC npc = new CitizensNPC(character, traits); + public NPC createNPC(String name, Character character, Trait... traits) { + CitizensNPC npc = new CitizensNPC(name, character, traits); byID.put(npc.getId(), npc); return npc; } @@ -100,7 +100,8 @@ public class CitizensNPCManager implements NPCManager { public CraftNPC spawn(NPC npc) { Location loc = ((LocationTrait) npc.getTrait("location")).getLocation(); WorldServer ws = getWorldServer(loc.getWorld()); - CraftNPC mcEntity = new CraftNPC(getMinecraftServer(ws.getServer()), ws, "", new ItemInWorldManager(ws)); + CraftNPC mcEntity = new CraftNPC(getMinecraftServer(ws.getServer()), ws, npc.getFullName(), + new ItemInWorldManager(ws)); mcEntity.setPositionRotation(loc.getX(), loc.getY(), loc.getZ(), loc.getYaw(), loc.getPitch()); ws.addEntity(mcEntity); ws.players.remove(mcEntity);