【发布时间】:2021-02-06 18:44:03
【问题描述】:
我想为我的机器人创建一个命令,我们可以在其中配置机器人可以发送的欢迎消息。所以,配置是这样工作的:nb welcome <#channel_where_welcome_msg_to_be_shown> <#channel_to_be_mentioned_in_the_welcome_msg>。
预期的输出是写入位置的嵌入
Hello <member>! Pls go to <#channel_to_be_mentioned_in_the_welcome_msg> to choose your roles.
这是我的代码:
@client.command(aliases = ["welcome"])
async def _welcome(ctx, channel : discord.TextChannel, roles : discord.TextChannel = None):
global channel_welcome
global role_welcome
channel_welcome = channel
if roles != None:
role_welcome = roles
else:
role_welcome = None
await ctx.send("Ok, welcome message configured!")
@client.event
async def on_member_join(member):
global channel_welcome
global role_welcome
pfp = member.avatar_url
if role_welcome == None:
embedVar = discord.Embed(title="WELCOME!",description = "{}, you are welcome to this server!" . format(member.mention), color = 0xff9900)
embedVar.set_thumbnail(url = pfp)
await client.getchannel(channel_welcome).send(embed = embedVar)
else:
embedVar = discord.Embed(title="WELCOME!",description = "{}, you are welcome to this server! Go to {} to assign yourself some roles." . format(member.mention, role_welcome.mention), color = 0xff9900)
embedVar.set_thumbnail(url = pfp)
await client.getchannel(channel_welcome).send(embed = embedVar)
所以,welcome 命令是配置命令。如您所见,roles 参数是可选的,用户可以根据需要使用它。
每当我运行代码并且有人加入服务器时,它不会发送消息或引发任何错误。
关于如何解决这个问题的任何建议?
【问题讨论】:
标签: discord.py