如何在 discord.py 中检查消息是否由机器人发送?
How do I check if a message is sent by a bot or not in discord.py?
我使用 discord.py 和 Python v3.9.0 制作了一个 Hello Bot 但我没有希望我的机器人读取来自机器人的任何消息。我该怎么做?
我试图在 Stack Overflow 上查看其他问题,但它们至少都是 5 年前的问题了。
我已经有了它,所以它不会读取自己发送的消息。顺便说一句,我的命令前缀是'
这是我的代码:
import os
import discord
# * Clear the screen
def clear():
if os.name == 'nt':
os.system('cls')
else:
os.system('clear')
# * Code
clear()
client = discord.Client()
@client.event
async def on_ready():
print('We have logged in as {0.user}'.format(client))
@client.event
async def on_message(message):
if message.author == client.user:
return
if message.content.startswith("'hello"):
await message.channel.send("Hello!")
if message.content.startswith("'Hello"):
await message.channel.send("Hello!")
if message.content.startswith("'HELLO"):
await message.channel.send("Hello!")
if message.content.startswith("'Hi"):
await message.channel.send("Hello!")
if message.content.startswith("'hi"):
await message.channel.send("Hello!")
if message.content.startswith("'HI"):
await message.channel.send("Hello!")
if message.content.startswith("'hey"):
await message.channel.send("Hello!")
if message.content.startswith("'Hey"):
await message.channel.send("Hello!")
if message.content.startswith("'Greetings"):
await message.channel.send("Hello!")
if message.content.startswith("'greetings"):
await message.channel.send("Hello!")
if message.content.startswith("'howdy"):
await message.channel.send("We're not cowboys!")
if message.content.startswith("'Howdy"):
await message.channel.send("We're not cowboys!")
if message.content.startswith("'Bye"):
await message.channel.send("Bye!")
if message.content.startswith("'bye"):
await message.channel.send("Bye!")
if message.content.startswith("'BYE"):
await message.channel.send("Bye!")
# * Runs the code
client.run("my_token")
您可以简单地使用 discord.Member.bot
。它 returns True
或 False
取决于用户是否是机器人。此外,您可以使用 str.lower()
而不是检查所有大小写字母的可能性。
@client.event
async def on_message(message):
if message.author.bot:
return
if message.content.lower().startswith("'hello"):
await message.channel.send("Hello!")
if message.content.lower().startswith("'hi"):
await message.channel.send("Hello!")
if message.content.lower().startswith("'hey"):
await message.channel.send("Hello!")
我使用 discord.py 和 Python v3.9.0 制作了一个 Hello Bot 但我没有希望我的机器人读取来自机器人的任何消息。我该怎么做?
我试图在 Stack Overflow 上查看其他问题,但它们至少都是 5 年前的问题了。
我已经有了它,所以它不会读取自己发送的消息。顺便说一句,我的命令前缀是'
这是我的代码:
import os
import discord
# * Clear the screen
def clear():
if os.name == 'nt':
os.system('cls')
else:
os.system('clear')
# * Code
clear()
client = discord.Client()
@client.event
async def on_ready():
print('We have logged in as {0.user}'.format(client))
@client.event
async def on_message(message):
if message.author == client.user:
return
if message.content.startswith("'hello"):
await message.channel.send("Hello!")
if message.content.startswith("'Hello"):
await message.channel.send("Hello!")
if message.content.startswith("'HELLO"):
await message.channel.send("Hello!")
if message.content.startswith("'Hi"):
await message.channel.send("Hello!")
if message.content.startswith("'hi"):
await message.channel.send("Hello!")
if message.content.startswith("'HI"):
await message.channel.send("Hello!")
if message.content.startswith("'hey"):
await message.channel.send("Hello!")
if message.content.startswith("'Hey"):
await message.channel.send("Hello!")
if message.content.startswith("'Greetings"):
await message.channel.send("Hello!")
if message.content.startswith("'greetings"):
await message.channel.send("Hello!")
if message.content.startswith("'howdy"):
await message.channel.send("We're not cowboys!")
if message.content.startswith("'Howdy"):
await message.channel.send("We're not cowboys!")
if message.content.startswith("'Bye"):
await message.channel.send("Bye!")
if message.content.startswith("'bye"):
await message.channel.send("Bye!")
if message.content.startswith("'BYE"):
await message.channel.send("Bye!")
# * Runs the code
client.run("my_token")
您可以简单地使用 discord.Member.bot
。它 returns True
或 False
取决于用户是否是机器人。此外,您可以使用 str.lower()
而不是检查所有大小写字母的可能性。
@client.event
async def on_message(message):
if message.author.bot:
return
if message.content.lower().startswith("'hello"):
await message.channel.send("Hello!")
if message.content.lower().startswith("'hi"):
await message.channel.send("Hello!")
if message.content.lower().startswith("'hey"):
await message.channel.send("Hello!")