You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写Python脚本让Discord Bot为我分配服务器角色?

实现Discord Bot分配角色的Python脚本

第一步:安装依赖

先确保你安装了discord.py库,在终端执行:

pip install discord.py

第二步:编写核心脚本

下面是完整的可运行代码,包含权限检查和角色分配逻辑:

import discord
from discord.ext import commands

# 启用必要的网关权限(必须设置,否则无法获取成员信息)
intents = discord.Intents.default()
intents.members = True

# 初始化Bot,命令前缀设为!
bot = commands.Bot(command_prefix='!', intents=intents)

# Bot上线提示
@bot.event
async def on_ready():
    print(f'Bot已登录:{bot.user.name}(ID:{bot.user.id})')
    print('------------------------')

# 分配角色的命令
@bot.command()
async def assignrole(ctx, member: discord.Member, role: discord.Role):
    # 检查Bot是否有管理角色的权限
    if not ctx.guild.me.guild_permissions.manage_roles:
        await ctx.send("我没有管理角色的权限,请检查我的权限设置!")
        return
    
    # 检查目标角色等级是否低于Bot的最高角色(Discord限制:不能分配比自己角色高的权限)
    if role >= ctx.guild.me.top_role:
        await ctx.send("我没办法分配比我自身角色等级更高的角色,请调整角色顺序!")
        return
    
    # 执行角色分配
    await member.add_roles(role)
    await ctx.send(f'已成功给 {member.mention} 分配「{role.name}」角色')

# 替换成你自己的Bot Token(从Discord开发者平台获取)
bot.run('你的Bot唯一Token')

关键注意事项

  • 启用Privileged Intents:登录Discord开发者平台,进入你的Bot页面,在「Privileged Gateway Intents」下开启「Server Members Intent」,否则脚本无法获取成员对象。
  • 角色位置调整:在服务器的角色设置里,把Bot的角色拖到要分配的角色上方,否则Discord会阻止Bot分配高等级角色。
  • 命令使用:Bot上线后,在服务器聊天框输入!assignrole @目标成员 @目标角色就能触发分配操作。

内容的提问来源于stack exchange,提问作者Leon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 08:09:56