首页 > 解决方案 > discord.py discord.Message 在函数内部而不是作为参数

问题描述

编码新手,对术语不太熟悉。目前我设置的是用户必须在命令中输入消息 ID 才能对其进行编辑,但我希望它每次都是相同的消息 ID,因为用户不需要在命令。当我尝试在函数内部分配消息 ID 时,我遇到了一个需要 1 个位置参数,但给了 2 个错误。

这有效:当用户执行 !editembed msgID test test

@bot.command()
async def editembed(ctx, message: discord.Message, vols, *, title):
    embed = message.embeds[0]
    embed.add_field(name=title, value=vols, inline=False)
    await message.edit(embed=embed)

我想要的是这样的: !editembed test test

@bot.command()
async def editembed(ctx, vols, *, title):
    message = discord.Message(msgID)
    embed = message.embeds[0]
    embed.add_field(name=title, value=vols, inline=False)
    await message.edit(embed=embed)

msgID 是正在更新的消息的 id

标签: pythondiscord.py

解决方案


解决方案是添加

channel = bot.get_channel(channelID)
message = await channel.fetch_message(msgID)
@bot.command()
async def editembed(ctx, vols, *, title):
    channel = bot.get_channel(903012463283417138)
    message = await channel.fetch_message(903091631618674688)
    embed = message.embeds[0]
    embed.add_field(name=title, value=vols, inline=False)
    await message.edit(embed=embed)

推荐阅读