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, PlayerId, 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_put("get-player")
19      .body(req)
20      .server(self.server)
21      .maybe_authorization(self.authorization.as_ref())
22      .circuit_breaker(self.circuit_breaker())
23      .retry(&self.retry)
24      .user_agent(&self.user_agent)
25      .send()
26      .await
27  }
28
29  pub async fn get_player_coords(&self, req: GetPlayerCoordsRequest) -> Result<Vec<Coord>> {
30    http::json_put("get-player-coords")
31      .body(req)
32      .server(self.server)
33      .maybe_authorization(self.authorization.as_ref())
34      .circuit_breaker(self.circuit_breaker())
35      .retry(&self.retry)
36      .user_agent(&self.user_agent)
37      .send()
38      .await
39  }
40
41  pub async fn get_player_ids(&self, req: GetPlayerIdsRequest) -> Result<Vec<PlayerId>> {
42    http::json_put("get-player-ids")
43      .body(req)
44      .server(self.server)
45      .maybe_authorization(self.authorization.as_ref())
46      .circuit_breaker(self.circuit_breaker())
47      .retry(&self.retry)
48      .user_agent(&self.user_agent)
49      .send()
50      .await
51  }
52
53  pub async fn get_player_maintenance(
54    &self,
55    req: GetPlayerMaintenanceRequest,
56  ) -> Result<Maintenance> {
57    http::json_put("get-player-maintenance")
58      .body(req)
59      .server(self.server)
60      .maybe_authorization(self.authorization.as_ref())
61      .circuit_breaker(self.circuit_breaker())
62      .retry(&self.retry)
63      .user_agent(&self.user_agent)
64      .send()
65      .await
66  }
67
68  pub async fn get_player_military(&self, req: GetPlayerMilitaryRequest) -> Result<Military> {
69    http::json_put("get-player-military")
70      .body(req)
71      .server(self.server)
72      .maybe_authorization(self.authorization.as_ref())
73      .circuit_breaker(self.circuit_breaker())
74      .retry(&self.retry)
75      .user_agent(&self.user_agent)
76      .send()
77      .await
78  }
79
80  pub async fn get_player_reports(&self, req: GetPlayerReportsRequest) -> Result<Vec<ReportId>> {
81    http::json_put("get-player-reports")
82      .body(req)
83      .server(self.server)
84      .maybe_authorization(self.authorization.as_ref())
85      .circuit_breaker(self.circuit_breaker())
86      .retry(&self.retry)
87      .user_agent(&self.user_agent)
88      .send()
89      .await
90  }
91
92  pub async fn get_player_status(&self, req: GetPlayerStatusRequest) -> Result<PlayerStatus> {
93    http::json_put("get-player-status")
94      .body(req)
95      .server(self.server)
96      .circuit_breaker(self.circuit_breaker())
97      .retry(&self.retry)
98      .user_agent(&self.user_agent)
99      .send()
100      .await
101  }
102
103  pub async fn get_player_storage_capacity(
104    &self,
105    req: GetPlayerStorageCapacityRequest,
106  ) -> Result<OverallStorageCapacity> {
107    http::json_put("get-player-storage-capacity")
108      .body(req)
109      .server(self.server)
110      .maybe_authorization(self.authorization.as_ref())
111      .circuit_breaker(self.circuit_breaker())
112      .retry(&self.retry)
113      .user_agent(&self.user_agent)
114      .send()
115      .await
116  }
117
118  pub async fn get_player_worlds(&self, req: GetPlayerWorldsRequest) -> Result<Vec<WorldId>> {
119    http::json_put("get-player-worlds")
120      .body(req)
121      .server(self.server)
122      .circuit_breaker(self.circuit_breaker())
123      .retry(&self.retry)
124      .user_agent(&self.user_agent)
125      .send()
126      .await
127  }
128
129  pub async fn get_public_player(&self, req: GetPublicPlayerRequest) -> Result<PublicPlayer> {
130    http::json_put("get-public-player")
131      .body(req)
132      .server(self.server)
133      .circuit_breaker(self.circuit_breaker())
134      .retry(&self.retry)
135      .user_agent(&self.user_agent)
136      .send()
137      .await
138  }
139
140  pub async fn get_public_players(
141    &self,
142    req: GetPublicPlayersRequest,
143  ) -> Result<Vec<PublicPlayer>> {
144    http::json_put("get-public-players")
145      .body(req)
146      .server(self.server)
147      .circuit_breaker(self.circuit_breaker())
148      .retry(&self.retry)
149      .user_agent(&self.user_agent)
150      .send()
151      .await
152  }
153
154  pub async fn player_exists(&self, req: PlayerExistsRequest) -> Result<bool> {
155    http::json_put("player-exists")
156      .body(req)
157      .server(self.server)
158      .circuit_breaker(self.circuit_breaker())
159      .retry(&self.retry)
160      .user_agent(&self.user_agent)
161      .send()
162      .await
163  }
164
165  pub async fn set_player_status(&self, req: SetPlayerStatusRequest) -> Result<()> {
166    http::post("set-player-status")
167      .body(req)
168      .server(self.server)
169      .maybe_authorization(self.authorization.as_ref())
170      .circuit_breaker(self.circuit_breaker())
171      .user_agent(&self.user_agent)
172      .send()
173      .await
174  }
175
176  pub async fn spawn_player(&self, req: SpawnPlayerRequest) -> Result<()> {
177    http::post("spawn-player")
178      .body(req)
179      .server(self.server)
180      .maybe_authorization(self.authorization.as_ref())
181      .circuit_breaker(self.circuit_breaker())
182      .user_agent(&self.user_agent)
183      .send()
184      .await
185  }
186}