简体   繁体   English

python discord bot create_channel commmand向命令添加arg以使bot将服务器的特定成员添加到通道的权限

[英]python discord bot create_channel commmand adding an arg to command to make bot add a specific member of the server to the perms of the channel

elif cmd_args[0].upper() == "D!CREATECHANNEL":
         everyone = discord.PermissionOverwrite(read_messages=False, send_messages=False, create_instant_invite=False, manage_channel=False, manage_permissions=False, manage_webhooks=False, send_TTS_messages=False, manage_messages=False, embed_links=False, attach_files=False, read_message_history=False, mention_everyone=False, use_external_emojis=False, add_reactions=False)
         Member = discord.PermissionOverwrite(read_messages=True, send_messages=True, create_instant_invite=False, manage_channel=False, manage_permissions=False, manage_webhooks=False)
         server = message.server
         await client.create_channel(server, cmd_args[1], (server.default_role, everyone), (discord.utils.get(message.server.roles, name='Member'), Member))
         pass

the bot makes a channel like this https://cdn.discordapp.com/attachments/471468848718020623/473202969492455425/gng.PNG (the command rn that makes this is D!createchannel name) what i want the bot to do is do this https://cdn.discordapp.com/attachments/471468848718020623/473202968989138945/Capturegbgg.PNG (for it to do this i want the command to be D!createchannel name @The Golden Atlas [16-A]) I just don't know how to make it do it mabey I am being dumb and don't see it but I really need this help its the last bit of my bot that needs work 机器人使像这样的通道https://cdn.discordapp.com/attachments/471468848718020623/473202969492455425/gng.PNG (使该命令成为D!createchannel名称的命令rn)我希望机器人执行的操作就是执行此https ://cdn.discordapp.com/attachments/471468848718020623/473202968989138945/Capturegbgg.PNG (为此,我希望命令为D!createchannel名称@The Golden Atlas [16-A])我只是不知道如何做到这一点也许我很傻,看不到它,但我真的需要此帮助,这是我机器人需要工作的最后一部分

You can get all of the mentioned members from message.member , then build a (target, PermissionOverwrite) tuple for each of them and pass that to create_channel . 您可以从message.member获取所有提到的成员,然后为每个成员构建一个(target, PermissionOverwrite)元组,并将其传递给create_channel

elif cmd_args[0].upper() == "D!CREATECHANNEL":
    everyone = discord.PermissionOverwrite(read_messages=False, send_messages=False, create_instant_invite=False, manage_channel=False, manage_permissions=False, manage_webhooks=False, send_TTS_messages=False, manage_messages=False, embed_links=False, attach_files=False, read_message_history=False, mention_everyone=False, use_external_emojis=False, add_reactions=False)
    Member = discord.PermissionOverwrite(read_messages=True, send_messages=True, create_instant_invite=False, manage_channel=False, manage_permissions=False, manage_webhooks=False)
    server = message.server
    member_perms = [(mentioned, Member) for mentioned in message.mentions]        
    await client.create_channel(server, cmd_args[1], (server.default_role, everyone), (discord.utils.get(message.server.roles, name='Member'), Member), *member_perms)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM