diff --git a/src/alias_mgr.py b/src/alias_mgr.py index 9b4dc5078..613f019af 100644 --- a/src/alias_mgr.py +++ b/src/alias_mgr.py @@ -9,6 +9,11 @@ def load_cmd_aliases(): Load up our command aliases. """ alias_list = CommandAlias.objects.all() + + # Reset the list. + CMD_ALIAS_LIST = {} + for alias in alias_list: CMD_ALIAS_LIST[alias.user_input] = alias.equiv_command + print ' Command Aliases Loaded: %i' % (len(CMD_ALIAS_LIST),) \ No newline at end of file diff --git a/src/commands/privileged.py b/src/commands/privileged.py index d8f3a77f1..60a257a40 100644 --- a/src/commands/privileged.py +++ b/src/commands/privileged.py @@ -13,8 +13,14 @@ def cmd_reload(command): """ Reloads all modules. """ + if "aliases" in command.command_switches: + command.session.server.reload_aliases(source_object=command.source_object) + command.source_object.emit_to("Aliases reloaded.") + return + + # By default, just reload command objects. command.source_object.emit_to("Reloading command modules...") - command.session.server.reload(command.source_object) + command.session.server.reload(source_object=command.source_object) command.source_object.emit_to("Modules reloaded.") GLOBAL_CMD_TABLE.add_command("@reload", cmd_reload, priv_tuple=("genperms.process_control")), diff --git a/src/server.py b/src/server.py index 2c130aae0..df818e969 100755 --- a/src/server.py +++ b/src/server.py @@ -117,6 +117,12 @@ class EvenniaService(service.Service): source_object.emit_to(" Reloading %s" % mod_str) rebuild.rebuild(mod) logger.log_infomsg("Modules reloaded by %s." % source_object) + + def reload_aliases(self, source_object=None): + """ + Reload the aliases from the Alias model into the local table. + """ + alias_mgr.load_cmd_aliases() def getEvenniaServiceFactory(self): f = protocol.ServerFactory()