From 2e598c442c4c69fdceddb505bbcb3ad85f9960fd Mon Sep 17 00:00:00 2001 From: Forest Belton Date: Tue, 22 Jun 2021 04:13:42 -0400 Subject: [PATCH] Simplify PRIVMSG handling --- paircd/handler/privmsg.py | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/paircd/handler/privmsg.py b/paircd/handler/privmsg.py index ef25b4f..b9e7e1d 100644 --- a/paircd/handler/privmsg.py +++ b/paircd/handler/privmsg.py @@ -22,18 +22,20 @@ class PrivmsgHandler(CommandHandler): return out = PRIVMSG(recipient, raw_msg, prefix=client.id()) - for name, other_client in server.clients_by_nick.items(): - if name == recipient: - if other_client.away: - client.write_message( - RPL_AWAY(client.nickname, name, other_client.away) - ) - other_client.write_message(out) - return - for name, channel in server.channels_by_name.items(): - if name == recipient: - channel.write_message(out) - return + # Directly message a user + if recipient in server.clients_by_nick: + other_client = server.clients_by_nick[recipient] + if other_client.away: + client.write_message( + RPL_AWAY(client.nickname, recipient, other_client.away) + ) + other_client.write_message(out) + return + + # Broadcast to channel + if recipient in server.channels_by_name: + server.channels_by_name[recipient].write_message(out) + return client.write_message(ERR_NOSUCHNICK(client.nickname, recipient))