Skip to content

Instantly share code, notes, and snippets.

@Hc747
Created July 29, 2018 04:52
Show Gist options
  • Save Hc747/3376f6ae6cc6870bd88877d5b268883d to your computer and use it in GitHub Desktop.
Save Hc747/3376f6ae6cc6870bd88877d5b268883d to your computer and use it in GitHub Desktop.
class DiscordRichPresenceUpdate(private val details: String?, private val state: String?, private val key: String?) {
fun encode(): PacketBuilder {
val buffer = PacketBuilder()
val builder = PacketBuilder(PACKET_ID, PacketType.BYTE)
var mask: Byte = 0
if (details != null) {
mask = mask xor DETAILS_MASK
builder.putString(details)
}
if (state != null) {
mask = mask xor STATE_MASK
builder.putString(state)
}
if (key != null) {
mask = mask xor KEY_MASK
builder.putString(key)
}
buffer.putByte(mask)
builder.writeTo(buffer)
return buffer
}
companion object {
const val PACKET_ID = 131
const val DETAILS_MASK: Byte = 0x1
const val STATE_MASK: Byte = 0x2
const val KEY_MASK: Byte = 0x4
//leaves 5 bits reserved for later usage
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment