Как я мог бы добавить реакции на это без получения ошибки?

#python #discord.py

#python #discord.py

Вопрос:

Мне интересно, как бы я добавил реакции к этому коду без получения каких-либо ошибок или чего-то подобного? Я уже пробовал:

 import discord
import os
import replit
import keep_alive
from discord.ext import commands
from discord.utils import get

client = discord.Client()

@client.event
async def on_ready():
  print("ready!")
  await client.change_presence(activity=discord.Activity(type=discord.ActivityType.watching, name="over PRFL"))
  
@client.event
async def on_message(message):
  if message.content.startswith('<:NewEngland:759084416445710466> offer'):
    emoji1 = [':white_check_mark:']
    await message.add_reaction(emoji1)
    emoji2 = [':x:']
    await message.add_reaction(emoji2)
    member = message.mentions[0]
    await message.channel.send(f'{member.mention} **offered by** <:NewEngland:759084416445710466
  

Комментарии:

1. Какие ошибки вы получаете?

2. discord.errors.InvalidArgument: emoji argument must be str, Emoji, or Reaction not NoneType.

3. Не могли бы вы опубликовать свой полный код. Код, который вы опубликовали, не будет работать так.

Ответ №1:

Как указано в вашем сообщении об ошибке, вы ввели недопустимые аргументы в свой add_reaction вызов.

Кроме того, реакции не работают с :unicode_name_of_character: синтаксисом, и вы должны либо ввести его обычным способом, либо найти escape-код unicode (белая галочка u2705 и красный крестик u274c ) реакции.
Попробуйте использовать:

     emoji1 = 'u2705' # :white_check_mark:
    await message.add_reaction(emoji1)
    emoji2 = 'u274c' # :x:
    await message.add_reaction(emoji2)
  

(Примечание: вы можете использовать hex(ord('somerandomcharacter') для получения нужного вам экранирования в Юникоде. Чтобы скопировать их из discord, скопируйте смайлик, а затем вставьте его в блок кода, а затем скопируйте его снова.)

Ответ №2:

Когда вы присваиваете emoji [] своим переменным, вы создаете список.
Также вы не можете использовать сокращение для смайликов с ботом discord.
Итак, вместо :white_check_mark: того, чтобы вы можете использовать сам смайлик
Или вы можете использовать юникод 'u2705' , поэтому вам нужно сделать:

 emoji1 = '✅'
  

или

 emoji1 = 'u2705'