mirror of
https://github.com/shiroyashik/sculptor.git
synced 2025-12-06 13:01:12 +03:00
Оно работает!
Почищу код позже...
This commit is contained in:
parent
3fd49300db
commit
b280da2742
14 changed files with 659 additions and 114 deletions
|
|
@ -8,7 +8,8 @@ edition = "2021"
|
|||
[dependencies]
|
||||
anyhow = "1.0.83"
|
||||
log = "0.4.21"
|
||||
reqwest = "0.12.4"
|
||||
reqwest = { version = "0.12.4" }
|
||||
serde = { version = "1.0.201", features = ["derive"] }
|
||||
serde_json = "1.0.117"
|
||||
tokio = { version = "1.37.0", features = ["full"] }
|
||||
uuid = "1.8.0"
|
||||
|
|
|
|||
|
|
@ -1,14 +1,20 @@
|
|||
use anyhow::{anyhow, Result};
|
||||
use log::debug;
|
||||
use serde_json::Value;
|
||||
use uuid::Uuid;
|
||||
|
||||
pub async fn has_joined(server_id: &str, username: &str) -> Result<bool> {
|
||||
pub async fn has_joined(server_id: &str, username: &str) -> Result<Option<Uuid>> {
|
||||
let client = reqwest::Client::new();
|
||||
let res = client.get(
|
||||
format!("http://minecraft.ely.by/session/hasJoined?serverId={server_id}&username={username}")).send().await?;
|
||||
debug!("{res:?}");
|
||||
match res.status().as_u16() {
|
||||
200 => Ok(true),
|
||||
401 => Ok(false),
|
||||
200 => {
|
||||
let json = serde_json::from_str::<Value>(&res.text().await?)?;
|
||||
let uuid = Uuid::parse_str(json["id"].as_str().unwrap())?;
|
||||
Ok(Some(uuid))
|
||||
},
|
||||
401 => Ok(None),
|
||||
_ => Err(anyhow!("Unknown code: {}", res.status().as_u16()))
|
||||
}
|
||||
}
|
||||
|
|
@ -16,7 +22,7 @@ pub async fn has_joined(server_id: &str, username: &str) -> Result<bool> {
|
|||
#[tokio::test]
|
||||
async fn test_has_joined() {
|
||||
let result = has_joined("0f8fef917f1f62b963804d822b67fe6f59aad7d", "test").await.unwrap();
|
||||
assert_eq!(result, false)
|
||||
assert_eq!(result, None)
|
||||
}
|
||||
|
||||
// #[cfg(test)]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue