Вариантов много, хоть внутри функции с обработкой команды, хоть декоратором. Думаю, декоратором будет правильнее. В discordpy есть специальный декоратор для этого, чтобы свой не придумывать
@commands.has_guild_permissions(administrator=True)
Если проверка проваливается - код вызывает исключение, поэтому его нужно будет отловить
from discord.ext import commands
@bot.command()
@commands.has_guild_permissions(administrator=True)
async def test(ctx):
ctx.send('hello world')
@test.error
async def test_error(ctx, error):
if isinstance(error, commands.errors.MissingPermissions):
await ctx.send('Недостаточно прав')