我正在使用discord.py API制造一个不和谐的机器人。在进行了一些编码之后,我意识到我应该保持代码的整洁,并将命令和事件保存在单独的.py文件中。我如何才能继续侦听触发器中的事件或命令,并将其放在单独的文件中?我尝试过用import来实现它,但它只是导入类。示例命令:
@client.command(pass_context=True) async def kick(ctx, *, member: discord.Member = None): if ctx.message.channel.permissions_for(ctx.message.author).administrator is True: await client.send_message(member, settings.kick_direct) await client.kick(member) await client.say(settings.kick_message + member.mention + settings.kick_message2) else: await client.say(settings.permission_error)
发布于 2018-11-15 16:26:46
您需要在创建discord.py客户端的文件中加载扩展名。见下面的例子。
bot.py
from discord.ext import commands
client = commands.Bot(command_prefix='!')
client.load_extension('cog')
@client.event
async def on_ready():
print('client ready')
@client.command()
async def ping():
await client.say('Pong')
client.run('TOKEN')cog.py
from discord.ext import commands
class TestCog:
def __init__(self, bot):
self.bot = bot
self.counter = 0
@commands.command()
async def add(self):
self.counter += 1
await self.bot.say('Counter is now %d' % self.counter)
def setup(bot):
bot.add_cog(TestCog(bot))https://stackoverflow.com/questions/53323416
复制相似问题