Python 中的 Discord 斜杠命令不起作用

问题描述 投票:0回答:1

所以我尝试了各种在python环境中使用斜杠命令的方法。即使是混合命令,其中前缀版本可以工作,但斜杠命令甚至不会出现。我的所有范围都正确,公会 ID 正确(为了更快同步,但我也尝试过全局),权限都很好,所有意图都很好等等。我已经三遍检查过这些东西。在我当前的设置中,我从 main.py 启动机器人,然后加载 cogs。

这是我的main.py:

import discord
from discord import app_commands
from discord.ext import commands, tasks
import datetime
import os

bot = commands.Bot(
    command_prefix=",",
    intents=discord.Intents.all(),
    status=discord.Status.dnd,
    activity=discord.Activity(
        type=discord.ActivityType.watching, name="Ursf"
    ),
)

bot.remove_command("help")

@bot.event
async def on_ready():
    try:
        await bot.tree.sync()
        guild = discord.Object(id={guild_id_here})
        await bot.tree.sync(guild=guild)
        print(f"Slash commands synced to guild: {guild.id}")
    except Exception as e:
        print(f"Failed to sync commands: {e}")

    print("\n\n    bot is ready!")
    
    for fn in os.listdir("./cogs"):
        if fn.endswith(".py"):
            try:
                await bot.load_extension(f"cogs.{fn[:-3]}")
                print(f"\n    loaded extensions: {fn}")
            except Exception as e:
                print(f"    failed to load extension(s) {fn}: {e}")

bot.run("{token}")

当我运行这个程序时,我得到的打印结果显示所有内容都已同步并且齿轮已加载等等。这是我正在尝试加载的齿轮代码:

class SipBot(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @commands.hybrid_command(name="hello", description="Says hello")
    async def newhello(self, ctx):
        await ctx.send("Hello from both prefix and slash")

async def setup(bot):
    await bot.add_cog(SipBot(bot))

在我目前的阶段,我正在测试混合装饰器,但我知道还有更多。是的,我已经测试了其中的很多。我可以成功执行“,hello”命令,并且工作正常,但在我的任何尝试中都找不到“/hello”斜杠命令。我什至踢了机器人并重新添加了它。

为了获得更多信息,我使用的是 VS2022 和 python 版本 3.11。 Discord.py 版本是 2.4.0,我没有安装 Discord 包(以防冲突)。

有什么建议吗?我尝试创建的命令有多个参数,因此我需要直观地显示参数(就像斜杠命令可以做到的那样),或者只是从所述斜杠命令启动模式。

python discord discord.py bots visual-studio-2022
1个回答
0
投票
  1. 确保您有在服务器上使用斜杠命令的权限,并且该命令在您测试的通道上已获得授权;
  2. 检查您是否使用最新版本的 Discord 应用程序。
  3. 尝试重新启动您的 Discord 应用程序以强制更新 Discord 客户端中的斜线命令;
© www.soinside.com 2019 - 2024. All rights reserved.