From 25cd562d2c16c27c416f14110537d032bccb8901 Mon Sep 17 00:00:00 2001 From: fullwall Date: Thu, 3 Apr 2014 23:01:40 +0800 Subject: [PATCH] Add some metadata --- src/main/java/net/citizensnpcs/api/npc/AbstractNPC.java | 8 +++++--- src/main/java/net/citizensnpcs/api/npc/NPC.java | 2 ++ .../java/net/citizensnpcs/api/npc/SimpleNPCDataStore.java | 3 ++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main/java/net/citizensnpcs/api/npc/AbstractNPC.java b/src/main/java/net/citizensnpcs/api/npc/AbstractNPC.java index b85742bc..9a724fe0 100644 --- a/src/main/java/net/citizensnpcs/api/npc/AbstractNPC.java +++ b/src/main/java/net/citizensnpcs/api/npc/AbstractNPC.java @@ -204,10 +204,10 @@ public SpeechController getDefaultSpeechController() { @Override public String getFullName() { - int nameLength = 64; + int nameLength = getTrait(MobType.class).getType() == EntityType.PLAYER ? 16 : 64; if (name.length() > nameLength) { - Messaging.severe("ID", id, "created with name length greater than 64, truncating", name, "to", - name.substring(0, nameLength)); + Messaging.severe("ID", id, "created with name length greater than " + nameLength + ", truncating", name, + "to", name.substring(0, nameLength)); name = name.substring(0, nameLength); } return name; @@ -338,6 +338,8 @@ public void removeTrait(Class traitClass) { @Override public void save(DataKey root) { + if (!metadata.get(NPC.SHOULD_SAVE_METADATA, true)) + return; metadata.saveTo(root.getRelative("metadata")); root.setString("name", getFullName()); root.setString("uuid", uuid.toString()); diff --git a/src/main/java/net/citizensnpcs/api/npc/NPC.java b/src/main/java/net/citizensnpcs/api/npc/NPC.java index 1732dc5d..c82974d6 100644 --- a/src/main/java/net/citizensnpcs/api/npc/NPC.java +++ b/src/main/java/net/citizensnpcs/api/npc/NPC.java @@ -308,7 +308,9 @@ public interface NPC extends Agent, Cloneable { public static final String MINECART_ITEM_METADATA = "minecart-item-name"; public static final String MINECART_OFFSET_METADATA = "minecart-item-offset"; public static final String NAMEPLATE_VISIBLE_METADATA = "nameplate-visible"; + public static final String PLAYER_SKIN_NAME_METADATA = "player-skin-name"; public static final String RESPAWN_DELAY_METADATA = "respawn-delay"; + public static final String SHOULD_SAVE_METADATA = "should-save"; public static final String SWIMMING_METADATA = "swim"; public static final String TARGETABLE_METADATA = "protected-target"; } \ No newline at end of file diff --git a/src/main/java/net/citizensnpcs/api/npc/SimpleNPCDataStore.java b/src/main/java/net/citizensnpcs/api/npc/SimpleNPCDataStore.java index 508c9e97..ca0c0706 100644 --- a/src/main/java/net/citizensnpcs/api/npc/SimpleNPCDataStore.java +++ b/src/main/java/net/citizensnpcs/api/npc/SimpleNPCDataStore.java @@ -82,8 +82,9 @@ public void store(NPC npc) { @Override public void storeAll(NPCRegistry registry) { - for (NPC npc : registry) + for (NPC npc : registry) { store(npc); + } } public static NPCDataStore create(Storage storage) {