Discord python 机器人无法启动
Discord python bot can't kick
所以这是一个我试过使用的踢会员的代码,但它不起作用,这里出了什么问题?
@client.command(pass_context = True)
@commands.has_permissions(kick_members = True)
async def kick(ctx, member = discord.Member, *, reason = None):
await member.kick(reason = reason)
await ctx.message.add_reaction("✅")
await ctx.send("{} was kicked for the reason: {} by {}".format(member,reason,ctx.author.name))
await member.send()
@kick.error
async def kick_error(ctx, error):
if isinstance(error, MissingPermissions):
x = ""
for i in MissingPermissions:
x = x + i + "\n"
await ctx.send("You don't have the following permissions: {}".format(x))
- 您不必再使用
pass_context = True
只需留空 ()
(changelog in documentation)。
- 将
member = discord.Member
替换为member : discord.Member
。
- 删除
await member.send()
- 无论如何您都不会使用它。
更正代码
@client.command()
@commands.has_permissions(kick_members = True)
async def kick(ctx, member : discord.Member, *, reason = None):
await member.kick(reason = reason)
await ctx.message.add_reaction("✅")
await ctx.send(f"{member.mention} was kicked for the reason: {reason} by {ctx.author.name.mention}")
@kick.error
async def kick_error(ctx, error):
if isinstance(error, discord.ext.commands.errors.MissingPermissions):
x = ""
for i in discord.ext.commands.errors.MissingPermissions:
x = x + i + "\n"
await ctx.send(f"You don't have the following permissions: {x}")
elif isinstance(error, discord.ext.commands.errors.MissingRequiredArgument):
await ctx.send(str(error))
我更正了您的代码并添加了您可能想要 read about it. I also added .mention
的最新字符串格式化方法 (f"{something}"
),其中提到了成员并添加了另一个检查 kick_error()
.
所以这是一个我试过使用的踢会员的代码,但它不起作用,这里出了什么问题?
@client.command(pass_context = True)
@commands.has_permissions(kick_members = True)
async def kick(ctx, member = discord.Member, *, reason = None):
await member.kick(reason = reason)
await ctx.message.add_reaction("✅")
await ctx.send("{} was kicked for the reason: {} by {}".format(member,reason,ctx.author.name))
await member.send()
@kick.error
async def kick_error(ctx, error):
if isinstance(error, MissingPermissions):
x = ""
for i in MissingPermissions:
x = x + i + "\n"
await ctx.send("You don't have the following permissions: {}".format(x))
- 您不必再使用
pass_context = True
只需留空()
(changelog in documentation)。 - 将
member = discord.Member
替换为member : discord.Member
。 - 删除
await member.send()
- 无论如何您都不会使用它。
更正代码
@client.command()
@commands.has_permissions(kick_members = True)
async def kick(ctx, member : discord.Member, *, reason = None):
await member.kick(reason = reason)
await ctx.message.add_reaction("✅")
await ctx.send(f"{member.mention} was kicked for the reason: {reason} by {ctx.author.name.mention}")
@kick.error
async def kick_error(ctx, error):
if isinstance(error, discord.ext.commands.errors.MissingPermissions):
x = ""
for i in discord.ext.commands.errors.MissingPermissions:
x = x + i + "\n"
await ctx.send(f"You don't have the following permissions: {x}")
elif isinstance(error, discord.ext.commands.errors.MissingRequiredArgument):
await ctx.send(str(error))
我更正了您的代码并添加了您可能想要 read about it. I also added .mention
的最新字符串格式化方法 (f"{something}"
),其中提到了成员并添加了另一个检查 kick_error()
.