Discord.py AttributeError:“上下文”对象没有属性“服务器”

时间:2018-09-16 18:04:28

标签: python python-3.x discord discord.py

您好,我遇到一个错误,即出现错误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!")

2 个答案:

答案 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!")