Skip to content

Commit

Permalink
Fix #738 add getters to voice json objects
Browse files Browse the repository at this point in the history
  • Loading branch information
quanticc committed Jul 6, 2020
1 parent 4f16485 commit 48f6304
Show file tree
Hide file tree
Showing 10 changed files with 138 additions and 35 deletions.
Expand Up @@ -190,19 +190,19 @@ private Mono<Void> connect(VoiceServerOptions vso, String sessionId,
if (payload instanceof Hello) {
stateChanges.next(VoiceConnection.State.CONNECTING);
Hello hello = (Hello) payload;
Duration interval = Duration.ofMillis(hello.getData().heartbeatInterval);
Duration interval = Duration.ofMillis(hello.getData().getHeartbeatInterval());
heartbeat.start(interval, interval);
log.info(format(context, "Identifying"));
outboundSink.next(new Identify(guildId.asString(), selfId.asString(), session.get(),
serverOptions.get().getToken()));
} else if (payload instanceof Ready) {
log.info(format(context, "Waiting for session description"));
Ready ready = (Ready) payload;
ssrc = ready.getData().ssrc;
ssrc = ready.getData().getSsrc();
cleanup.update(innerCleanup);
innerCleanup.add(Mono.defer(() ->
voiceSocket.setup(ready.getData().ip, ready.getData().port))
.zipWith(voiceSocket.performIpDiscovery(ready.getData().ssrc))
voiceSocket.setup(ready.getData().getIp(), ready.getData().getPort()))
.zipWith(voiceSocket.performIpDiscovery(ready.getData().getSsrc()))
.timeout(ipDiscoveryTimeout)
.retryWhen(ipDiscoveryRetrySpec)
.subscriberContext(context)
Expand All @@ -226,7 +226,7 @@ private Mono<Void> connect(VoiceServerOptions vso, String sessionId,
stateChanges.next(VoiceConnection.State.CONNECTED);
reconnectContext.reset();
SessionDescription sessionDescription = (SessionDescription) payload;
byte[] secretKey = sessionDescription.getData().secretKey;
byte[] secretKey = sessionDescription.getData().getSecretKey();
TweetNaclFast.SecretBox boxer = new TweetNaclFast.SecretBox(secretKey);
PacketTransformer transformer = new PacketTransformer(ssrc, boxer);
Consumer<Boolean> speakingSender = speaking ->
Expand Down
6 changes: 5 additions & 1 deletion voice/src/main/java/discord4j/voice/json/Hello.java
Expand Up @@ -30,10 +30,14 @@ public Hello(Data data) {

public static class Data {

public long heartbeatInterval;
private final long heartbeatInterval;

public Data(long heartbeatInterval) {
this.heartbeatInterval = heartbeatInterval;
}

public long getHeartbeatInterval() {
return heartbeatInterval;
}
}
}
30 changes: 23 additions & 7 deletions voice/src/main/java/discord4j/voice/json/Identify.java
Expand Up @@ -32,19 +32,35 @@ public Identify(Data data) {

public static class Data {

@JsonProperty("server_id")
public String serverId;
@JsonProperty("user_id")
public String userId;
@JsonProperty("session_id")
public String sessionId;
public String token;
private final String serverId;
private final String userId;
private final String sessionId;
private final String token;

public Data(String serverId, String userId, String sessionId, String token) {
this.serverId = serverId;
this.userId = userId;
this.sessionId = sessionId;
this.token = token;
}

@JsonProperty("server_id")
public String getServerId() {
return serverId;
}

@JsonProperty("user_id")
public String getUserId() {
return userId;
}

@JsonProperty("session_id")
public String getSessionId() {
return sessionId;
}

public String getToken() {
return token;
}
}
}
18 changes: 15 additions & 3 deletions voice/src/main/java/discord4j/voice/json/Ready.java
Expand Up @@ -30,14 +30,26 @@ public Ready(Data data) {

public static class Data {

public int ssrc;
public String ip;
public int port;
private final int ssrc;
private final String ip;
private final int port;

public Data(int ssrc, String ip, int port) {
this.ssrc = ssrc;
this.ip = ip;
this.port = port;
}

public int getSsrc() {
return ssrc;
}

public String getIp() {
return ip;
}

public int getPort() {
return port;
}
}
}
22 changes: 17 additions & 5 deletions voice/src/main/java/discord4j/voice/json/Resume.java
Expand Up @@ -32,16 +32,28 @@ public Resume(Data data) {

public static class Data {

@JsonProperty("server_id")
public String serverId;
@JsonProperty("session_id")
public String sessionId;
public String token;
private final String serverId;
private final String sessionId;
private final String token;

public Data(String serverId, String sessionId, String token) {
this.serverId = serverId;
this.sessionId = sessionId;
this.token = token;
}

@JsonProperty("server_id")
public String getServerId() {
return serverId;
}

@JsonProperty("session_id")
public String getSessionId() {
return sessionId;
}

public String getToken() {
return token;
}
}
}
30 changes: 25 additions & 5 deletions voice/src/main/java/discord4j/voice/json/SelectProtocol.java
Expand Up @@ -30,25 +30,45 @@ public SelectProtocol(Data data) {

public static class Data {

public String protocol;
public Inner data;
private final String protocol;
private final Inner data;

public Data(String protocol, Inner data) {
this.protocol = protocol;
this.data = data;
}

public String getProtocol() {
return protocol;
}

public Inner getData() {
return data;
}

public static class Inner {

public String address;
public int port;
public String mode;
private final String address;
private final int port;
private final String mode;

public Inner(String address, int port, String mode) {
this.address = address;
this.port = port;
this.mode = mode;
}

public String getAddress() {
return address;
}

public int getPort() {
return port;
}

public String getMode() {
return mode;
}
}
}
}
21 changes: 18 additions & 3 deletions voice/src/main/java/discord4j/voice/json/SentSpeaking.java
Expand Up @@ -16,6 +16,8 @@
*/
package discord4j.voice.json;

import com.fasterxml.jackson.annotation.JsonProperty;

public class SentSpeaking extends VoiceGatewayPayload<SentSpeaking.Data> {

public SentSpeaking(boolean speaking, int delay, int ssrc) {
Expand All @@ -24,14 +26,27 @@ public SentSpeaking(boolean speaking, int delay, int ssrc) {

public static class Data {

public boolean speaking;
public int delay;
public int ssrc;
private final boolean speaking;
private final int delay;
private final int ssrc;

public Data(boolean speaking, int delay, int ssrc) {
this.speaking = speaking;
this.delay = delay;
this.ssrc = ssrc;
}

@JsonProperty("speaking")
public boolean isSpeaking() {
return speaking;
}

public int getDelay() {
return delay;
}

public int getSsrc() {
return ssrc;
}
}
}
12 changes: 10 additions & 2 deletions voice/src/main/java/discord4j/voice/json/SessionDescription.java
Expand Up @@ -30,12 +30,20 @@ public SessionDescription(String mode, byte[] secretKey) {

public static class Data {

public String mode;
public byte[] secretKey;
private final String mode;
private final byte[] secretKey;

public Data(String mode, byte[] secretKey) {
this.mode = mode;
this.secretKey = secretKey;
}

public String getMode() {
return mode;
}

public byte[] getSecretKey() {
return secretKey;
}
}
}
18 changes: 15 additions & 3 deletions voice/src/main/java/discord4j/voice/json/Speaking.java
Expand Up @@ -30,14 +30,26 @@ public Speaking(Data data) {

public static class Data {

public final String userId;
public final int ssrc;
public final boolean speaking;
private final String userId;
private final int ssrc;
private final boolean speaking;

Data(String userId, int ssrc, boolean speaking) {
this.userId = userId;
this.ssrc = ssrc;
this.speaking = speaking;
}

public String getUserId() {
return userId;
}

public int getSsrc() {
return ssrc;
}

public boolean isSpeaking() {
return speaking;
}
}
}
Expand Up @@ -30,10 +30,14 @@ public VoiceDisconnect(Data data) {

public static class Data {

public final String userId;
private final String userId;

public Data(String userId) {
this.userId = userId;
}

public String getUserId() {
return userId;
}
}
}

0 comments on commit 48f6304

Please sign in to comment.