我正在为我的discord.py 机器人构建一个级别函数。如果该人达到了下一个级别,机器人就会在频道中发送一条消息。我了解到你可以使用 <@memberid> 来 ping 某人。这对我来说不起作用。这是我的职能:
async def new_level_ping(bot, memberid, guildid, xpbefore, xpadded): #called every time a member get xp
oldlevel = math.floor((xpbefore ** 0.5) / 5)
newlevel = math.floor(((xpbefore + xpadded) ** 0.5) / 5)
if oldlevel != newlevel:
mentionedmember = "<@" + str(memberid) +">"
filename = "./database/database.db"
connection = sqlite3.connect(filename) #connect to polldatabase
cursor = connection.cursor()
cursor.execute("SELECT levelingsystemstatus FROM guildsetup WHERE guildid = ?", (guildid,))
levelingsystemstatus = next(cursor, [None])[0]
if levelingsystemstatus == True:
cursor.execute("SELECT levelingpingmessagechannel FROM guildsetup WHERE guildid = ?", (guildid,))
channelid = next(cursor, [None])[0]
channel = await bot.fetch_channel(channelid)
#connection.commit()
connection.close()
embed = discord.Embed(title=f'Congratulations {mentionedmember}', description=f'You reached level {newlevel}', color=discord.Color.green())
await channel.send(embed=embed)
如何解决这个问题?
问题就在于没有提到人(看图)
在嵌入中提及成员是不可能的,您可以尝试将发送行更改为
await channel.send(mentionedmember, embed=embed)
。