我正在学习如何使用www.example.com创建discord botdiscord.py(对python来说也还是个新手)。
我正在尝试使用app_commands命令树实现多个斜杠命令。下面是我的代码的简化版本(足以解释我的问题)。
import discord
from discord import app_commands
guild_id = 'xxxxxx'
token = 'xxxxxx'
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
@client.event
async def on_ready():
await tree.sync(guild=discord.Object(id=guild_id))
print('Bot has started')
tree = app_commands.CommandTree(client)
@tree.command(name="listencouragements",
description="List all encouragements messages",
guild=discord.Object(id=guild_id))
async def listEncouragement(interaction: discord.Interaction):
print('List: [1, 2 ,3]')
@tree.command(name="moreecouragements",
description="More encouragements messages",
guild=discord.Object(id=guild_id))
async def listEncouragement(interaction: discord.Interaction):
print('This is more encouragements: [4, 5, 6]')
client.run(token)
我试图创建一个不同的文件[slash.py],在那里我可以放置所有的树.命令,然后使用load_extensions将它们导入主文件。
#slash.py [This file is new, and I have
# no clue what to put here nor how to put here the commands]
import discord
from discord.ext import commands
@commands.hybrid_command()
async def hello(ctx):
await ctx.send(f"Hello {ctx.author.display_name}!")
async def setup(bot):
bot.add_command(hello)
#main.py
import slash
....
async def on_ready():
await [the bot object that I dont know].load_extension(slash)
....
我知道它的存在,但是我不知道怎么做。有.load_extension(斜杠)的对象是什么?我做的方法对吗?
1条答案
按热度按时间yqkkidmi1#
load_extension
是commands.Bot
的一种方法。load_extension
,得到完全相同的答案 *在您的示例中,您使用的是
Client
而不是Bot
,Bot
无法访问任何这些功能。您还使用了add_command()
,add_command()
也是Bot
的一种方法。如果您想要Bot功能,请使用Bot。如果您不想要Bot功能,请选择您想要的任何一种。另外,不要在
on_ready
中加载扩展。扩展加载应该通过覆盖setup_hook
来完成。