~starkingdoms/starkingdoms

ref: 296b5c9ee0b1ea5d2c63308dee04f31acafe6a7c starkingdoms/client/src/chat.rs -rw-r--r-- 568 bytes
296b5c9e — core multiple players support 2 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use wasm_bindgen::prelude::*;
use starkingdoms_protocol::MessageC2S;
use crate::CLIENT;
use futures::SinkExt;

#[wasm_bindgen]
// TODO: Switch to async-aware mutexes
#[allow(clippy::await_holding_lock)]
pub async fn send_chat(message: &str) -> Result<(), JsError> {
    let client_data = &mut CLIENT.write()?.client_data;

    if let Some(data) = client_data {
        send!(data.tx, &MessageC2S::Chat {
            message: message.to_string()
        }).await?;
    } else {
        return Err(JsError::new("Client not yet connected to server"));
    }

    Ok(())
}