def METHOD_NAME(self, msg):
    if msg["command"] != "PRIVMSG" or not msg["origin"]:
        return
    sender_nick = msg["origin"].split('@')[0].split('!')[0]
    recipient = msg["args"][0]
    text = msg["args"][1]
    if recipient != self.config.get("nick"):
        return
    #: HANDLE CTCP ANTI FLOOD/BOT PROTECTION
    if text[0] == '\x01' and text[-1] == '\x01':  #: CTCP
        ctcp_data = text[1:-1].split(' ', 1)
        ctcp_command = ctcp_data[0]
        ctcp_args = ctcp_data[1] if len(ctcp_data) > 1 else ""
        if ctcp_command == "VERSION":
            self.log_debug("Sending CTCP VERSION")
            self.sock.send(
                to_bytes("NOTICE {} :{}\r\n".format(msg["origin"], "pyLoad! IRC Interface"))
            )
            return
        elif ctcp_command == "TIME":
            self.log_debug("Sending CTCP TIME")
            self.sock.send(to_bytes("NOTICE {} :{}\r\n".format(msg["origin"], time.time())))
            return
        elif ctcp_command == "PING":
            self.log_debug("[{}] Ping? Pong!".format(sender_nick))
            self.sock.send(to_bytes("NOTICE {} :\x01PING {}\x01\r\n".format(sender_nick, ctcp_args)))  #@NOTE: PING is not a typo
        elif ctcp_command == "LAG":
            self.log_debug("Received CTCP LAG")  #: don't know how to answer
            return
    if sender_nick not in self.config.get("owner").split():
        return
    temp = text.split()
    try:
        command = temp[0]
        args = text.split()[1:]
    except IndexError:
        command = "error"
        args = []
    try:
        res = self.do_bot_command(command, args)
        for line in res:
            self.response(line, msg["origin"])
            time.sleep(1)  #: avoid Excess Flood
    except Exception as exc:
        self.log_error(exc)