discord.py 2.0+版本旧踢人命令失效问题的修复方案
Discord.py 1.7.3 升级到2.0+ 踢人命令修复方案
以下是你在Discord.py 1.7.3版本编写的踢人命令:
#kick @client.command(pass_context = True) @commands.has_permissions(kick_members=True) async def kick(ctx, member: discord.Member, *, reason = None): emb = discord.Embed(title = 'Кик', colour = discord.Color.green() ) await ctx.channel.purge(limit = 1) await member.kick(reason=reason) emb.set_author(name = member.name, icon_url= member.avatar_url) emb.add_field(name = 'Кик', value = 'кикнул игрока : {}'.format(member.mention)) emb.set_footer(text = 'Был кикнут администратором {}'.format(ctx.author.name), icon_url = ctx.author.avatar.url) await ctx.send( embed= emb) await asyncio.sleep(5) await ctx.channel.purge(limit=1 )
升级到Discord.py 2.0.0及以上版本后该命令失效,需要修改两处关键内容:
- 移除
@client.command()中的pass_context=True参数:Discord.py 2.0+版本已自动传递上下文,该参数不再需要。 - 将
member.avatar_url替换为member.avatar.url:适配2.0+版本的头像属性调用方式。
修改后的完整代码如下:
#kick @client.command() @commands.has_permissions(kick_members=True) async def kick(ctx, member: discord.Member, *, reason = None): emb = discord.Embed(title = 'Кик', colour = discord.Color.green() ) await ctx.channel.purge(limit = 1) await member.kick(reason=reason) emb.set_author(name = member.name, icon_url= member.avatar.url) emb.add_field(name = 'Кик', value = 'кикнул игрока : {}'.format(member.mention)) emb.set_footer(text = 'Был кикнут администратором {}'.format(ctx.author.name), icon_url = ctx.author.avatar.url) await ctx.send( embed= emb) await asyncio.sleep(5) await ctx.channel.purge(limit=1 )
内容的提问来源于stack exchange,提问作者Akmal Shuxratov
相关产品推荐
相关产品推荐

