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

如何实现基于角色权限的Discord机器人Hello命令?

如何编写仅允许Admin/Moderator角色使用的Discord机器人Hello命令?

你给出的代码已经完美实现了这个需求!我来帮你拆解下关键逻辑,让你更清楚它的工作方式:

核心就是@commands.has_any_role("Admin", "Moderator")这个装饰器——它会自动校验调用命令的用户是否拥有指定的两个角色之一,只有符合条件的用户才能触发hello命令,不符合的话机器人会直接拒绝执行。

完整可运行代码如下:

from discord.ext import commands
bot = commands.Bot('?')

@bot.command(pass_context=True)
@commands.has_any_role("Admin", "Moderator")
async def hello(ctx):
    await bot.say("Hello {}".format(ctx.message.author.mention))

顺便提几个实用细节:

  • 要确保角色名称和你服务器里的完全一致,包括大小写、空格,不然权限校验会失败
  • 如果你的Discord.py版本是v1.0及以上,pass_context=True可以省略,因为新版本默认会自动传递上下文对象
  • 如果你之后需要基于具体权限(比如管理服务器权限)来限制命令,可以改用@commands.has_permissions(administrator=True)这类装饰器,但用角色的方式完全适配你当前的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:02:49