Python TypeError:_new_message()缺少1个必需的位置参数:';消息';

Python TypeError:_new_message()缺少1个必需的位置参数:';消息';,python,python-3.x,discord,discord.py,Python,Python 3.x,Discord,Discord.py,您好,我收到一个TypeError,我不确定我在这里做错了什么类型错误是TypeError:\u new\u message()缺少一个必需的位置参数:“message”,我假设这意味着我需要实例化一个类实例 这就是我所做的,正如您所看到的,我已经在代码中添加了message=ctx.message 以下是我的工作内容: class antilink: """ Anti URL spam """ def __init__(self, bot): self.bot = bot s

您好,我收到一个TypeError,我不确定我在这里做错了什么类型错误是
TypeError:\u new\u message()缺少一个必需的位置参数:“message”
,我假设这意味着我需要实例化一个类实例

这就是我所做的,正如您所看到的,我已经在代码中添加了
message=ctx.message

以下是我的工作内容:

class antilink:
"""
Anti URL spam
"""

def __init__(self, bot):
    self.bot = bot
    self.regex = re.compile(r"<?(https?:\/\/)?(www\.)?(discord\.gg|discordapp\.com\/invite)\b([-a-zA-Z0-9/]*)>?")
    self.regex_discordme = re.compile(r"<?(https?:\/\/)?(www\.)?(discord\.me\/)\b([-a-zA-Z0-9/]*)>?")
    self.regex_url = re.compile(r'(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?«»“”‘’]))')


async def _new_message(self, ctx, message):
    """Finds the message and checks it for regex"""
    server = ctx.message.server
    user = message.author
    excluded = []
    message = ctx.message
    if ctx.message.server:
        if self.regex.search(ctx.message.content) is not None or self.regex_discordme.search(ctx.message.content) is not None \
            or self.regex_url.search(ctx.message.content)is not None and ctx.message.server:

                roles = [r.name for r in user.roles]
                bot_admin = settings.get_server_admin(ctx.message.server)
                bot_mod = settings.get_server_mod(ctx.message.server)
                if ctx.message.channel.id is excluded:
                    return
                elif user.id == settings.owner:
                    return
                elif bot_admin in roles:
                    return
                elif bot_mod in roles:
                    return
                elif user.permissions_in(ctx.message.channel).manage_messages is True:
                    return
                else:
                    asyncio.sleep(0.5)
                    await self.bot.delete_message(message)


def setup(bot):
    q = antilink(bot)
    bot.add_listener(q._new_message, 'on_message')
    bot.add_cog(q)
类反链接:
"""
反URL垃圾邮件
"""
def uuu init uuuu(自我,机器人):
self.bot=bot

self.regex=re.compile(r“如果您将
q.\u new\u message
注册为回调,那么它将被调用,使用与
is上的
相同的参数,这意味着单个
message
参数表示发送的消息

async def _new_message(self, message):
    """Finds the message and checks it for regex"""
    server = message.server
    user = message.author
    excluded = []
    if server:
        if self.regex.search(message.content) is not None or self.regex_discordme.search(message.content) is not None \
            or self.regex_url.search(message.content)is not None and message.server:

                roles = [r.name for r in user.roles]
                bot_admin = settings.get_server_admin(message.server)
                bot_mod = settings.get_server_mod(message.server)
                if message.channel.id is excluded:
                    return
                elif user.id == settings.owner:
                    return
                elif bot_admin in roles:
                    return
                elif bot_mod in roles:
                    return
                elif user.permissions_in(message.channel).manage_messages is True:
                    return
                else:
                    asyncio.sleep(0.5)
                    await self.bot.delete_message(message)

您还可以定义一个
async def on_message(self,message)
方法,
add_cog
机器将自动注册为该名称事件的回调。

您不需要
message
参数。另外,您也不会在函数中使用它。