我正在尝试让我的机器人检查成员是否在服务器上。 我问这个只是因为我试过 this answer 并且它总是返回 None,无论如何。
这是我目前的代码:
@bot.command()
async def membercheck(ctx, member:discord.Member):
guild = bot.get_guild(my_server_id)
if guild.get_member(member) is not None:
await ctx.send("he on server")
else:
await ctx.send("he not on server")
理想情况下,我的代码应该可以工作,以便您输入用户 ID,机器人会检查用户是否在服务器上。
预先感谢您的帮助!
答案 0 :(得分:0)
它返回 None
总是因为您将 discord.Member
对象传递给 Guild.get_member
而不是 int。
@bot.command()
async def membercheck(ctx, member: discord.User):
guild = bot.get_guild(some_id)
member = guild.get_member(member.id)
if member is None:
await ctx.send('Member is not in the server')
else:
await ctx.send('Member is in the server')
此外,最好使用 UserConverter
,因为 MemberConverter
在无法获取成员时会引发 MemberNotFound
错误
编辑
@bot.command()
async def membercheck(ctx, id: int):
guild = bot.get_guild(some_id)
member = guild.get_member(id)
if member is None:
await ctx.send('Member is not in the server')
else:
await ctx.send('Member is in the server')