我对使用discord.py和python很陌生,所以请多多包涵。
我当前的目标是让当有人加入或离开时,我的不和谐机器人向某个频道发送欢迎消息和离开消息。在该消息中,我想同时包含此人的姓名和服务器名称(公会,被加入或离开)。
到目前为止,我的代码是:
@client.event
async def on_member_join(member):
print(f'Greetings {member}, welcome to server')
我知道这只会在终端中显示消息。我不知道如何使漫游器将消息发送到文本通道。我知道您可以使用.send,但是我不知道在使用哪个对象,通道,ctx等。
在收集服务器名称方面,我也感到困惑。我试过使用discord.Guild.name,但是只返回
我尝试浏览文档以解决问题,但我是盲人,无法找到解决方案,还是笨拙而无法实现解决方案。
请为我指出正确的方向,以解决我的问题或提供我应该使用的正确代码,我们将不胜感激和期望有建设性和有益的任何事情。
感谢您阅读这篇文章,并有可能帮助我。
最诚挚的问候,凯尔西耶
编辑:
我遇到的主要问题是,您需要一个message参数,然后在聊天中发送一条消息,然后让机器人进行响应并发送一条消息。这很麻烦,因为在on_member_join和on_member_remove事件中,唯一的参数是member,至少消除了我定义并发送消息的可能性。
从阅读文档来看,似乎没有像简单的打印语句那样仅发送消息的功能,这很烦人。
答案 0 :(得分:0)
您可以通过会员获取行会名称
@client.event
async def on_member_join(member):
print(f'Greetings {member}, welcome to {member.guild.name}')
答案 1 :(得分:0)
@client.event
async def on_member_join(member):
channel = client.get_channel(ID) # Where ID is your welcome channel's ID
# Send welcome message to channel
await channel.send(f'Welcome {member}!, Enjoy your stay at {member.guild.name}!')
答案 2 :(得分:0)
@client.event
async def on_member_join(member):
print(f'Greetings {member.mention}, welcome to {member.guild.name}')
这是欢迎信息,上面写着 Greetings @Username,欢迎使用服务器名称