我想制作一个机器人,在频道向新来的人发送信息。我正在使用discord.py。
- - - - - - 明天 - - - - - - - - - -
首先,谢谢你们三个人!(抱歉英语不好)。我研究了很多。
但不幸的是,我发现这个网址不再存在“member.server.defaul_channel”(这一定是这个问题的答案):Discord.py Invalid arguments inside member.server_default_channel
那么,如何向现在出现新角色的频道发送提及?
1,我知道一种指定通道名称的方法。
@client.event
async def on_member_join(member):
server = member.server
channel = [channel for channel in client.get_all_channels() if channel.name == 'WRITE_YOUR_CHANNEL_NAME!!'][0]
message = 'hello {}, welcome to {}'.format(member.mention, server.name)
await client.send_message(channel, message)
2,但我想知道更普遍的方式。比如使用“default_channel”。有办法吗?
您可以使用on_member_join
事件。
每次成员加入服务器时,以下内容都会向“常规”通道发送消息。
@client.event
async def on_member_join(member):
for channel in member.server.channels:
if channel.name == 'general':
await client.send_message(channel, 'Message to send when member joins')
如果要检查其他某个通道属性而不是名称,请查看以下文档。
http://discordpy.readthedocs.io/en/latest/api.html#discord.Channel
请注意,我尝试过使用channel.is_default
,但这总是会返回False
。
成员并不真正加入渠道,他们加入服务器。就像是
@client.event
async def on_server_join(member):
server = member.server
default channel = server.default_channel
message = ''Hello {}, welcome to {}'.format(member.mention, server.name)'
await client.send_message(default_channel, message)
每当有人加入时,都会在服务器的默认通道上发送消息。