角色删除和角色删除命令不起作用|不和谐

时间:2020-10-22 12:21:40

标签: discord.py

我做了一个角色删除和角色删除命令,以了解发生了什么。工作正常,但漫游器没有响应,也没有删除/删除角色。在处理其他命令时,我可能已经搞砸了,因为其他所有工作都很好,但是当我搜索在线解决方案时。所有结果与我的代码相同。不知道发生了什么。

角色删除命令:

  @commands.command()
  async def roledelete(self, ctx, *, role: discord.Role):
    await role.delete()
    await ctx.send(f'"{role}" got yeeted')

角色删除命令:

  @commands.command()
  async def roleremove(self, ctx, roles, member: discord.Member=None):
    if member == None:
      member = ctx.message.author
      guild = ctx.guild
      role = discord.utils.get(guild.roles, name=f"{roles}")
      await member.remove_roles(role)
      await ctx.send(f"{roles} role has been removed")

2 个答案:

答案 0 :(得分:0)

对于roleremove,如果member == None,则正在运行代码以从成员中删除角色。如果指定了成员,则没有代码可将角色从用户中删除。这应该可以解决

@commands.command()
async def roleremove(self, ctx, roles, member: discord.Member=None):
    if member == None:
        pass
    else:
        member = ctx.message.author
        guild = ctx.guild
        role = discord.utils.get(guild.roles, name=f"{roles}")
        await member.remove_roles(role)
        await ctx.send(f"{roles} role has been removed")

roledelete中没有问题,因此该问题必须在代码的其他地方。

答案 1 :(得分:0)

该问题仅用于删除而不是删除命令。无论如何,所以我删除了一个变量,并替换了我的remove命令上的一些代码,它开始工作了。我花了整整一天的时间尝试找出解决方案,解决方案就像这个大声笑一样简单。这是任何人需要的代码:

  @commands.command()
  async def roleremove(self, ctx, roles, member: discord.Member=None):
      role = discord.utils.get(ctx.guild.roles, name=f"{roles}")
      await member.remove_roles(role)
      await ctx.send(f"{roles} role has been removed")
      if member == None:
        await ctx.send("Ok I'll remove roles but from who tho??"