from paircd.client import Client from paircd.command_handler import CommandHandler 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 client.log("registered")