Connect locally to the Discord client using IPC for a subset of RPC features like Rich Presence and Activity Join/Spectate
First you'll need to add this project as a dependency. If you're using maven:
<dependency>
<groupId>com.jagrosh</groupId>
<artifactId>DiscordIPC</artifactId>
<version>LATEST</version>
</dependency>
<repository>
<id>central</id>
<name>bintray</name>
<url>http://jcenter.bintray.com</url>
</repository>
With gradle:
dependencies {
compile 'com.jagrosh:DiscordIPC:LATEST'
}
repositories {
jcenter()
}
Quick example, assuming you already have a GUI application
IPCClient client = new IPCClient(345229890980937739L);
client.setListener(new IPCListener(){
@Override
public void onReady(IPCClient client)
{
RichPresence.Builder builder = new RichPresence.Builder();
builder.setState("West of House")
.setDetails("Frustration level: Over 9000")
.setStartTimestamp(OffsetDateTime.now())
.setLargeImage("canary-large", "Discord Canary")
.setSmallImage("ptb-small", "Discord PTB")
.setParty("party1234", 1, 6)
.setMatchSecret("xyzzy")
.setJoinSecret("join")
.setSpectateSecret("look");
client.sendRichPresence(builder.build());
}
});
client.connect();
The official RPC bindings can be found here: https://github.com/discordapp/discord-rpc
A Java wrapper for the official bindings is available here: https://github.com/MinnDevelopment/Java-DiscordRPC