|
|
- from paircd.client import Client
- from paircd.command_handler import CommandHandler
- from paircd.log import log_client
- from paircd.message import Message
- from paircd.server import Server
-
-
- class NickHandler(CommandHandler):
- def __init__(self) -> None:
- super().__init__("NICK", 1)
-
- async def handle(self, server: Server, client: Client, msg: Message) -> None:
- nickname = msg.args[0]
-
- # Remove stale references if they exist
- if client.nickname:
- server.remove_client_by_name(client.nickname)
- for channel_name in client.channels:
- channel = server.get_channel_by_name(channel_name)
- channel.remove_client_by_nick(client.nickname)
-
- client.nickname = nickname
-
- # Add references for client
- server.add_client(client)
- for channel_name in client.channels:
- channel = server.get_channel_by_name(channel_name)
- channel.remove_client_by_nick(client.nickname)
-
- if client.username and client.realname:
- client.registered = True
- log_client(client, "registered")
|