为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 discord.py cogs 中创建别名?

如何在 discord.py cogs 中创建别名?

慕的地6264312 2023-03-30 10:39:27
我已经设置了一个 discord.py cog,可以使用了。有一个问题,如何为命令设置别名?我会在下面给你我的代码,看看我还需要做什么:# Importsfrom discord.ext import commandsimport bot  # My own custom module# Client commandsclass Member(commands.Cog):    def __init__(self, client):        self.client = client    # Events    @commands.Cog.listener()    async def on_ready(self):        print(bot.online)    # Commands    @commands.command()    async def ping(self, ctx):        pass# Setup functiondef setup(client):    client.add_cog(Member(client))ping这样的话,我应该如何为下面的命令设置别名呢?@commands.command()
查看完整描述

1 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

discord.ext.commands.Command对象具有aliases属性。下面是如何使用它:

@commands.command(aliases=['testcommand', 'testing'])

async def test(self, ctx):

    await ctx.send("This a test command")

然后,您将能够通过编写!test,!testcommand!testing(如果您的命令前缀是!)来调用您的命令。
此外,如果您计划对日志系统进行编码,Context则对象具有一个invoked_with属性,该属性采用调用命令时使用的别名作为值。


编辑:如果你只想让你的 cog 管理员,你可以覆盖现有的cog_check函数,该函数将在调用来自该 cog 的命令时触发:

from discord.ext import commands

from discord.utils import get


class Admin(commands.Cog):

    def __init__(self, bot):

        self.bot = bot


    async def check_cog(self, ctx):

        admin = get(ctx.guild.roles, name="Admin")

        #False -> Won't trigger the command

        return admin in ctx.author.role


查看完整回答
反对 回复 2023-03-30
  • 1 回答
  • 0 关注
  • 88 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信