Discord.py频道消息固定方法及代码NameError报错求助
解决Discord.py固定消息的问题
嘿,我来帮你搞定这个报错~你遇到的NameError是因为你调用的pin_message()并不是一个独立的全局函数,在Discord.py里,固定消息是消息对象自带的方法,得通过你发送的消息实例来调用才行。
正确的代码示例
你只需要把原来的代码改成这样:
# 发送消息并保存消息对象 message = await ctx.send("Message to pin") # 调用消息对象的pin()方法完成固定 await message.pin()
额外补充:固定已存在的消息
如果你想固定频道里已经发过的旧消息,可以先通过频道和消息ID获取到对应的消息对象,再调用pin()方法:
# 替换成你的目标频道ID channel = bot.get_channel(123456789012345678) # 替换成你要固定的消息ID existing_message = await channel.fetch_message(987654321098765432) await existing_message.pin()
简单来说,Discord.py把固定消息的功能封装在了消息对象里,所以不能直接调用一个不存在的pin_message函数,而是要使用消息对象.pin()的形式~
内容的提问来源于stack exchange,提问作者Vortex
相关产品推荐
相关产品推荐

