Fixed sending to the client

This commit is contained in:
2026-01-06 20:53:44 +01:00
parent 36fc8da82b
commit 6e3d509742
+7 -4
View File
@@ -39,19 +39,22 @@ pub fn leave(server: &Arc<Server>, client: &Client, channel_id: &str) -> crate::
pub fn voice(server: &Arc<Server>, client: &Client, data: &[u8]) -> crate::Result<()> {
let v = server.voice.lock().unwrap();
let Some((channel_id, voice_id)) = v.find_user(&client.get_uuid()?) else {
let user_id = client.get_uuid()?;
let Some((channel_id, voice_id)) = v.find_user(&user_id) else {
return Ok(());
};
let targets = v.get(&channel_id);
let mut targets = v.get(&channel_id);
if let Some(pos) = targets.iter().position(|x| *x == &user_id) {
targets.remove(pos);
}
let prefix = voice_id.to_le_bytes();
let mut payload = Vec::with_capacity(prefix.len() + data.len());
payload.extend_from_slice(&prefix);
payload.extend_from_slice(data);
client.send_bin(&payload)?;
server.broadcast_bin_to(&targets, payload)?;
Ok(())