【问题标题】:Bypass a chat restriction as a mod discord.py绕过聊天限制作为 mod discord.py
【发布时间】:2021-07-27 07:17:59
【问题描述】:

如果有人像这样发送不和谐邀请,我有我的机器人事件来清除聊天:https://dev.to/mikeywastaken/events-in-discord-py-mk0

filtered_words = ["test"]

@bot.event
async def on_message(msg):
    for word in filtered_words:
        if word in msg.content:
            await msg.delete()
    if "discord.gg" in msg.content.lower():
      await msg.delete()
      await msg.channel.send("Do not advertise!")

但是我怎样才能使具有踢成员权限或管理员角色的用户可以绕过过滤器?我想以所有者的身份发送邀请,但它会被删除。

【问题讨论】:

  • 您可以将所有有权限的用户ID存储在一个列表中,并检查作者是否在列表中。

标签: python discord discord.py


【解决方案1】:

您可以查看他们的guild permissionspermissions in a channel

这两个将返回一个discord.Permissions 对象。有了这个,您可以使用条件来检查不同的权限。

if "discord.gg" in msg.content.lower() and not msg.author.guild_permissions.kick_members: #You can also do `permissions_in()`
    await msg.delete()
    await msg.channel.send("Do not advertise!")

仅供参考,我没有明确检查管理员权限,因为如果您是管理员,kick_members 默认为 True

【讨论】:

    猜你喜欢
    • 2012-08-11
    • 2016-08-25
    • 1970-01-01
    • 2020-11-01
    • 2011-06-04
    • 2018-12-06
    • 2016-10-04
    • 1970-01-01
    相关资源
    最近更新 更多