Discord RPC
The DiscordRPCPacket
is a client-bound packet that allows servers to customize the Discord Rich Presence of their players.
Creating a Discord Rich Presence
With Game Mode
Create the model with DiscordRichPresence.create
to create a Discord Rich Presence with the current game mode.
DiscordRPC discordRPC = DiscordRPC.create("Example Game Mode");
With Game Mode and Start Time
Create the model with DiscordRichPresence.createWithStart
to create a Discord Rich Presence with the current game mode and the start time.
DiscordRPC discordRPC = DiscordRPC.createWithStart("Example Game Mode", System.currentTimeMillis());
With Game Mode and End Time
Create the model with DiscordRichPresence.createWithEnd
to create a Discord Rich Presence with the current game mode and the end time.
DiscordRPC discordRPC = DiscordRPC.createWithEnd("Example Game Mode", System.currentTimeMillis());
Reset to Default
Create the model with DiscordRichPresence.reset
to reset the Discord Rich Presence to the default state.
DiscordRPC discordRPC = DiscordRPC.createReset();
Sending the Packet
The packet can either be sent via the LabyModPlayer
object of the player, or directly via the LabyModProtocol
.
Via LabyModPlayer
// Get the LabyModPlayer
LabyModPlayer labyModPlayer = LabyModProtocolService.get().getPlayer(uniqueId);
// Send the discord rpc model
labyModPlayer.sendDiscordRPC(discordRPC);
Via the LabyModProtocol
// Get the LabyModProtocol
LabyModProtocol labyModProtocol = LabyModProtocolService.get().labyModProtocol();
// Send the packet
labyModProtocol.sendPacket(uniqueId, new DiscordRPCPacket(discordRPC));