我正在尝试让我的Discord bot需要排名来执行Say
命令,但我找不到让它工作的方法。我想问你们,你们是否可以帮助我设置执行命令所需的角色。
import asyncio
import discord
from discord.ext.commands import Bot
bot = Bot('>') # the <#4> is essential so people cannot share it via DMs.
@bot.command(pass_context = True)
async def Say(ctx, *args):
mesg = ' '.join(args)
await bot.delete_message(ctx.message)
return await bot.say(mesg)
bot.run('Token')
答案 0 :(得分:1)
Discord.py提供了一个简单的装饰器commands.has_role
,用于按名称验证角色。 has_role
使用check
函数,两个函数都是未记录的命令扩展的一部分。
from discord.ext import commands
bot = commands.Bot('>')
@bot.command(pass_context = True)
@commands.has_role('admin')
async def Say(ctx, *args):
mesg = ' '.join(args)
await bot.delete_message(ctx.message)
return await bot.say(mesg)
bot.run('Token')