Fixed sending to the client
This commit is contained in:
@@ -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(())
|
||||
|
||||
Reference in New Issue
Block a user