【问题标题】:Discord.py Bot that doesn't act like it has permissionsDiscord.py Bot 表现得不像拥有权限
【发布时间】:2020-03-25 22:24:38
【问题描述】:

所以我正在开发一个 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

老实说,我不知道出了什么问题。我尝试了无数的事情,甚至完全创建了一个全新的机器人。还是同样的问题。它昨晚有效,实际上就是不会这样做。

【问题讨论】:

    标签: python bots discord discord.py


    【解决方案1】:

    确保您的机器人必须在您的服务器上具有“管理角色”权限,并且用于添加角色的角色必须低于您的 bot 顶级角色。 让你做这两件事。

    【讨论】:

    • 我确实确认了这两件事,但我仍然遇到同样的问题。我还有一个管理员角色,我也将其添加到机器人
    • 修复了它。谢谢!
    • 我没有意识到我必须把它拖到顶部
    • @gospelguy2004 请务必将我的问题标记为正确的。
    猜你喜欢
    • 2021-12-15
    • 2021-08-12
    • 2020-11-15
    • 2021-02-20
    • 2018-12-04
    • 2019-10-24
    • 1970-01-01
    • 2020-11-25
    • 2020-05-02
    相关资源
    最近更新 更多