@Punishment

Мой код не работает, но не выводит ошибку discord py?

Мой бот должен выдавать роли по реакции на емоджи, но он не работает. При этом в консоли не выводится ошибка. Вот мой код:
import discord
from discord.ext import commands
import json

client = commands.Bot(command_prefix = ".")

@client.event
async def on_raw_reaction_add(payload):
  if payload.member.bot:
    pass
  else:
    with open('reactrole.json') as react_file:
      data = json.load(react_file)
      for x in data:
        if x['pubg_emoji'] == payload.emoji.name:
          
          role = discord.utils.get(client.get_guild(payload.guild_id).roles, id=x['pubg_id'])

          await payload.member.add_roles(role)

@client.command()
async def reactrole(ctx,emoji,role : discord.Role,*,message):
  emb = discord.Embed(description = message)
  msg = await ctx.channel.send(embed = emb)
  await msg.add_reaction (emoji)
  
client.run("My token")

Код файла:
["pubg_emoji":":pubg:","pubg_id": 817371069547020308]
  • Вопрос задан
  • 143 просмотра
Пригласить эксперта
Ответы на вопрос 2
SoreMix
@SoreMix Куратор тега Python
yellow
Код файла:
["pubg_emoji":":pubg:","pubg_id": 817371069547020308]

Не может такого быть, это невалидный формат

Даже если предположить, что это - словарь, то все равно
for x in data:
        if x['pubg_emoji'] == payload.emoji.name:

выкинет ошибку
Ответ написан
@Punishment Автор вопроса
Попытался исправить но теперь ошибка другая:
line 13, in on_ready
    await client.add_reaction(Moji, emoji='')
AttributeError: 'Bot' object has no attribute 'add_reaction'

Этот ужас продолжается на протяжении месяца, прошу помогите пожалуйста
Вот мой код:
import discord
from discord.ext import commands

client = commands.Bot(command_prefix = ".",intents = discord.Intents.all())

@client.event
async def on_ready():
  print(discord.__version__)
  
  Channel = client.get_channel(815949348948934716)
  Text= "Выбери свою роль"
  Moji = await Channel.send(Text)
  await client.add_reaction(Moji, emoji='')
@client.event
async def on_reaction_add(reaction, user):
  
  Channel = client.get_channel(815949348948934716)
  if reaction.message.channel.id != Channel:
    return
  if reaction.emoji == "":
    
    Role = discord.utils.get(user.server.roles, name="PUBG")
    await client.add_roles(user, Role)
    
client.run("My token")
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы