当他们说触发词时如何让不和谐机器人踢某人

时间:2021-03-10 15:54:20

标签: python discord discord.py

如何让不和谐机器人在对方说出触发词时踢人?例如,当有人说“白痴”时,他们会被服务器踢出。

这是我尝试过的:

double myPow(double x, int n) {
        if(n==0)
            return 1;
        if(n==-1)
            return 1/x;
        if(n==1)
            return x;
        if(n%2==0)
            return myPow(x,n/2)*myPow(x,n/2);
        else
            if(n>0)
                return myPow(x,n/2)*myPow(x,n/2+1);
            else
                return myPow(x,n/2)*myPow(x,n/2-1);
    }

**Constraints:**

-100.0 < x < 100.0
-2^31 <= n <= 2^31-1
-10^4 <= x^n <= 10^4

1 个答案:

答案 0 :(得分:1)

不能有多个 on_message 事件。您必须将它们合二为一。

一篇解释得很好的帖子:Why multiple on_message events will not work

现在回答你的问题。您可以使用两种方法过滤单词并踢成员:

第一种方法: 过滤所有消息并查看单词 Idiot 是否出现在句子中的任何位置。

async def on_message(message):
    if "Idiot" in message.content:

第二种方法: 检查单词 Idiot 是否只出现在句子的开头。

async def on_message(message):
    if message.content.startswith("Idiot"):

然后踢一个成员你使用以下功能:

await message.author.kick(reason=None)

您的整个代码将是:

@client.event
async def on_message(message):
    if "Idiot" in message.content: # Method 1
        await message.author.kick(reason=None) # Kick the author of the message, reason is optional

    if message.content.startswith("Idiot"): # Method 2
       await message.author.kick(reason=None)