不和谐.py |我正在尝试使用会员名称和会员 ID 解除我的机器人禁令

Posted

技术标签:

【中文标题】不和谐.py |我正在尝试使用会员名称和会员 ID 解除我的机器人禁令【英文标题】:Discord.py | I'm trying to make my bot unban with both Member Name and Member ID 【发布时间】:2021-04-21 20:05:53 【问题描述】:

我的代码(在 Cog 内):

import discord
import datetime
from discord.ext import commands

class unban(commands.Cog):

    def __init__(self, client):
        self.client = client

    @commands.command()
    @commands.has_permissions(ban_members = True)
    async def unban(self, ctx, id: int):
        user = await self.client.fetch_user(id)
        await ctx.guild.unban(user)

        unban= discord.Embed(title=f'A moderation action has been performed!', description='', color=0x90fd05)
        #unban.add_field(name='User Affected:', value=f'`member.name`', inline=True)
        #unban.add_field(name='User ID:', value=f'`member.id`', inline=True)
        unban.add_field(name='Moderator Name:', value=f'`ctx.author`', inline=True)
        unban.add_field(name='Moderator ID:', value=f'`ctx.author.id`', inline=True)
        unban.add_field(name='Action Performed:', value='`UnBan`', inline=True)
        unban.set_author(name=f'ctx.guild', icon_url=ctx.guild.icon_url)
        #unban.set_thumbnail(url=member.avatar_url)
        unban.timestamp = datetime.datetime.utcnow()

        await ctx.send(embed=unban)
        
        
def setup(client):
    client.add_cog(unban(client))

我已下达命令,以便我可以解除对人员的禁令。但是我只能用他们的ID解禁。我也希望它用他们的名字解禁。那我该怎么做呢?

我也尝试过替换:

async def unban(self, ctx, id: int):

与:

async def unban(self, ctx, member : discord.Member):

但没有任何效果。我已经尝试过使用这两种方法:

async def unban(self, ctx, member : discord.Member, id: int):

但仍然没有任何效果......

【问题讨论】:

【参考方案1】:
async def unban(self, ctx, member : discord.Member):

由于被禁止的成员只能由discord.User 或ID 表示,因此无法正常工作。

async def unban(self, ctx, user_id : int):
    user = await self.client.fetch_user(user_id)
    await ctx.guild.unban(user)

这仅适用于 ID,因此 discord 可以在他们的数据库中找到用户。

【讨论】:

是的,它似乎不再起作用了。除了代码的其他部分,我还需要添加其他任何内容吗?:async def unban(self, ctx, member : discord.User): 每当我尝试解禁时都会出现错误。 “找不到用户” 现在连错误都没有...我到底做错了什么xD? @xXSkillexZ 我想我已经为你修好了 终于修好了!是的,我忘了它是在一个 Cog 里面,所以这就是它不起作用的原因。无论如何,再次感谢您的帮助!

以上是关于不和谐.py |我正在尝试使用会员名称和会员 ID 解除我的机器人禁令的主要内容,如果未能解决你的问题,请参考以下文章

不和谐.py |更新频道名称 on_member_join

终于会员年龄不工作了

如何在 discord.py 中将字符串更改为不和谐 id

会员资格不被认可

如何使用 discord.py 获取不和谐用户的用户 ID

多个会员提供者,一个用户