我的 Discord 机器人模块有问题。我得到AttributeError: 'NoneType' object has no attribute 'channels'我不确定它抛出这个错误的方式:这是我正在使用的内容:from discord.ext import commandsfrom discord.utils import getimport logging as logfrom datetime import datetime,timedeltaimport discordimport osfrom .utils import checksfrom run import UKGBotimport asyncioclass Pinner(): """Pins messages to a specific channel.""" def __init__(self, bot: UKGBot): self.bot = bot async def on_message(self, message): """Listen for message then pin it""" try: guild = message.guild channel = get(message.guild.channels, name="gtky") pins = await message.channel.pins() if message.channel == channel and message.type != discord.MessageType.pins_add: if len(pins) == 20: await message.unpin(pins[-1]) await asyncio.sleep(3) await message.pin() except discord.Forbidden: print("No permissions to do that!") def setup(bot): """Setup function""" to_add = Pinner(bot) bot.add_listener(to_add.on_message, 'on_message') bot.add_cog(to_add)
2 回答
浮云间
TA贡献1829条经验 获得超4个赞
您正在尝试访问channels
某个对象的属性,但该对象None
在其他语言中是== Null。
从您的代码中,您引用通道的唯一位置是message.guild.channels
,channel = get(message.guild.channels, name="gtky")
在行中,因此guild
消息对象的属性是None
慕标琳琳
TA贡献1830条经验 获得超9个赞
发生这种情况是因为message.guild
是None
。 guild
是None
因为私人消息,两个用户之间的直接消息,不经过公会。
如果您的机器人发送或接收任何私人消息,这些消息将None
作为其message.guild
属性。
添加回答
举报
0/150
提交
取消