aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/channel_op.py44
-rw-r--r--modules/check_mode.py15
2 files changed, 59 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)
diff --git a/modules/check_mode.py b/modules/check_mode.py
new file mode 100644
index 00000000..97da52d7
--- /dev/null
+++ b/modules/check_mode.py
@@ -0,0 +1,15 @@
+
+
+class Module(object):
+ def __init__(self, bot):
+ self.bot = bot
+ bot.events.on("preprocess").on("command").hook(
+ self.preprocess_command)
+
+ def preprocess_command(self, event):
+ if event["is_channel"] and event["hook"].kwargs.get(
+ "require_mode"):
+ required_mode = event["hook"].kwargs.get("require_mode")[0]
+ if not event["target"].mode_or_above(event["user"].nickname,
+ required_mode):
+ return "You do not have permission to do this"