簡體   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

機器人使像這樣的通道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])我只是不知道如何做到這一點也許我很傻,看不到它,但我真的需要此幫助,這是我機器人需要工作的最后一部分

您可以從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