【问题标题】:Using get_member in Cogs在 Cogs 中使用 get_member
【发布时间】:2021-06-02 08:25:18
【问题描述】:

我有两个应用程序,一个是 main.py,它是我的主文件,另一个是 Loops.py,我在其中使用 Cogs 和任务,所以出现了问题。我有一个功能可以更改我的机器人的昵称每秒换一个这样的名字:

botsnick = cycle(['????','????????','????????????','????????????????','????????????????????','????????????????????????','????????????????????????????','???????????????????????????? ????','???????????????????????????? ????????','???????????????????????????? ????????????','???????????????????????????? ????????????????'])
@tasks.loop(seconds=1)
async def change_nick():
    server = client.get_guild(771043820157534228)
    bots = server.get_member(848887911884521502)
    await bots.edit(nick=next(botsnick))

它在 main.py 中正常工作,但只要我将此代码实现到 Loops.py 和 Cog 中,就像这样:

class Loops(commands.Cog):
    def __init__(self,client):
        self.client = client
        self.change_nick.start()
        

    botsnick = cycle(['????','????????','????????????','????????????????','????????????????????','????????????????????????','????????????????????????????','???????????????????????????? ????','???????????????????????????? ????????','???????????????????????????? ????????????','???????????????????????????? ????????????????'])
    @tasks.loop(seconds=1)
    async def change_nick(self):
        server = self.client.get_guild(771043820157534228)
        bots = server.get_member(848887911884521502)
        await bots.edit(nick=next(self.botsnick))


def setup(client):
    client.add_cog(Loops(client))

我收到此错误:

bots = server.get_member(848887911884521502)
AttributeError: 'NoneType' object has no attribute 'get_member'

但是如果我使用这个函数,main.py 中没有错误,有什么问题?

【问题讨论】:

  • 我可能完全错了,但我认为 server 不是有效的方法,请尝试使用 guild.get_member 而不是 server.get_member

标签: python-3.x discord discord.py


【解决方案1】:

get_member 从缓存中获取Member,因为循环立即开始,你的机器人的内部缓存还没有准备好,结果它什么也没有找到并返回None

简单的解决方法是在@yourtaskname.before_loop 中使用await self.client.wait_until_ready()

【讨论】:

    猜你喜欢
    • 2021-11-10
    • 2019-04-30
    • 2021-04-19
    • 2022-08-14
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    相关资源
    最近更新 更多