我目前正在尝试使用命令编辑嵌入。编辑后的嵌入结构清晰。它应该是对建议的评估。为此,我需要作者和他来自上一个命令的建议。如果您有两个命令,是否可以获取旧嵌入的内容并将其传输到编辑后的嵌入?此外,最好仍然计算并在消息中插入反应。 以下是我的工作方法,除了缺少的部分:
#@commands.cooldown(1, 100, BucketType.user)
@commands.command(usage="<text>")
async def suggest(self, ctx, *, text: str = None):
"""This is the command for suggestions."""
if text is None:
await ctx.send("**You need to insert a text.**")
return self.suggest.reset_cooldown(ctx)
channel1 = self.bot.get_channel(812284187427864616)
if channel1 == ctx.channel:
channel = self.bot.get_channel(812283430707920906)
e = discord.Embed(color=discord.Colour.green())
e.description = f "**__submitter:__**\n {ctx.author}"
e.add_field(name="__Suggestion:__", value=f"{text}")
e.set_thumbnail(url=ctx.message.author.avatar_url)
e.timestamp = datetime.utcnow()
e.set_footer(text=f "UID: {ctx.author.id}")
feedback = await channel.send(embed=e)
await feedback.add_reaction("✅")
await feedback.add_reaction("❌")
await ctx.message.add_reaction("✅")
实际编辑旧嵌入的批准命令,应插入“建议”、“提交者”并计算反应。
@commands.command()
async def approve(self, ctx, msg_id: int = None, channel: discord.TextChannel = None):
if not msg_id:
channel = self.bot.get_channel(812283430707920906) # the message's channel
msg_id = 998877665544332211 # the message's id
elif not channel:
channel = ctx.channel
msg = await channel.fetch_message(msg_id)
embed = discord.Embed()
embed.title = "Suggestion accepted"
embed.description = "*Here are all the important information*"
embed.add_field(name="Results", value="✅: MISSING COUNT / ❌: MISSING COUNT")
embed.add_field(name="Suggestion", value=f"MISSING SUGGESTION TEXT")
embed.add_field(name="Submitter:", value=f"MISSING SUBMITTER")
embed.add_field(name="Approved by:", value=f"{ctx.author.mention}")
await msg.edit(embed=embed)
await msg.clear_reactions()
为了计算反应,我会使用类似的东西:
total_count = 0
for r in message.reactions:
total_count += r.count
编辑:
这是现在以不同方式显示 Suggestion
两次的嵌入。
@commands.command()
async def approve(self, ctx, channel: discord.TextChannel, msgID: int):
try:
msg = await channel.fetch_message(msgID)
embed = msg.embeds[0]
submitter = embed.description[embed.description.find('\n'):]
suggestion = embed.fields[0].value
embed.title = "Suggestion accepted"
embed.description = "*Here are all the important information*"
embed.add_field(name="Results", value="✅: Test/ ❌: Test", inline=False)
embed.add_field(name="Suggestion", value=f"{suggestion}", inline=False)
embed.add_field(name="Submitter", value=f"{submitter}", inline=False)
embed.add_field(name="Approved by", value=f"{ctx.author.mention}", inline=False)
await msg.edit(embed=embed, reference=msgID)
await msg.clear_reactions()
except:
pass
答案 0 :(得分:0)
part of 'app_pages.dart';
// DO NOT EDIT. This is code generated via package:get_cli/get_cli.dart
abstract class Routes {
static const HOME = _Paths.HOME;
}
abstract class _Paths {
static const HOME = '/home';
}
您可以使用获取的消息来获取有关它的详细信息。
msg = await channel.fetch_message(msg_id)
参考资料: fetch_message embeds message