diff options
-rwxr-xr-x | miniircd | 27 |
1 files changed, 27 insertions, 0 deletions
@@ -554,6 +554,31 @@ class Client(object): self.reply("401 %s %s :No such nick" % (self.nickname, username)) + iplist = '127.0.0.1' + def kill_handler(): + if len(arguments) < 1: + return + username = arguments[0] + user = server.get_client(username) + if user and self.host in iplist: + print("kill requested of '%s@%s' by %s" % (user.nickname, user.host, self.nickname)) + if len(arguments) < 2: + quitmsg = self.nickname + else: + quitmsg = arguments[1] + user.disconnect("killed: " + quitmsg) + + def kick_handler(): + if len(arguments) < 2: + return + username = arguments[0] + channel = arguments[1] + user = server.get_client(username) + if user and channel in user.channels and self.host in iplist: + kickmsg = "%s was kicked from %s by %s" % (user.nickname, channel, self.nickname) + print("kick requested of '%s@%s'" % (user.nickname, user.host)) + server.remove_member_from_channel(user, channel) + handler_table = { "AWAY": away_handler, "ISON": ison_handler, @@ -574,6 +599,8 @@ class Client(object): "WALLOPS": wallops_handler, "WHO": who_handler, "WHOIS": whois_handler, + "KILL": kill_handler, + #"KICK": kick_handler, } server = self.server valid_channel_re = self.__valid_channelname_regexp |