Reputation: 1979
I'm trying to get my bot to check if a member is on the server or not. I'm only asking this because I tried this answer and it always returns None, no matter what.
Here's my code so far:
@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")
Ideally my code should work so that you input a User ID and the bot checks if the user is on the server.
Thanks in advance for your help!
Upvotes: 1
Views: 1814
Reputation: 15728
It's returning None
always cause you're passing a discord.Member
object to Guild.get_member
instead of an 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')
Also it's better if you use UserConverter
as MemberConverter
is going to raise MemberNotFound
error when it can't get the member
EDIT
@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')
Upvotes: 3