python - 我的不和谐机器人不会发送欢迎消息,但正在阅读其他消息。我正在使用 discord.py
问题描述
我正在尝试创建一个基本的不和谐机器人,目前正在尝试实施欢迎信息。我没有收到错误消息,它什么也没做,如果我在成员加入时尝试向控制台打印一条消息,什么也不会发生。on_message 函数和 on_ready 一起工作得很好。
#bot
import discord
TOKEN = ('top secret token')
client = discord.Client()
intents = discord.Intents.default()
intents.members = True
@client.event
async def on_ready():
print(f'{client.user} has connected to Discord!')
@client.event
async def on_message(message):
if message.author == client.user:
return
if message.content.startswith('$hello'):
await message.channel.send('Hello!')
@client.event
async def on_member_join(member):
await message.channel.send('Welcome!')
print('New User Detected')
client.run(TOKEN)
解决方案
让我们看看……嗯
如果有 kwarg 成员,机器人是否知道什么message
和channel
是什么。on_member_join
不,它没有!
消息和频道未在on_member_join
. 一、获取渠道
channel = client.get_channel(ChannelID)
这将为您提供您想要发送消息的频道。之后,我们将简单地使用channel.send("message")
来发送消息。
最终代码将如下所示:
@client.event
async def on_member_join(member):
channel = client.get_channel(ChannelID)
await channel.send('Welcome!')
print('New User Detected')
推荐阅读
- awk - 如果它们在文件中,如何替换字符串
- python - 更新后pip3“TypeError:'module'对象不可调用”
- python - 如何在熊猫中按特定行名称/值删除一行
- algorithm - 如何生成将球分配到垃圾箱的所有组合,包括空分配和满分配?
- performance - 为什么选择不同的分区列很慢?
- mysql - “如何在mysql中查询这个?我无处可去。”
- java - 怎么用 解决方法: 3次锁定账号?
- antlr - 如何在访问终端中获取以前的 TOKEN_RULE?
- node.js - nodejs - fs.readdir 返回文件列表,用空格替换下划线
- javascript - Jquery .hasClass() 方法不适用于 dom 点击事件检查