Discord.py Бот, который не действует, как он имеет разрешения - PullRequest
0 голосов
/ 26 марта 2020

Так что я работаю над Discord Bot и пытаюсь работать над назначением ролей. Я удостоверился, что использую новую систему перезаписи, я удостоверился, что дал ботам административные привилегии. Я принял почти все меры, которые мог придумать, и они просто не работают. Я посмотрел на обновленный API, чтобы справиться с ним, использовал пример кода в качестве основы, это код

import os

import discord
from discord.utils import get as dget
from discord.ext.commands import Bot
from dotenv import load_dotenv

load_dotenv('key.env')
TOKEN = os.getenv('DISCORD_TOKEN')

client = Bot(command_prefix = '!')

@client.event
async def on_ready():
    print('Connected')

@client.command()
async def role(ctx):
    user = ctx.message.author
    role = discord.utils.get(ctx.guild.roles, name="Sample")
    await user.add_roles(role)

client.run(TOKEN)

, и это ошибка, которую я получаю:

Ignoring exception in command role:
Traceback (most recent call last):
  File "C:\Users\chris\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\ext\commands\core.py", line 83, in wrapped
    ret = await coro(*args, **kwargs)
  File "d:/Google Drive/Coding/Khasbot/main.py", line 22, in role
    await user.add_roles(role)
  File "C:\Users\chris\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\member.py", line 641, in add_roles        
    await req(guild_id, user_id, role.id, reason=reason)
  File "C:\Users\chris\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\http.py", line 221, in request
    raise Forbidden(r, data)
discord.errors.Forbidden: 403 Forbidden (error code: 50013): Missing Permissions

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\chris\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\ext\commands\bot.py", line 892, in invoke 
    await ctx.command.invoke(ctx)
  File "C:\Users\chris\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\ext\commands\core.py", line 797, in invoke
    await injected(*ctx.args, **ctx.kwargs)
  File "C:\Users\chris\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\ext\commands\core.py", line 92, in wrapped
    raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: Forbidden: 403 Forbidden (error code: 50013): Missing Permissions

Я, честно говоря понятия не имею, что может пойти не так. Я пробовал бесконечные вещи и даже создал совершенно нового бота. Все та же проблема. Это сработало прошлой ночью и буквально просто не сделает этого.

1 Ответ

0 голосов
/ 26 марта 2020

Убедитесь, что ваш бот должен иметь разрешение на управление ролями на вашем сервере, а роль для добавления ролей должна быть ниже вашей верхней роли бота. Заставь тебя сделать эти 2 вещи.

...