【发布时间】:2021-04-28 05:37:26
【问题描述】:
我正在为一个不和谐的机器人发出一个说命令,并且大部分情况下一切正常。我想做的是一个人可以在任何频道中使用的命令,它会在被告知发送它的频道中发送委托的消息。这一切都有效,这是我的代码:
async def say(self, ctx, channelname, *, message):
"""Make the bot say whatever you want it to say"""
channel = discord.utils.get(ctx.guild.channels, name=channelname)
await channel.send(message)
但是,我的问题是,预期的 discord 服务器中的每个频道在频道名称前都有一个表情符号,因此使用 discord 功能要容易得多,如果您键入 #,您可以单击名称渠道。但是,每当我这样做并发送它时,# 仍然存在,它会抛出这个错误代码:
AttributeError: NoneType object has no attribute “send”
有人知道我该如何解决这个问题吗?
提前致谢!
【问题讨论】:
-
您是否启用了意图?
-
@Nurqm 对不起,那是什么?我不熟悉这个词
-
@SuperStormer 这似乎没有帮助,因为即使我删除了这些字符并只获得了 ID,我仍然会遇到同样的错误,因为 discord.utils.get(ctx.guild.channels)方法接受一串字符(通道的“名称”),而不是通道的特定 ID。有没有办法从该 ID 制作频道对象?因为如果是这样,那将解决我的问题。
标签: python python-3.x discord discord.py discord.py-rewrite