|
|
- from logging import WARN
-
- from typing import Dict
-
- from paircd.client import Client
- from paircd.command_handler import CommandHandler
- from paircd.message import Message
- from paircd.server import Server
-
- from paircd.handler.join import JoinHandler
- from paircd.handler.nick import NickHandler
- from paircd.handler.privmsg import PrivmsgHandler
- from paircd.handler.user import UserHandler
- from paircd.handler.who import WhoHandler
-
- HANDLER_CLASSES = [
- JoinHandler,
- NickHandler,
- PrivmsgHandler,
- UserHandler,
- WhoHandler,
- ]
-
- CMD_HANDLERS: Dict[str, CommandHandler] = {}
-
-
- def register_cmd_handlers() -> None:
- for handler_cls in HANDLER_CLASSES:
- handler = handler_cls() # type: ignore
- CMD_HANDLERS[handler.cmd] = handler
-
-
- async def handle_cmd(server: Server, client: Client, msg: Message) -> None:
- if msg.cmd not in CMD_HANDLERS:
- client.log(f"used unknown command {msg.cmd}", level=WARN)
- return
- await CMD_HANDLERS[msg.cmd].handle(server, client, msg)
|