aboutsummaryrefslogtreecommitdiff
path: root/modules/channel_op.py
diff options
context:
space:
mode:
authorGravatar jesopo2016-04-18 16:50:19 +0100
committerGravatar jesopo2016-04-18 16:50:19 +0100
commit1127682872c6c6f7a914b53a15b2f99816ee959f (patch)
treef835aff6f9e8ffbbe3807c77369d9c23002940b7 /modules/channel_op.py
parentadded some code to the nickname_aliases module, I do not trust this module ye... (diff)
added a way for a command callback to neatly ask to only be available for people with a rank or above, added a channel_op module to utilise this.
Diffstat (limited to 'modules/channel_op.py')
-rw-r--r--modules/channel_op.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/modules/channel_op.py b/modules/channel_op.py
new file mode 100644
index 00000000..a454d791
--- /dev/null
+++ b/modules/channel_op.py
@@ -0,0 +1,44 @@
+
+
+class Module(object):
+ _name = "Channel Op"
+ def __init__(self, bot):
+ self.bot = bot
+ bot.events.on("received").on("command").on("kick", "k"
+ ).hook(self.kick, channel_only=True, require_mode="o",
+ min_args=1)
+ bot.events.on("received").on("command").on("ban"
+ ).hook(self.ban, channel_only=True, require_mode="o",
+ min_args=1)
+ bot.events.on("received").on("command").on("kickban", "kb"
+ ).hook(self.kickban, channel_only=True, require_mode="o",
+ min_args=1)
+
+ def kick(self, event):
+ target = event["args_split"][0]
+ target_user = event["server"].get_user(target)
+ if event["args_split"][1:]:
+ reason = " ".join(event["args_split"][1:])
+ else:
+ reason = None
+ event["stderr"].set_prefix("Kick")
+ if event["target"].has_user(target_user):
+ if not event["server"].is_own_nickname(target):
+ event["target"].send_kick(target, reason)
+ else:
+ event["stderr"].write("Nope.")
+ else:
+ event["stderr"].write("That user is not in this channel")
+
+ def ban(self, event):
+ target_user = event["server"].get_user(event["args_split"][0])
+ if event["target"].has_user(target_user):
+ event["target"].send_ban("*!%s@%s" % (target_user.username,
+ target_user.hostname))
+ else:
+ event["target"].send_ban(event["args_split"][0])
+
+ def kickban(self, event):
+ if event["server"].has_user(event["args_split"][0]):
+ self.ban(event)
+ self.kick(event)