diff --git a/src/main/java/net/citizensnpcs/Citizens.java b/src/main/java/net/citizensnpcs/Citizens.java index 6f105df9d..9f9350b07 100644 --- a/src/main/java/net/citizensnpcs/Citizens.java +++ b/src/main/java/net/citizensnpcs/Citizens.java @@ -401,5 +401,5 @@ public class Citizens extends JavaPlugin implements CitizensPlugin { Thread.currentThread().setContextClassLoader(contextClassLoader); } - private static final String COMPATIBLE_MC_VERSION = "1.3.1"; + private static final String COMPATIBLE_MC_VERSION = "1.3.2"; } \ No newline at end of file diff --git a/src/main/java/net/citizensnpcs/command/command/NPCCommands.java b/src/main/java/net/citizensnpcs/command/command/NPCCommands.java index bb0bc916e..2e1ae5f03 100644 --- a/src/main/java/net/citizensnpcs/command/command/NPCCommands.java +++ b/src/main/java/net/citizensnpcs/command/command/NPCCommands.java @@ -550,7 +550,7 @@ public class NPCCommands { permission = "npc.speed") public void speed(CommandContext args, CommandSender sender, NPC npc) throws CommandException { float newSpeed = (float) args.getDouble(1); - npc.getNavigator().setSpeed(newSpeed); + npc.getNavigator().getDefaultParameters().speed(newSpeed); Messaging.sendF(sender, ChatColor.GREEN + "NPC speed set to %f.", newSpeed); } diff --git a/src/main/java/net/citizensnpcs/npc/CitizensNPC.java b/src/main/java/net/citizensnpcs/npc/CitizensNPC.java index ee55d9f60..b3b5a61b0 100644 --- a/src/main/java/net/citizensnpcs/npc/CitizensNPC.java +++ b/src/main/java/net/citizensnpcs/npc/CitizensNPC.java @@ -78,16 +78,23 @@ public abstract class CitizensNPC extends AbstractNPC { metadata.loadFrom(root.getRelative("metadata")); // Load traits for (DataKey traitKey : root.getRelative("traits").getSubKeys()) { - Trait trait = CitizensAPI.getTraitFactory().getTrait(traitKey.name()); - if (trait == null) { - Messaging.severeF( - "Skipped broken or missing trait '%s' while loading ID '%d'. Has the name changed?", - traitKey.name(), getId()); - continue; - } if (traitKey.keyExists("enabled") && !traitKey.getBoolean("enabled")) continue; - addTrait(trait); + Class clazz = CitizensAPI.getTraitFactory().getTraitClass(traitKey.name()); + Trait trait; + if (hasTrait(clazz)) { + trait = getTrait(clazz); + } else { + trait = CitizensAPI.getTraitFactory().getTrait(traitKey.name()); + if (trait == null) { + Messaging + .severeF( + "Skipped broken or missing trait '%s' while loading ID '%d'. Has the name changed?", + traitKey.name(), getId()); + continue; + } + addTrait(trait); + } try { trait.load(traitKey); } catch (NPCLoadException ex) {