您好,我遇到一个错误,即出现错误AttributeError:'Context'对象没有属性'server',但是如何将ctx.server:
放入代码中。我以为这可以工作,尽管我在协程签名中缺少ctx。
这里是我要尝试的方法。
@commands.command(pass_context=True, no_pm=True)
async def unpin(self, ctx):
"""Listen for a message then unpin any other messages older than 7 days"""
server = ctx.server
messages = await self.bot.pins_from(self.bot.get_channel('490899209067823135'))
if server:
for msg in messages:
if (datetime.now() - msg.timestamp).days > 7:
try:
await self.bot.unpin_message(msg)
print ("Unpinned")
except discord.Forbidden:
print("No permissions to do that!")
答案 0 :(得分:0)
改为使用ctx.message.server
根据{{3}} Context
没有属性server
答案 1 :(得分:-1)
您可以使用channel = self.bot.get_channel()
这就是我为您所做的。请注意,Discord将您限制为每个通道50个引脚,因此您需要进行粗略的检查,以评估通道是否有空间容纳输入引脚。
async def on_message(self, message):
"""Listen for message then pin it"""
try:
server = message.server
channel = self.bot.get_channel('1234567890')
pins = await self.bot.pins_from(channel)
if message.channel == channel and message.type !=
discord.MessageType.pins_add:
if len(pins) == 50:
await self.bot.unpin_message(pins[-1])
await self.bot.pin_message(message)
except discord.Forbidden:
print("No permissions to do that!")