JDA
Java wrapper for the popular chat & VOIP service
...Note that JDA is not a good tool to build a custom discord client as it loads all servers/guilds on startup, unlike 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.