Replying to this for anyone who needs it in the future.
You can detect a sticker and get its ID by using the API
I made a command that checks the message that the user is replying to,
bot.command()
async def check(ctx): #ctx is the users message, in this case, its just the command
GetMessage = await ctx.channel.fetch_message(ctx.message.reference.message_id) #This goes to get the message that the current message is replying to, then stores it
print(GetMessage.stickers[0].id) #Because discord.py returns the stickers in an array, you have to select the 'first' one and then grab its ID.
return
As for detecting whether a message has a sticker, you might want to try sticking it in a 'try except'