我一直在看stackoverflow的帖子和很多地方,但仍然找不到这个问题的答案。我如何让不协调的python斜线命令?下面是这个帖子:https://stackoverflow.com/questions/71165431/how-do-i-make-a-working-slash-command-in-discord-py #:~:text = import%20discord%20from%20discord.ext%20import%20commands%20create%20you,ids%20in%20which %20the%20slash%20command%20will%20will%20appearly.我得到了这个错误:
追溯(最近调用最后调用):文件"/home/container/www.example.com ",第3行,在bot = discord中。机器人程序(命令前缀="!")属性错误:bot.py", line 3, in bot = discord.Bot(command_prefix="!") AttributeError: module 'discord' has no attribute 'Bot'
使用此代码:
import discord
from discord.ext import commands
bot = discord.Bot(command_prefix="!")
@bot.slash_command(name="first_slash") #Add the guild ids in which the slash command will appear. If it should be in all, remove the argument, but note that it will take some time (up to an hour) to register the command if it's for all guilds.
async def first_slash(ctx):
await ctx.respond("You executed the slash command!")
我尝试将"bot = discord. Bot"替换为"bot = commands. Bot",但也不起作用
我找到的唯一没有错误的代码是:
import discord
from discord.ext import commands
from discord_slash import SlashCommand, SlashContext
bot = commands.Bot(command_prefix="!")
slash = SlashCommand(bot)
@slash.slash(name="test")
async def _test(ctx: SlashContext):
await ctx.send("Hello World!")
但discord上没有出现斜杠命令
2条答案
按热度按时间wdebmtf21#
出现此错误是因为您使用的是discord的客户端而不是discord.ext的客户端。
接下来,将不使用斜杠(变量和事件)。替换为以下事件:
完成后,更新命令树,它应该出现在Discord没有问题.链接在这里:https://discordpy.readthedocs.io/en/stable/interactions/api.html#commandtree
希望有帮助。:D
编辑:试试这个,这是你的代码,但我修改了它(如果它为我工作得很好,它将为你工作得很好):
main.py:
现在它应该会在同步后一个小时出现。希望这能有更多帮助。(稍微精确一点:如果您使用Pycord,代码将有所不同)
m528fe3b2#
过时
Discord.py 已不再更新。
如果要使用更新版本的discord模块,必须安装pycord https://guide.pycord.dev/installation
为此,首先必须使用以下命令卸载discord.py模块:
pip uninstall discord.py
然后使用以下命令安装pycord:pip install py-cord
您的脚本将按如下方式工作: