📜  使用 discord bot python 添加自我角色(1)

📅  最后修改于: 2023-12-03 15:22:10.771000             🧑  作者: Mango

使用 discord bot python 添加自我角色

如果您正在开发一个 Discord 机器人并且想要让其用户能够在您的服务器上添加自定义角色,那么您来对地方了。在本文中,我们将使用 Discord.py 库来实现这个任务。

准备工作
  • Python 3.6 或更高版本
  • Discord.py 库

您可以使用 pip 来安装这个库:

pip install discord.py

您还需要创建一个 Discord Bot,以便您可以将其添加到您的服务器并扮演一个“角色”,可以在 https://discord.com/developers/applications/ 创建一个 Bot。

将您的 Bot 添加到您的 Discord 服务器并授权它。您可以在 https://discordapi.com/permissions.html 生成授权链接。

编写代码

首先,让我们导入所需的库:

import discord
from discord.ext import commands

接下来,让我们定义一个命令来添加自定义角色。该命令的作用是添加一个新角色,然后将该角色分配给用户。以下是实现代码:

@bot.command()
async def assign_role(ctx, role_name: str):
    # 查找角色是否已经存在
    role = discord.utils.get(ctx.guild.roles, name=role_name)
    if role is None:
        # 如果角色不存在,则创建一个新的角色
        role = await ctx.guild.create_role(name=role_name)

    # 将角色分配给用户
    await ctx.author.add_roles(role)
    await ctx.send(f"{ctx.author.mention}, 角色 {role_name} 已添加。")

以上代码做了以下几件事情:

  • 获取角色名称作为参数。
  • 使用 discord.utils.get() 函数查找角色是否已存在。
  • 如果角色不存在,则创建新角色。
  • 将新角色分配给用户。
  • 使用 ctx.author.mention 来提及用户,并告知用户角色已成功添加。

最后,让我们定义 on_ready() 事件并启动我们的 Bot:

@bot.event
async def on_ready():
    print(f"{bot.user} 已登录到 Discord!")

bot.run("BOT_TOKEN")
完整代码示例
import discord
from discord.ext import commands

bot = commands.Bot(command_prefix='!')

@bot.command()
async def assign_role(ctx, role_name: str):
    # 查找角色是否已经存在
    role = discord.utils.get(ctx.guild.roles, name=role_name)
    if role is None:
        # 如果角色不存在,则创建一个新的角色
        role = await ctx.guild.create_role(name=role_name)

    # 将角色分配给用户
    await ctx.author.add_roles(role)
    await ctx.send(f"{ctx.author.mention}, 角色 {role_name} 已添加。")

@bot.event
async def on_ready():
    print(f"{bot.user} 已登录到 Discord!")

bot.run("BOT_TOKEN")

现在您可以启动该机器人并在 Discord 服务器上使用 !assign_role 命令来添加自定义角色了。