如何让不和谐机器人在对方说出触发词时踢人?例如,当有人说“白痴”时,他们会被服务器踢出。
这是我尝试过的:
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
答案 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)