summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--poezio/core/commands.py22
1 files changed, 14 insertions, 8 deletions
diff --git a/poezio/core/commands.py b/poezio/core/commands.py
index 08e49898..b509d4a1 100644
--- a/poezio/core/commands.py
+++ b/poezio/core/commands.py
@@ -940,19 +940,25 @@ class CommandCore:
"disconnected", self.core.exit, disposable=True)
@command_args_parser.quoted(0, 1, [''])
- def destroy_room(self, args):
+ def destroy_room(self, args: List[str]) -> None:
"""
/destroy_room [JID]
"""
- room = safeJID(args[0]).bare
- if room:
- muc.destroy_room(self.core.xmpp, room)
- elif isinstance(self.core.tabs.current_tab,
- tabs.MucTab) and not args[0]:
+ if not args[0] and isinstance(self.core.tabs.current_tab, tabs.MucTab):
muc.destroy_room(self.core.xmpp,
self.core.tabs.current_tab.general_jid)
- else:
- self.core.information('Invalid JID: "%s"' % args[0], 'Error')
+ return None
+
+ try:
+ room = JID(args[0]).bare
+ if room:
+ muc.destroy_room(self.core.xmpp, room)
+ return None
+ except InvalidJID:
+ pass
+
+ self.core.information('Invalid JID: "%s"' % args[0], 'Error')
+ return None
@command_args_parser.quoted(1, 1, [''])
def bind(self, args):