From 046ab7dd38e021e9c0fc41483353c872ddd10fc2 Mon Sep 17 00:00:00 2001 From: fullwall Date: Tue, 30 Oct 2012 21:31:15 +0800 Subject: [PATCH] Reuse code --- .../net/citizensnpcs/npc/CitizensNPC.java | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/main/java/net/citizensnpcs/npc/CitizensNPC.java b/src/main/java/net/citizensnpcs/npc/CitizensNPC.java index 30e91022d..0a0bef323 100644 --- a/src/main/java/net/citizensnpcs/npc/CitizensNPC.java +++ b/src/main/java/net/citizensnpcs/npc/CitizensNPC.java @@ -92,13 +92,10 @@ public abstract class CitizensNPC extends AbstractNPC { // Spawn the NPC Spawned spawned = getTrait(Spawned.class); CurrentLocation spawnLocation = getTrait(CurrentLocation.class); - try { - spawned.load(root.getRelative("traits.spawned")); - spawnLocation.load(root.getRelative("traits.location")); - if (spawned.shouldSpawn() && spawnLocation.getLocation() != null) - spawn(spawnLocation.getLocation()); - } catch (NPCLoadException e) { - } + loadTrait(spawned, root.getRelative("traits.spawned")); + loadTrait(spawnLocation, root.getRelative("traits.location")); + if (spawned.shouldSpawn() && spawnLocation.getLocation() != null) + spawn(spawnLocation.getLocation()); metadata.loadFrom(root.getRelative("metadata")); // Load traits @@ -126,17 +123,21 @@ public abstract class CitizensNPC extends AbstractNPC { } addTrait(trait); } - try { - trait.load(traitKey); - PersistenceLoader.load(trait, traitKey); - } catch (NPCLoadException ex) { - Messaging.logTr(Messages.TRAIT_LOAD_FAILED, traitKey.name(), getId()); - } + loadTrait(trait, traitKey); } navigator.load(root.getRelative("navigator")); } + private void loadTrait(Trait trait, DataKey traitKey) { + try { + trait.load(traitKey); + PersistenceLoader.load(trait, traitKey); + } catch (NPCLoadException ex) { + Messaging.logTr(Messages.TRAIT_LOAD_FAILED, traitKey.name(), getId()); + } + } + @Override public void removeTrait(Class clazz) { Trait present = traits.get(clazz);