JDA
Java wrapper for the popular chat & VOIP service
... a client which does this via lazy loading instead. If you need a bot, use a bot account from the Application Dashboard. Creating the JDA Object is done via the JDABuilder class. After setting the token and other options via setters, the JDA Object is then created by calling the build() method. When build() returns, JDA might not have finished starting up. However, you can use await ready() on the JDA object to ensure that the entire cache is loaded before proceeding.