Discord.py ctx.guild.edit 有效,但 self.bot.guild.edit 无效?

时间:2023-05-12
本文介绍了Discord.py ctx.guild.edit 有效,但 self.bot.guild.edit 无效?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

限时送ChatGPT账号..

正如标题所说,我正在尝试进行公会编辑,但在一个事件中.这是我的部分代码:

Like the title says, I'm trying to do guild edits but on an events. Here's part of my code:

    @commands.guild_only()
    async def on_ready(self):
    server = self.bot.get_guild("serverid")
        while True:
            await self.bot.guild.edit(guild=server, name="foo")
            await asyncio.sleep(1)
            await self.bot.guild.edit(guild=server, name="bar")
            await asyncio.sleep(1)

我已经使用独立命令对其进行了测试,所以我知道 ctx.guild.edit 可以工作,但我不确定如何让它在事件中工作.

I've already tested it with a standalone command, so I know that ctx.guild.edit works but I'm not sure how to get it to work in an event.

推荐答案

你应该调用 edit 直接来自 Guild 对象 server

async def on_ready(self):
server = self.bot.get_guild(SERVER_ID)
while server is not None:
    await server.edit(name="foo")
    await asyncio.sleep(1)
    await server.edit(name="bar")
    await asyncio.sleep(1)

另外,请确保您将公会的 id 作为 int 而不是字符串传递,并且 guild_only 装饰器只能用于命令.

Also, make sure that you're passing the id of the guild as an int and not a string, and the guild_only decorator should only be used on commands.

这篇关于Discord.py ctx.guild.edit 有效,但 self.bot.guild.edit 无效?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

上一篇:首次完成后取消两个异步协程 下一篇:discord.py @bot.command() 没有运行

相关文章