如何使用discord.py在欢迎消息中包含行会名称

时间:2020-08-15 22:49:43

标签: python-3.x discord.py

我对使用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,至少消除了我定义并发送消息的可能性。

从阅读文档来看,似乎没有像简单的打印语句那样仅发送消息的功能,这很烦人。

3 个答案:

答案 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}!') 

Client.get_channel

答案 2 :(得分:0)

@client.event
async def on_member_join(member):
print(f'Greetings {member.mention}, welcome to {member.guild.name}')

这是欢迎信息,上面写着 Greetings @Username,欢迎使用服务器名称