使用 @client.event on_message (Discord.py) 获取权限

时间:2021-01-30 04:11:55

标签: python permissions discord discord.py

我想看看 message.author 是否具有更改前缀的 Manage Server 权限。我想使用 @client.event 而不是 @bot.command 或其他。请告诉我怎么做,谢谢!

@client.event
async def on_message(message):
  if message.content.startswith(f'{prefix}prefix'):
    message.channel.guild.author.guild_permissions
    requestList = message.content.split()
    if len(requestList) == 2:
      prefixData[guildID] = requestList[1] #'str' object does not support item assignment
      await message.channel.send(message.author.mention + "\n" + f"The new prefix is {requestList[1]}")
    else:
      await message.channel.send(message.author.mention + "\n" + "ERROR")

1 个答案:

答案 0 :(得分:1)

guild_permissionsMember 的一个属性,而且似乎 prefixData 是一个字符串而不是一个 dict

以下是修改后的代码:

@client.event
async def on_message(m):
    if not m.guild: return # DM Message
    if m.author.guild_permissions.manage_guild and m.content.startswith(f'{prefix}prefix'):
        # change prefix code