DuncteBot / SkyBot

SkyBot is an LGBT-friendly discord bot with music and mod commands written in JDA
http://duncte.bot
GNU Affero General Public License v3.0
39 stars 19 forks source link

db!userinfo shows not a Nitro User, when i am one. #201

Closed ROMVoid95 closed 4 years ago

ROMVoid95 commented 5 years ago

Describe the bug db!userinfo command on myself shows Discord Nitro User as "No", however i am a Nitro user. image of command and profile badge, can send Nitro page from profile if needed https://imgur.com/ktg3KYy

To Reproduce Steps to reproduce the behavior:

  1. Have Nitro (for me at least)
  2. perform db!userinfo w/ no args
  3. See error

Expected behavior Unless there is a big api difference between Nitro and Nitro Classic (Early Supporter) it should show Yes in command

Screenshots https://imgur.com/ktg3KYy

Additional context The To Reproduce section i filled out may look sarcastic but its not i swear just following format :)

duncte123 commented 5 years ago

This is not a bug but a limitation from Discords end. Discord doesn't provide us with your nitro status so the only way for us to check if you are a nitro user is if you have a gif avatar. If you want to force the display I suggest that you make a gif avatar via https://ezgif.com/ and set it to 2 of the same frames, once you've done that you have a gif avatar that looks like a png and the bot will display you as a nitro user.

ROMVoid95 commented 5 years ago

They must have just added it, or has not been implemented in JDA yet. Saw it in their documents now.

| premium_type? | integer | the type of Nitro subscription on a user's account | identify |

{
  "id": "80351110224678912",
  "username": "Nelly",
  "discriminator": "1337",
  "avatar": "8342729096ea3675442027381ff50dfe",
  "verified": true,
  "email": "nelly@discordapp.com",
  "flags": 64,
  "premium_type": 1
}

Thanks for the reply!

duncte123 commented 5 years ago

That is not available to the bot API unfortunately, the bot API only receives the id, username, discriminator and the avatar.

This can only be used via the OAuth API, the dashboard uses the OAuth API for example.

duncte123 commented 5 years ago

Here is a real-world example that shows all the data with a fetch user request from discord https://documenter.getpostman.com/view/3863890/S1EWNaDW

ROMVoid95 commented 5 years ago

yep just missed the identify part of REQUIRED OAUTH2 SCOPE. sorry to waste your time. thanks for the info too!