命令引发异常:AttributeError:'NoneType'对象没有属性'system_channel'

时间:2020-09-16 21:59:07

标签: discord.py

我正在尝试发出一个命令,其中机器人通过,dm (server id)向我发送了服务器邀请,这就是我到目前为止所做的:

@client.command(name='dm')
async def dm(ctx, guild_id: int):
    if ctx.author.id == owner:
        guild = client.get_guild(guild_id)
        guildchannel = guild.system_channel
        invitelink = await guildchannel.create_invite(max_uses=1,unique=True)
        await ctx.author.send(invitelink)

有些服务器可以工作,有些则不能。无效的服务器发送此消息:'NoneType' object has no attribute 'create_invite',有时它向我发送同一服务器的2条邀请链接。请尽快提供帮助,并在此先感谢。

2 个答案:

答案 0 :(得分:0)

您的client.get_guild(guild_id)返回None,这意味着您的漫游器不在公会中,或者您的guild_id不是有效的公会ID

更新: 再次考虑,我认为您的目标服务器没有system_channel。然后,您可以在“公会设置”>“概述”>“系统消息通道”中进行检查。

答案 1 :(得分:0)

所以我找到了一种方法来更改它,这是代码:

@client.command(name='dm')
async def _dm(ctx, guild_id: int):
    if ctx.author.id == owner:
        guild = client.get_guild(guild_id)
        channel = guild.channels[-1]
        invitelink = await channel.create_invite(max_uses=1)
        await ctx.author.send(invitelink)