简体   繁体   English

通过 discord.py 验证频道和角色

[英]Verify channel and role through discord.py

I want to make it so that when someone types $verify in the #verify channel they receive the "Members" role and it deletes the $verify message.我想这样做,以便当有人在#verify 频道中键入 $verify 时,他们会收到“成员”角色并删除 $verify 消息。 It should also be able to delete any other message sent that isn't $verify.它还应该能够删除任何其他发送的不是 $verify 的消息。 This is my code that doesn't work:这是我的代码不起作用:

async def on_message(message):
    delmessage = client.get_channel(976724314600644649)
    if message == "$verify":
        await message.message.delete(delete_after=5)
        user = message.message.author
        role = discord.utils.get(user.guild.roles, name="Members")
        await user.add_roles(role)
        embed = discord.Embed(title="Verified", description=f"You have been verified in LXVI", color=0x0000FF)
        await user.send(embed=embed)
    else:
        await delmessage.purge(limit=1)

This code which I've commented out-我注释掉的这段代码-

#async def verify(ctx):
#    await ctx.message.delete()
#    user = ctx.message.author
#    role = discord.utils.get(user.guild.roles, name="Members")
#    await user.add_roles(role)
#    embed = discord.Embed(title="Verified", description=f"You have been verified in LXVI",
color=0x0000FF)
#    await user.send(embed=embed) 

-works to simply verify the user when they type $verify and it deletes the message and sends them a dm, but it doesn't account for any other messages sent in the channel. - 用于在用户键入 $verify 并删除消息并向他们发送 dm 时简单地验证用户,但它不考虑在频道中发送的任何其他消息。

This deletes every message in the channel with the id of 976724314600644649 .这将删除频道中 ID 为976724314600644649的每条消息。 It adds the role Members before deleting if the message content is $verify .如果消息内容是$verify ,它会在删除之前添加角色Members

async def on_message(message):
  if message.channel.id == 976724314600644649:
    if message.content == "$verify":
        role = discord.utils.get(message.guild.roles, name="Members")
        await message.author.add_roles(role)
        embed = discord.Embed(title="Verified", description=f"You have been verified in LXVI", color=0x0000FF)
        await message.author.send(embed=embed)
    await message.delete()

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

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