Discord机器人尽管获得了许可却无法提及所有人

时间:2019-04-01 12:58:11

标签: python python-3.x discord discord.py

这是sendMessage函数:

async def sendMessage(color, title, value, should_delete=True, channel=""):
    embed = discord.Embed(color=color)
    embed.add_field(name=title, value=value, inline=False)
    if channel == "":
        msg = await client.send_message(message_obj.channel, embed=embed)
    else:
        msg = await client.send_message(client.get_channel(channel), embed=embed)
    if should_delete:
        await delete_msg(msg)

该机器人可以提及任何人,但所有人和这里。尽管提到了所有人的许可。

sendMessage(OK_COLOR_HASH, "title", "Hello @everyone")

编辑:当我将消息类型转换为普通类型而不是嵌入类型时,它就起作用了。

2 个答案:

答案 0 :(得分:0)

您可以尝试通过default_role属性向所有人发送提及

@bot.command(pass_context=True)
async def evy(msg):
    await bot.say(msg.message.server.default_role)

答案 1 :(得分:0)

您可以尝试使用此阻止代码。 roles返回所有公会角色的列表,但是第一个角色始终是默认的公会角色(default_role),这就是为什么必须使用切片功能的原因。

@bot.command()
async def test(ctx):
    await ctx.send(ctx.message.guild.roles[0])

或者您可以执行类似的操作。

 @bot.command()
 async def test(ctx):
     await ctx.send(ctx.message.guild.default_role)