Removed local vars.
[elisp/riece.git] / lisp / riece-commands.el
index 8efa507..64f0275 100644 (file)
@@ -234,6 +234,38 @@ the layout to the selected layout-name."
             user))
    riece-current-channel))
 
+(defun riece-command-kick-with-ban (user pattern &optional message)
+  (interactive
+   (let ((completion-ignore-case t))
+     (riece-check-channel-commands-are-usable t)
+     (riece-with-server-buffer (riece-identity-server riece-current-channel)
+       (list
+       (completing-read (riece-mcat "Kick user: ")
+                        (riece-channel-get-users (riece-identity-prefix
+                                                  riece-current-channel)))
+       (completing-read (riece-mcat "Ban pattern: ")
+                        (mapcar
+                         (lambda (user)
+                           (list (concat (car user) "!"
+                                         (riece-user-get-user-at-host
+                                          (car user)))))
+                         users))
+       (if current-prefix-arg
+           (read-string "Message: "))))))
+  (riece-send-string (format "MODE %s :+b %s\r\n"
+                            (riece-identity-prefix riece-current-channel)
+                            pattern)
+                    riece-current-channel)
+  (riece-send-string
+   (if message
+       (format "KICK %s %s :%s\r\n"
+              (riece-identity-prefix riece-current-channel)
+              user message)
+     (format "KICK %s %s\r\n"
+            (riece-identity-prefix riece-current-channel)
+            user))
+   riece-current-channel))
+
 (defun riece-command-names (pattern)
   (interactive
    (let ((completion-ignore-case t))