code: async def on_raw_privmsg(self, message):
          
          nick, metadata = self._parse_user(message.source)
          target, msg = message.params
  
          if is_ctcp(msg):
              self._sync_user(nick, metadata)
              type, contents = parse_ctcp(msg)
  
              # Find dedicated handler if it exists.
              attr = 'on_ctcp_' + pydle.protocol.identifierify(type)
              if hasattr(self, attr):
                  await getattr(self, attr)(nick, target, contents)
              # Invoke global handler.
              await self.on_ctcp(nick, target, type, contents)
          else:
              await super().on_raw_privmsg(message)
docs: Modify PRIVMSG to redirect CTCP messages.