Make Owner.defaultplugin more robust in it's error detection.

This commit is contained in:
James Vega 2004-06-18 20:18:14 +00:00
parent b9598abfb8
commit 45b534fa03

View File

@ -393,9 +393,17 @@ class Owner(privmsgs.CapabilityCheckingPrivmsg):
(command, plugin) = privmsgs.getArgs(rest, optional=1) (command, plugin) = privmsgs.getArgs(rest, optional=1)
command = callbacks.canonicalName(command) command = callbacks.canonicalName(command)
cbs = callbacks.findCallbackForCommand(irc, command) cbs = callbacks.findCallbackForCommand(irc, command)
def isDispatcher(cb):
name = callbacks.canonicalName(getattr(cb, 'name')())
return getattr(cb, name).isDispatcher
# Ensure someone isn't trying to use a plugin for their command
cbs = [cb for cb in cbs if not isDispatcher(cb)]
if remove: if remove:
try:
conf.supybot.commands.defaultPlugins.unregister(command) conf.supybot.commands.defaultPlugins.unregister(command)
irc.replySuccess() irc.replySuccess()
except registry.NonExistentRegistryEntry:
raise callbacks.ArgumentError
elif not cbs: elif not cbs:
irc.error('That\'s not a valid command.') irc.error('That\'s not a valid command.')
return return