我刚刚进入Python,一般编程,我已经开始编写我自己的机器人,但现在我遇到了使用bot命令更改权限的问题,更确切地说我想更改权限超过一个角色,这是我得到的东西,直到知道,我知道它的一切都很混乱,我非常感谢一些帮助!
@bot.command(pass_context=True)
@commands.has_role("botadmin")
async def giveperm(ctx, *rankName: str):
rank = discord.utils.get(ctx.message.server.roles, name=' '.join(rankName))
await bot.say("Give me a moment! Giving permissions to post in " + str(ctx.message.channel))
perms = discord.PermissionOverwrite(send_messages=True)
for rankName in str(rank):
await bot.edit_channel_permissions(channel=ctx.message.channel, target=rankName, overwrite=perms)
if ctx.message.channel == "suggestions":
await bot.say("Suggestions are now open again for a week! \n\n Please only post suggestions here to prevent any chaos, with that said, have fun and happy suggesting!")
else:
await bot.say("Permissions granted to " + rankName + " to post in " + str(ctx.message.channel))
提前致谢!
答案 0 :(得分:0)
utils.get
将从role
返回一个server.roles
。相反,我们可以使用converter让discord.py
直接通过解析命令为我们提供角色
@bot.command(pass_context=True)
@commands.has_role("botadmin")
async def giveperm(ctx, *roles: discord.Role):
await bot.say("Give me a moment! Giving permissions to post in " + str(ctx.message.channel))
perms = discord.PermissionOverwrite(send_messages=True)
for role in roles:
await bot.edit_channel_permissions(channel=ctx.message.channel, target=rankName, overwrite=perms)
if ctx.message.channel == "suggestions":
await bot.say("Suggestions are now open again for a week! \n\n Please only post suggestions here to prevent any chaos, with that said, have fun and happy suggesting!")
else:
await bot.say("Permissions granted to " + rankName + " to post in " + str(ctx.message.channel))