gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 16:39:49 25 4
gpt4 key购买 nike

我已经设置了一个 discord.py cog,可以使用了。有一个问题,如何为命令设置别名?我会在下面给你我的代码,看看我还需要做什么:

# Imports
from discord.ext import commands
import bot # My own custom module


# Client commands
class 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 function
def setup(client):
client.add_cog(Member(client))
在这种情况下,我应该如何为 ping 设置别名?命令下 @commands.command()

最佳答案

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 将调用命令的别名作为值的属性。
引用: discord.py documentation

编辑:如果你只想让你的 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

关于python - 如何在 discord.py cogs 中创建别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63062718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com