discord.errors.HTTPException проблема - PullRequest
0 голосов
/ 16 сентября 2018

Привет, похоже, я столкнулся с ошибкой Discord.В настоящее время я пишу модуль для закрепления сообщений в определенном канале после сообщения.

Модуль был протестирован и работает хорошо, но я сталкиваюсь с этой ошибкой.

  File "C:\Users\User\Documents\bot\modules\pinner.py", line 22, in 
on_message
    await self.bot.pin_message(message)


   discord.errors.HTTPException: BAD REQUEST (status code: 400): Cannot execute 
action on a system message

Я не уверен, что говорит мне эта ошибка.Но вот код, с которым я работаю:

class Pinner():
"""Pins messages to a specific channel."""

def __init__(self, bot):
    self.bot = bot


async def on_message(self, message):
    """Listen for message then pin it"""
    server = message.server
    channelid = '469108626888458241'
    if server:
        if message.channel.id == channelid:
            try:
                await self.bot.pin_message(message)
            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)

Если кто-то может помочь, это будет с благодарностью.

1 Ответ

0 голосов
/ 16 сентября 2018

Это происходит потому, что вы пытаетесь закрепить системное сообщение, которое появляется всякий раз, когда кто-то прикрепляет сообщение.

@ Пользователь прикрепил сообщение к этому каналу. Показать все контакты .

Вы можете проверить это, проверив message.type против MessageType.pins_add

async def on_message(self, message):
    """Listen for message then pin it"""
    server = message.server
    channelid = '469108626888458241'
    if server and message.channel.id == channelid and message.type != discord.MessageType.pins_add:
        try:
            await self.bot.pin_message(message)
        except discord.Forbidden:
            print("No permissions to do that!")
...