首页 > 解决方案 > 我将如何使命令切换命令服务器特定

问题描述

我对 Python 编码很陌生,我开始制作一个 Discord 机器人。我已经创建了一个可以打开和关闭命令的命令,但我似乎无法弄清楚如何使其特定于服务器。这意味着如果使用我的机器人的服务器管理员关闭命令,它只会在他们的服务器上关闭,而不是在其他所有人的服务器上关闭。任何帮助都会非常感谢。

我的代码:

@client.command()
@commands.is_owner()
async def toggle(ctx, *, command):
    command = client.get_command(command)
    if command == None:
        elk = discord.Embed(color=discord.Color.dark_gold(), title=f"I can't find a command with that name!")
        await ctx.send(embed=elk)

    elif ctx.command == command:
        psos = discord.Embed(color=discord.Color.dark_gold(), title=f"You cannot disable this command!")
        await ctx.send(embed=psos)

    else:
        command.enabled = not command.enabled
        ternary = "enabled" if command.enabled else "disabled"
        lllj = discord.Embed(color=discord.Color.dark_gold(), title=f"I have {ternary} {command.qualified.name} for you!")
        await ctx.send(embed=lllj)

标签: discord.py

解决方案


根据有关注册命令的 Discord 文档

命令的范围可以是全局的,也可以是特定的公会。每个添加您的应用程序的公会都可以使用全局命令。

公会由文档定义为:

Discord 中的公会代表用户和频道的独立集合,在 UI 中通常被称为“服务器”。

我不确定这是否完全回答了您的问题,如果不是这样,我建议您深入阅读官方开发人员文档


推荐阅读