我的不和聊天机器人出了点问题。我已经重新启动了一个新的机器人在python(已经有一个在javascript),但我不能让它听,并在我的服务器回答。当我通过直接消息传递执行基本命令时,它可以回答,但仅此而已。
下面是我的代码:import discord
import logging
from discord.ext import commands
intents = discord.Intents.default()
intents.guilds = True
client = discord.Client(intents=intents)
# Set up logging
logging.basicConfig(filename='bot.log', level=logging.INFO,
format='%(asctime)s %(levelname)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
@client.event
async def on_ready():
logging.info('Bot is ready.')
print('Bot is ready.')
@client.event
async def on_message(message):
if message.content == '!hello':
await message.channel.send('Hello!')
logging.info(f'"{message.author}" sent "!hello" in "{message.channel}"')
print(f'"{message.author}" sent "!hello" in "{message.channel}"')
client.run('My-Token-Obviously
')
这里,我只是尝试执行一个典型的hello命令。我也尝试过集成这行代码:channel = client.get_channel(My-id-channel)
,但它没有改变任何东西。
你们看到我的代码有什么错误吗?或者任何可以改进的地方来得到答案?
我认为你必须在你的意图:intents.message_content = True
中添加消息,就像你为公会所做的那样。
此外,我强烈建议使用这个教程:https://discordpy.readthedocs.io/en/stable/ext/commands/commands.html
这个文档用来创建一个bot实例,因为bot实例可以比Client实例做更多的事情:https://discordpy.readthedocs.io/en/stable/ext/commands/api.html
默认意图不启用message_content
。你可以在这里阅读更多关于intent的内容。
on_message
事件要求启用intents.messages
。也可以在文档中阅读。
试一试,它应该会很好。