Skip to main content

nil_client/client/
player.rs

1// Copyright (C) Call of Nil contributors
2// SPDX-License-Identifier: AGPL-3.0-only
3
4use super::Client;
5use crate::error::Result;
6use crate::http;
7use nil_core::continent::Coord;
8use nil_core::infrastructure::storage::OverallStorageCapacity;
9use nil_core::military::Military;
10use nil_core::player::{Player, PlayerStatus, PublicPlayer};
11use nil_core::report::ReportId;
12use nil_core::resources::maintenance::Maintenance;
13use nil_core::world::config::WorldId;
14use nil_payload::player::*;
15
16impl Client {
17  pub async fn get_player(&self, req: GetPlayerRequest) -> Result<Player> {
18    http::json_post("get-player")
19      .body(req)
20      .server(self.server)
21      .maybe_authorization(self.authorization.as_ref())
22      .user_agent(&self.user_agent)
23      .send()
24      .await
25  }
26
27  pub async fn get_player_coords(&self, req: GetPlayerCoordsRequest) -> Result<Vec<Coord>> {
28    http::json_post("get-player-coords")
29      .body(req)
30      .server(self.server)
31      .maybe_authorization(self.authorization.as_ref())
32      .user_agent(&self.user_agent)
33      .send()
34      .await
35  }
36
37  pub async fn get_player_maintenance(
38    &self,
39    req: GetPlayerMaintenanceRequest,
40  ) -> Result<Maintenance> {
41    http::json_post("get-player-maintenance")
42      .body(req)
43      .server(self.server)
44      .maybe_authorization(self.authorization.as_ref())
45      .user_agent(&self.user_agent)
46      .send()
47      .await
48  }
49
50  pub async fn get_player_military(&self, req: GetPlayerMilitaryRequest) -> Result<Military> {
51    http::json_post("get-player-military")
52      .body(req)
53      .server(self.server)
54      .maybe_authorization(self.authorization.as_ref())
55      .user_agent(&self.user_agent)
56      .send()
57      .await
58  }
59
60  pub async fn get_player_reports(&self, req: GetPlayerReportsRequest) -> Result<Vec<ReportId>> {
61    http::json_post("get-player-reports")
62      .body(req)
63      .server(self.server)
64      .maybe_authorization(self.authorization.as_ref())
65      .user_agent(&self.user_agent)
66      .send()
67      .await
68  }
69
70  pub async fn get_player_status(&self, req: GetPlayerStatusRequest) -> Result<PlayerStatus> {
71    http::json_post("get-player-status")
72      .body(req)
73      .server(self.server)
74      .user_agent(&self.user_agent)
75      .send()
76      .await
77  }
78
79  pub async fn get_player_storage_capacity(
80    &self,
81    req: GetPlayerStorageCapacityRequest,
82  ) -> Result<OverallStorageCapacity> {
83    http::json_post("get-player-storage-capacity")
84      .body(req)
85      .server(self.server)
86      .maybe_authorization(self.authorization.as_ref())
87      .user_agent(&self.user_agent)
88      .send()
89      .await
90  }
91
92  pub async fn get_player_worlds(&self, req: GetPlayerWorldsRequest) -> Result<Vec<WorldId>> {
93    http::json_post("get-player-worlds")
94      .body(req)
95      .server(self.server)
96      .user_agent(&self.user_agent)
97      .send()
98      .await
99  }
100
101  pub async fn get_public_player(&self, req: GetPublicPlayerRequest) -> Result<PublicPlayer> {
102    http::json_post("get-public-player")
103      .body(req)
104      .server(self.server)
105      .user_agent(&self.user_agent)
106      .send()
107      .await
108  }
109
110  pub async fn get_public_players(
111    &self,
112    req: GetPublicPlayersRequest,
113  ) -> Result<Vec<PublicPlayer>> {
114    http::json_post("get-public-players")
115      .body(req)
116      .server(self.server)
117      .user_agent(&self.user_agent)
118      .send()
119      .await
120  }
121
122  pub async fn player_exists(&self, req: PlayerExistsRequest) -> Result<bool> {
123    http::json_post("player-exists")
124      .body(req)
125      .server(self.server)
126      .user_agent(&self.user_agent)
127      .send()
128      .await
129  }
130
131  pub async fn set_player_status(&self, req: SetPlayerStatusRequest) -> Result<()> {
132    http::post("set-player-status")
133      .body(req)
134      .server(self.server)
135      .maybe_authorization(self.authorization.as_ref())
136      .user_agent(&self.user_agent)
137      .send()
138      .await
139  }
140
141  pub async fn spawn_player(&self, req: SpawnPlayerRequest) -> Result<()> {
142    http::post("spawn-player")
143      .body(req)
144      .server(self.server)
145      .maybe_authorization(self.authorization.as_ref())
146      .user_agent(&self.user_agent)
147      .send()
148      .await
149  }
150}