Skip to content

Java

Compatibility

The package is compatible with Discord4J version 3.2.6 or higher, Javacord version 3.8.0 or higher, and JDA version 5.0.0-beta.8 or higher.

WARNING

This package is no longer maintained by the Discord Analytics team. Feel free to create a Pull Request at https://github.com/DiscordAnalytics/java-package

Dependency

Let's install discord-analytics's package (To get the latest version of the package please see this page) :

Add to your pom.xml file this:

xml
<dependencies>
  <dependency>
    <groupId>xyz.discordanalytics</groupId>
    <artifactId>discord-analytics</artifactId>
    <version>VERSION</version>
  </dependency>
</dependencies>

Installation

java
package example;
import discord4j.core.DiscordClient;
import discord4j.core.GatewayDiscordClient;
import discord4j.core.event.domain.lifecycle.ReadyEvent;
import discord4j.core.object.entity.User;
import xyz.discordanalytics.D4JAnalytics;
import xyz.discordanalytics.utilities.EventsTracker;
import reactor.core.publisher.Mono;

import java.io.IOException;
public class ExampleWithD4J {
    public static void main(String[] args) {
        // Create a Discord client
        // Don't forget to replace YOUR_BOT_TOKEN by your Discord bot token !
        DiscordClient client = DiscordClient.create("YOUR_BOT_TOKEN");
        Mono<Void> login = client.withGateway((GatewayDiscordClient gateway) ->
            // Handle the ReadyEvent
            gateway.on(ReadyEvent.class, event ->
                Mono.fromRunnable(() -> {
                    final User self = event.getSelf();
                    System.out.printf("Logged in as %s#%s%n", self.getUsername(), self.getDiscriminator());

                    // Initialize what you want to track
                    EventsTracker eventsTracker = new EventsTracker();
                    eventsTracker.trackInteractions = true;
                    eventsTracker.trackGuilds = true;
                    eventsTracker.trackUserCount = true;
                    eventsTracker.trackUserLanguage = true;
                    eventsTracker.trackGuildsLocale = true;
                    System.out.printf("Logged in as %s%n", self.getUsername());

                    // Initialize the DiscordAnalytics class
                    // Don't forget to replace YOUR_API_TOKEN by your Discord Analytics token !
                    D4JAnalytics analytics = new D4JAnalytics(client, eventsTracker, "YOUR_API_KEY");
                    D4JAnalytics analytics = new D4JAnalytics(client, "YOUR_API_KEY");
                    // Start the tracking, it will be done every 10 minutes to avoid spamming the API
                    try {
                        analytics.trackEvents();
                    } catch (IOException | InterruptedException e) {
                        e.printStackTrace();
                    }
                })));
        // Login the client
        login.block();
    }
}

Complete installation

To complete installation, please restart you bot