diff --git a/src/main/java/net/citizensnpcs/Citizens.java b/src/main/java/net/citizensnpcs/Citizens.java index a76c1bd2c..f18b7a023 100644 --- a/src/main/java/net/citizensnpcs/Citizens.java +++ b/src/main/java/net/citizensnpcs/Citizens.java @@ -118,7 +118,7 @@ public class Citizens extends JavaPlugin implements CitizensPlugin { public Iterable getCommands(String base) { return commands.getCommands(base); } - + @Override public NPCRegistry getNPCRegistry() { return npcRegistry; @@ -257,6 +257,15 @@ public class Citizens extends JavaPlugin implements CitizensPlugin { Messaging.severeTr(Messages.CITIZENS_IMPLEMENTATION_DISABLED); Bukkit.getPluginManager().disablePlugin(this); } + + public void registerCommandClass(Class clazz) { + try { + commands.register(clazz); + } catch (Throwable ex) { + Messaging.logTr(Messages.CITIZENS_INVALID_COMMAND_CLASS); + ex.printStackTrace(); + } + } private void registerCommands() { commands.setInjector(new Injector(this)); diff --git a/src/main/java/net/citizensnpcs/util/Messages.java b/src/main/java/net/citizensnpcs/util/Messages.java index a7385e924..ecb9cbe11 100644 --- a/src/main/java/net/citizensnpcs/util/Messages.java +++ b/src/main/java/net/citizensnpcs/util/Messages.java @@ -24,6 +24,7 @@ public class Messages { public static final String CITIZENS_ENABLED = "citizens.notifications.enabled"; public static final String CITIZENS_IMPLEMENTATION_DISABLED = "citizens.changed-implementation"; public static final String CITIZENS_INCOMPATIBLE = "citizens.notifications.incompatible-version"; + public static final String CITIZENS_INVALID_COMMAND_CLASS = "citizens.commands.invalid.class"; public static final String CITIZENS_RELOAD_ERROR = "citizens.notifications.error-reloading"; public static final String CITIZENS_RELOADED = "citizens.notifications.reloaded"; public static final String CITIZENS_RELOADING = "citizens.notifications.reloading"; diff --git a/src/main/resources/messages_en.properties b/src/main/resources/messages_en.properties index 1f5428c18..6434b793b 100644 --- a/src/main/resources/messages_en.properties +++ b/src/main/resources/messages_en.properties @@ -5,6 +5,7 @@ citizens.commands.errors.missing-world=World not found. citizens.commands.help.command-missing=Command /{0} not found. citizens.commands.help.header=Help citizens.commands.id-not-found=Couldn''t find any NPC with ID {0}. +citizens.commands.invalid.class=Invalid external commands class. citizens.commands.invalid-mobtype={0} is not a valid mobtype. citizens.commands.invalid-number=That is not a valid number. citizens.commands.npc.age.cannot-be-aged=The mob type {0} cannot be aged.