我想看看 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")
答案 0 :(得分:1)
guild_permissions
是 Member
的一个属性,而且似乎 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