first commit
Build AsminVoicechat / prepare-release (push) Successful in 14s
Build AsminVoicechat / build-and-test (17) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (18) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (19) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (20) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (21) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (22) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (23) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (24) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (25) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (26) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (27-ea) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (16) (push) Canceled after 38s
Build AsminVoicechat / prepare-release (push) Successful in 14s
Build AsminVoicechat / build-and-test (17) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (18) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (19) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (20) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (21) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (22) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (23) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (24) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (25) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (26) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (27-ea) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (16) (push) Canceled after 38s
This commit is contained in:
commit
bbccd4a815
454 files changed
+45050
No files matched your search
+99
@@ -0,0 +1,99 @@
|
||||
/*
|
||||
* Decompiled with CFR 0.152.
|
||||
*/
|
||||
package de.maxhenkel.voicechat.plugins.impl.audiosender;
|
||||
|
||||
import de.maxhenkel.voicechat.Voicechat;
|
||||
import de.maxhenkel.voicechat.api.audiosender.AudioSender;
|
||||
import de.maxhenkel.voicechat.voice.common.MicPacket;
|
||||
import de.maxhenkel.voicechat.voice.server.Server;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
public class AudioSenderImpl
|
||||
implements AudioSender {
|
||||
private static final Map<UUID, AudioSenderImpl> AUDIO_SENDERS = new HashMap<UUID, AudioSenderImpl>();
|
||||
private final UUID uuid;
|
||||
private boolean whispering;
|
||||
private long nextSequenceNumber;
|
||||
|
||||
public AudioSenderImpl(UUID uuid) {
|
||||
this.uuid = uuid;
|
||||
}
|
||||
|
||||
public static boolean registerAudioSender(AudioSenderImpl audioSender) {
|
||||
if (Voicechat.SERVER.isCompatible(audioSender.uuid)) {
|
||||
return false;
|
||||
}
|
||||
if (AUDIO_SENDERS.containsKey(audioSender.uuid)) {
|
||||
return false;
|
||||
}
|
||||
AUDIO_SENDERS.put(audioSender.uuid, audioSender);
|
||||
return true;
|
||||
}
|
||||
|
||||
public static boolean unregisterAudioSender(AudioSenderImpl audioSender) {
|
||||
return AUDIO_SENDERS.remove(audioSender.uuid) != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AudioSender whispering(boolean whispering) {
|
||||
this.whispering = whispering;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isWhispering() {
|
||||
return this.whispering;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AudioSender sequenceNumber(long sequenceNumber) {
|
||||
if (sequenceNumber < 0L) {
|
||||
throw new IllegalArgumentException("Sequence number must be positive");
|
||||
}
|
||||
this.nextSequenceNumber = sequenceNumber;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canSend() {
|
||||
return !Voicechat.SERVER.isCompatible(this.uuid) && AUDIO_SENDERS.get(this.uuid) == this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean send(byte[] opusEncodedAudioData) {
|
||||
return this.sendMicrophonePacket(opusEncodedAudioData);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean reset() {
|
||||
return this.sendMicrophonePacket(new byte[0]);
|
||||
}
|
||||
|
||||
public boolean sendMicrophonePacket(byte[] data) {
|
||||
if (data == null) {
|
||||
throw new IllegalStateException("opusEncodedData is not set");
|
||||
}
|
||||
if (!this.canSend()) {
|
||||
return false;
|
||||
}
|
||||
Server server = Voicechat.SERVER.getServer();
|
||||
if (server == null) {
|
||||
return true;
|
||||
}
|
||||
try {
|
||||
MicPacket packet = new MicPacket(data, data.length > 0 && this.whispering, this.nextSequenceNumber++);
|
||||
if (data.length <= 0) {
|
||||
this.nextSequenceNumber = 0L;
|
||||
}
|
||||
server.onMicPacket(this.uuid, packet);
|
||||
}
|
||||
catch (Exception e) {
|
||||
Voicechat.LOGGER.error("Failed to send audio", e);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user