MCPcopy Create free account
hub / github.com/BohemiaInteractive/CWR / resolve_server_mods

Method resolve_server_mods

mserver/MasterService/src/service.rs:281–308  ·  view source on GitHub ↗
(&self, mod_list: &str)

Source from the content-addressed store, hash-verified

279
280 pub async fn mod_usage_servers(&self, mod_id: &str) -> Result<Vec<ModUsageServer>> {
281 let mut servers = self
282 .directory
283 .list(&ListServersQuery::default(), now_unix_millis())
284 .await?
285 .into_iter()
286 .filter(|server| {
287 split_server_mods(&server.mod_list)
288 .iter()
289 .any(|candidate| candidate == mod_id)
290 })
291 .map(|server| ModUsageServer {
292 server_id: server.server_id,
293 hostname: server.hostname,
294 gametype: server.gametype,
295 players: server.numplayers,
296 max_players: server.maxplayers,
297 password: server.password,
298 })
299 .collect::<Vec<_>>();
300
301 servers.sort_by(|lhs, rhs| {
302 rhs.players
303 .cmp(&lhs.players)
304 .then_with(|| lhs.hostname.cmp(&rhs.hostname))
305 });
306 Ok(servers)
307 }
308
309 pub fn metadata(&self) -> ServiceMetadata {
310 ServiceMetadata {
311 service_name: SERVICE_NAME.to_string(),

Callers 1

get_server_detailMethod · 0.80

Calls 4

split_server_modsFunction · 0.85
pushMethod · 0.80
cloneMethod · 0.80
get_modMethod · 0.45

Tested by

no test coverage detected