diff --git a/plugins/Alias.py b/plugins/Alias.py index 92e23c95f..0c29b2eba 100644 --- a/plugins/Alias.py +++ b/plugins/Alias.py @@ -143,8 +143,11 @@ def makeNewAlias(name, alias): return False everythingReplace(tokens) Owner = irc.getCallback('Owner') - Owner.disambiguate(irc, tokens) - self.Proxy(irc.irc, msg, tokens) + d = Owner.disambiguate(irc, tokens) + if d: + Owner.ambiguousError(irc, msg, d) + else: + self.Proxy(irc.irc, msg, tokens) doc ='\n\nAlias for %r' % \ (utils.nItems('argument', biggestDollar), alias) f = utils.changeFunctionName(f, name, doc) diff --git a/src/Owner.py b/src/Owner.py index 42c10a90c..fc686d67e 100644 --- a/src/Owner.py +++ b/src/Owner.py @@ -320,27 +320,30 @@ class Owner(privmsgs.CapabilityCheckingPrivmsg): self.disambiguate(irc, elt, ambiguousCommands) return ambiguousCommands + def ambiguousError(self, irc, msg, ambiguousCommands): + if len(ambiguousCommands) == 1: # Common case. + (command, names) = ambiguousCommands.popitem() + names.sort() + s = 'The command %r is available in the %s plugins. ' \ + 'Please specify the plugin whose command you ' \ + 'wish to call by using its name as a command ' \ + 'before calling it.' % \ + (command, utils.commaAndify(names)) + else: + L = [] + for (command, names) in ambiguousCommands.iteritems(): + names.sort() + L.append('The command %r is available in the %s ' + 'plugins' % + (command, utils.commaAndify(names))) + s = '%s; please specify from which plugins to ' \ + 'call these commands.' % '; '.join(L) + irc.queueMsg(callbacks.error(msg, s)) + def processTokens(self, irc, msg, tokens): ambiguousCommands = self.disambiguate(irc, tokens) if ambiguousCommands: - if len(ambiguousCommands) == 1: # Common case. - (command, names) = ambiguousCommands.popitem() - names.sort() - s = 'The command %r is available in the %s plugins. ' \ - 'Please specify the plugin whose command you ' \ - 'wish to call by using its name as a command ' \ - 'before calling it.' % \ - (command, utils.commaAndify(names)) - else: - L = [] - for (command, names) in ambiguousCommands.iteritems(): - names.sort() - L.append('The command %r is available in the %s ' - 'plugins' % - (command, utils.commaAndify(names))) - s = '%s; please specify from which plugins to ' \ - 'call these commands.' % '; '.join(L) - irc.queueMsg(callbacks.error(msg, s)) + self.ambiguousError(irc, msg, ambiguousCommands) else: callbacks.IrcObjectProxy(irc, msg, tokens)