我正在尝试通过以下方法将嵌入消息发送到指定的频道。但是,当我单独或与其他任何内容一起放入时,嵌入消息不会发送。但是,发送字符串效果很好。
@bot.command()
@commands.cooldown(1, 10, commands.BucketType.user)
async def report(ctx, user, reason):
if ctx.channel.id == 730496513255669881:
channel = bot.get_channel(730432681657237594)
embedstaff = discord.Embed(title="A new player report has been submitted!", color=0xff6a00)
embedstaff.add_field(name="Player/User Reported", value=ctx.author.name, inline=True)
embedstaff.add_field(name="Reporter", value="Lol", inline=True)
embedstaff.add_field(name="Report Reason: " + reason, value="", inline=False)
await channel.send("Heyy x3", embed = embedstaff)
是否存在将消息发送到指定频道的替代方法?还是我现在使用的方法有解决方案? (怎么说角色也很好哈哈)
答案 0 :(得分:0)
一旦获得Role
对象,就可以使用role.mention提及角色。您可以使用get
discord.utils
来获取角色
from discord.utils import get
#inside a command
role = get(ctx.guild.roles, name='role')
await ctx.send(f'Hello {role.mention}')
通过ID提取频道并将嵌入内容发送到该频道是标准方法。也就是说,Guild
具有诸如system_channel, afk_channel, rules_channel
之类的属性。因此,如果设置了其中任何一个,您都可以从ctx
rules = ctx.guild.rules_channel
回答标题后,您可以检查要向其发送嵌入内容的频道是否启用了嵌入功能。