【问题标题】:How do I make my Python discord bot give roles on join?如何让我的 Python discord 机器人在加入时赋予角色?
【发布时间】:2018-10-11 04:02:39
【问题描述】:

我有一个正在努力改进的机器人。它被称为主持人机器人,我正在努力添加新命令。我只是在任何地方都找不到代码。

当用户加入服务器时,如何让版主机器人赋予用户角色。以及如何让它由服务器所有者配置,以便机器人可以在不同的服务器上使用?

我还希望它 DM 所有者命令,以便他们可以看到它以及只有所有者设置的角色才能访问该命令。

这听起来很先进,而且可能是,但是有人可以为我编写代码或告诉我如何制作吗?

【问题讨论】:

  • 您在一个问题中问了太多问题,另外,SO 不是要求我们为您编写代码的地方。当您有特定的编程相关问题时,我们随时为您提供帮助。见help center

标签: python discord discord.py


【解决方案1】:

1) 要让机器人在成员加入时为其赋予角色,您需要在 on_member_join 事件中添加 add_roles()。这可以通过

来完成
@bot.event
async def on_member_join(member):
    role = discord.utils.get(member.server.roles, id="<role ID>")
    await bot.add_roles(member, role)

2) 要为每个服务器自定义角色,您需要一些文件来保存服务器 ID,以及在用户加入时提供的角色 ID(我个人会使用.db 文件和 sqlite3 从 python 编辑它,但你可以做任何你想做的事)。 您还需要稍微编辑我给出的on_member_join 示例,以根据文件中的member.server.id 选择角色ID,并使用discord.utils.get() 中的角色ID

3) 要让机器人 DM任何人默认帮助消息,请将 pm_help=True 添加到您的 Bot() 参数中。要将您的部分命令发送给普通用户并仅发送给所有者,您需要创建一个新的帮助命令。为此,您需要在代码顶部附近添加bot.remove_command('help'),然后创建一个名为 help 的命令。然后,要将命令仅发送给所有者,请添加

if ctx.message.author.id == ctx.message.server.owner.id:
    await bot.send_message(ctx.message.author, <help message>)

到你的帮助命令。

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2021-08-14
    • 2022-01-09
    • 1970-01-01
    • 2021-04-12
    • 2021-04-28
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    • 2021-03-14
    相关资源
    最近更新 更多