You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

client-basics.md 2.5 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. ---
  2. uid: FAQ.Basics.ClientBasics
  3. title: Basic Questions about Client
  4. ---
  5. # Client Basics Questions
  6. ## My client keeps returning 401 upon logging in!
  7. > [!WARNING]
  8. > Userbot/selfbot (logging in with a user token) is not
  9. > officially supported with this library.
  10. >
  11. > Logging in under a user account may result in account
  12. > termination!
  13. There are few possible reasons why this may occur.
  14. 1. You are not using the appropriate [TokenType].
  15. If you are using a bot account created from the Discord Developer
  16. portal, you should be using `TokenType.Bot`.
  17. 2. You are not using the correct login credentials.
  18. Please keep in mind that tokens start with `Mj*`.
  19. If it starts with any other characters, chances are, you might be
  20. using the *client secret*, which has nothing to do with the login
  21. token.
  22. [TokenType]: xref:Discord.TokenType
  23. ## How do I do X, Y, Z when my bot connects/logs on? Why do I get a `NullReferenceException` upon calling any client methods after connect?
  24. Your bot should **not** attempt to interact in any way with
  25. guilds/servers until the [Ready] event fires. When the bot
  26. connects, it first has to download guild information from
  27. Discord in order for you to get access to any server
  28. information; the client is not ready at this point.
  29. Technically, the [GuildAvailable] event fires once the data for a
  30. particular guild has downloaded; however, it's best to wait for all
  31. guilds to be downloaded. Once all downloads are complete, the [Ready]
  32. event is triggered, then you can proceed to do whatever you like.
  33. [Ready]: xref:Discord.WebSocket.DiscordSocketClient.Ready
  34. [GuildAvailable]: xref:Discord.WebSocket.BaseSocketClient.GuildAvailable
  35. ## How do I get a message's previous content when that message is edited?
  36. If you need to do anything with messages (e.g. checking Reactions,
  37. checking the content of edited/deleted messages), you must set the
  38. [MessageCacheSize] in your [DiscordSocketConfig] settings in order to
  39. use the cached message entity. Read more about it [here](xref:Guides.Concepts.Events#cacheable).
  40. 1. Message Cache must be enabled.
  41. 2. Hook the MessageUpdated event. This event provides a *before* and
  42. *after* object.
  43. 3. Only messages received *after* the bot comes online will be
  44. available in the cache.
  45. [MessageCacheSize]: xref:Discord.WebSocket.DiscordSocketConfig.MessageCacheSize
  46. [DiscordSocketConfig]: xref:Discord.WebSocket.DiscordSocketConfig
  47. [MessageUpdated]: xref:Discord.WebSocket.BaseSocketClient.MessageUpdated