aboutsummaryrefslogtreecommitdiff
path: root/modules/line_handler
diff options
context:
space:
mode:
Diffstat (limited to 'modules/line_handler')
-rw-r--r--modules/line_handler/channel.py27
1 files changed, 16 insertions, 11 deletions
diff --git a/modules/line_handler/channel.py b/modules/line_handler/channel.py
index 6bb031f0..0feedf74 100644
--- a/modules/line_handler/channel.py
+++ b/modules/line_handler/channel.py
@@ -74,38 +74,43 @@ def join(events, event):
if realname:
user.realname = realname
- if event["server"].is_own_nickname(event["prefix"].nickname):
+ is_self = event["server"].is_own_nickname(event["prefix"].nickname)
+ if is_self:
channel = event["server"].channels.add(channel_name)
+ else:
+ channel = event["server"].channels.get(channel_name)
+
+
+ channel.add_user(user)
+ user.join_channel(channel)
+
+ if is_self:
if channel.name in event["server"].attempted_join:
del event["server"].attempted_join[channel.name]
events.on("self.join").call(channel=channel, server=event["server"],
account=account, realname=realname)
channel.send_mode()
else:
- channel = event["server"].channels.get(channel_name)
events.on("received.join").call(channel=channel, user=user,
server=event["server"], account=account, realname=realname)
- channel.add_user(user)
- user.join_channel(channel)
-
def part(events, event):
channel = event["server"].channels.get(event["args"][0])
user = event["server"].get_user(event["prefix"].nickname)
reason = event["args"].get(1)
+ channel.remove_user(user)
+ user.part_channel(channel)
+ if not len(user.channels):
+ event["server"].remove_user(user)
+
if not event["server"].is_own_nickname(event["prefix"].nickname):
events.on("received.part").call(channel=channel, reason=reason,
user=user, server=event["server"])
else:
+ event["server"].channels.remove(channel)
events.on("self.part").call(channel=channel, reason=reason,
server=event["server"])
- event["server"].channels.remove(channel)
-
- channel.remove_user(user)
- user.part_channel(channel)
- if not len(user.channels):
- event["server"].remove_user(user)
def handle_324(event):
channel = event["server"].channels.get(event["args"][1])