moinierer3000
moinierer3000

Reputation: 1979

In discord.py how do I check if a member is on the server?

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

Answers (1)

Łukasz Kwieciński
Łukasz Kwieciński

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

Related Questions