Как добавить реакцию на сообщение, используя идентификатор сообщения - PullRequest
0 голосов
/ 01 ноября 2019

Я хочу сделать команду бота, которая добавляет реакцию на сообщение при получении смайлика и идентификатора сообщения.

Похоже, мне нужно превратить строку, полученную из исходного сообщения, в класс discord.Message, чтобы код работал, но я не могу это сделать.

Я уже прочитал документацию, и она просто говорит: «Не нужно создавать один из них вручную».

import discord
token = "Token Here"
client = discord.Client()
@client.event
async def on_message(message):
    if message.content.lower().startswith("e react"):
        msg_id = message.content[8:26] #This filters out the ID
        emoji = message.content[27:] #This filters out the Emoji
        await msg_id.add_reaction(emoji)

client.run(token)

Я получаю следующую ошибку:
AttributeError: 'str' object has no attribute 'add_reaction'

1 Ответ

0 голосов
/ 01 ноября 2019

Это делается намного проще, используя конвертеры . В частности, мы можем использовать MessageConverter для получения целевого Message объекта и PartialEmojiConverter для получения смайликов, с которыми мы хотим реагировать:

from discord.ext.commands import Bot
from discord import Message, PartialEmoji

bot = Bot("e ")

@bot.command()
async def react(ctx, message: Message, emoji: PartialEmoji):
    await message.add_reaction(emoji)

bot.run("TOKEN")
...