nil_client/client/
world.rs1use super::Client;
5use crate::error::Result;
6use crate::http;
7use nil_payload::request::world::*;
8use nil_payload::response::world::*;
9
10impl Client {
11 pub async fn create_remote_world(
12 &self,
13 req: CreateRemoteWorldRequest,
14 ) -> Result<CreateRemoteWorldResponse> {
15 http::json_post("create-remote-world")
16 .body(req)
17 .server(self.server)
18 .maybe_authorization(self.authorization.as_ref())
19 .circuit_breaker(self.circuit_breaker())
20 .user_agent(&self.user_agent)
21 .send()
22 .await
23 }
24
25 pub async fn delete_remote_world(&self, req: DeleteRemoteWorldRequest) -> Result<()> {
26 http::post("delete-remote-world")
27 .body(req)
28 .server(self.server)
29 .maybe_authorization(self.authorization.as_ref())
30 .circuit_breaker(self.circuit_breaker())
31 .user_agent(&self.user_agent)
32 .send()
33 .await
34 }
35
36 pub async fn get_remote_world(
37 &self,
38 req: GetRemoteWorldRequest,
39 ) -> Result<GetRemoteWorldResponse> {
40 http::json_put("get-remote-world")
41 .body(req)
42 .server(self.server)
43 .circuit_breaker(self.circuit_breaker())
44 .retry(&self.retry)
45 .user_agent(&self.user_agent)
46 .send()
47 .await
48 }
49
50 pub async fn get_remote_world_limit(&self) -> Result<GetRemoteWorldLimitResponse> {
51 http::json_get("get-remote-world-limit")
52 .server(self.server)
53 .circuit_breaker(self.circuit_breaker())
54 .retry(&self.retry)
55 .user_agent(&self.user_agent)
56 .send()
57 .await
58 }
59
60 pub async fn get_remote_world_limit_per_user(
61 &self,
62 ) -> Result<GetRemoteWorldLimitPerUserResponse> {
63 http::json_get("get-remote-world-limit-per-user")
64 .server(self.server)
65 .circuit_breaker(self.circuit_breaker())
66 .retry(&self.retry)
67 .user_agent(&self.user_agent)
68 .send()
69 .await
70 }
71
72 pub async fn get_remote_worlds(&self) -> Result<GetRemoteWorldsResponse> {
73 http::json_get("get-remote-worlds")
74 .server(self.server)
75 .circuit_breaker(self.circuit_breaker())
76 .retry(&self.retry)
77 .user_agent(&self.user_agent)
78 .send()
79 .await
80 }
81
82 pub async fn get_world_bots(&self, req: GetWorldBotsRequest) -> Result<GetWorldBotsResponse> {
83 http::json_put("get-world-bots")
84 .body(req)
85 .server(self.server)
86 .circuit_breaker(self.circuit_breaker())
87 .retry(&self.retry)
88 .user_agent(&self.user_agent)
89 .send()
90 .await
91 }
92
93 pub async fn get_world_config(
94 &self,
95 req: GetWorldConfigRequest,
96 ) -> Result<GetWorldConfigResponse> {
97 http::json_put("get-world-config")
98 .body(req)
99 .server(self.server)
100 .circuit_breaker(self.circuit_breaker())
101 .retry(&self.retry)
102 .user_agent(&self.user_agent)
103 .send()
104 .await
105 }
106
107 pub async fn get_world_personnel(
108 &self,
109 req: GetWorldPersonnelRequest,
110 ) -> Result<GetWorldPersonnelResponse> {
111 http::json_put("get-world-personnel")
112 .body(req)
113 .server(self.server)
114 .circuit_breaker(self.circuit_breaker())
115 .retry(&self.retry)
116 .user_agent(&self.user_agent)
117 .send()
118 .await
119 }
120
121 pub async fn get_world_players(
122 &self,
123 req: GetWorldPlayersRequest,
124 ) -> Result<GetWorldPlayersResponse> {
125 http::json_put("get-world-players")
126 .body(req)
127 .server(self.server)
128 .circuit_breaker(self.circuit_breaker())
129 .retry(&self.retry)
130 .user_agent(&self.user_agent)
131 .send()
132 .await
133 }
134
135 pub async fn get_world_precursors(
136 &self,
137 req: GetWorldPrecursorsRequest,
138 ) -> Result<GetWorldPrecursorsResponse> {
139 http::json_put("get-world-precursors")
140 .body(req)
141 .server(self.server)
142 .circuit_breaker(self.circuit_breaker())
143 .retry(&self.retry)
144 .user_agent(&self.user_agent)
145 .send()
146 .await
147 }
148
149 pub async fn get_world_stats(&self, req: GetWorldStatsRequest) -> Result<GetWorldStatsResponse> {
150 http::json_put("get-world-stats")
151 .body(req)
152 .server(self.server)
153 .circuit_breaker(self.circuit_breaker())
154 .retry(&self.retry)
155 .user_agent(&self.user_agent)
156 .send()
157 .await
158 }
159
160 pub(super) async fn leave(&self, req: LeaveRequest) -> Result<()> {
161 if self.server.is_local() {
162 http::post("leave")
163 .body(req)
164 .server(self.server)
165 .maybe_authorization(self.authorization.as_ref())
166 .circuit_breaker(self.circuit_breaker())
167 .user_agent(&self.user_agent)
168 .send()
169 .await
170 } else {
171 Ok(())
172 }
173 }
174
175 pub async fn save_local_world(&self, req: SaveLocalWorldRequest) -> Result<()> {
176 if self.server.is_local() {
177 http::post("save-local-world")
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 } else {
186 Ok(())
187 }
188 }
189}