【问题标题】:discord.py make bot kick users with specified rolediscord.py 让机器人踢出具有指定角色的用户
【发布时间】:2021-05-08 20:21:26
【问题描述】:

我正在尝试让我的机器人通过命令踢出具有指定角色的所有用户。我没有收到任何错误,所以我有点无能为力。这是我的代码:

class InactiveCog(commands.Cog):
    def init(self, bot):
        self.bot = bot

    @commands.Cog.listener()
    async def on_ready(self):
        print("KickCog loaded")

    @commands.Cog.listener()
    @has_permissions(administrator=True)
    async def on_message(self, message):
        if message.content.casefold().startswith("kick alle inaktiven rachel"):
            await message.channel.send('Ab geht die Fahrt. See ya Nerds!')
            for member in message.guild.members:
                role_id = 723107103274958908
                if role_id in member.roles:
                    await self.bot.guild.kick(member)

提前感谢您的帮助!

【问题讨论】:

  • @ŁukaszKwieciński 好的,我在代码的最后一行更正了它,但仍然没有错误。只是发送消息

标签: python discord discord.py


【解决方案1】:

Member.rolesdiscord.Role 实例的列表,而不是整数列表,因此

if role_id in member.roles:

声明无效,可以用Guild.get_role获取discord.Role实例

role = message.guild.get_role(role_id)
if role in member.roles:
    await member.kick()

参考:

【讨论】:

    猜你喜欢
    • 2020-09-22
    • 2020-12-13
    • 2021-09-17
    • 2018-05-10
    • 2019-08-26
    • 1970-01-01
    • 2019-04-20
    • 2022-01-18
    • 2021-05-01
    相关资源
    最近更新 更多