1use bon::Builder;
5use nil_core::player::{PlayerId, PlayerOptions, PlayerStatus};
6use nil_core::world::config::WorldId;
7use nil_crypto::password::Password;
8use serde::{Deserialize, Serialize};
9
10#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
11#[serde(rename_all = "camelCase")]
12#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
13#[cfg_attr(feature = "typescript", ts(export))]
14pub struct GetPlayerRequest {
15 #[builder(start_fn)]
16 pub world: WorldId,
17}
18
19#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
20#[serde(rename_all = "camelCase")]
21#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
22#[cfg_attr(feature = "typescript", ts(export))]
23pub struct GetPlayerCoordsRequest {
24 #[builder(start_fn)]
25 pub world: WorldId,
26 #[builder(into)]
27 pub id: PlayerId,
28}
29
30#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
31#[serde(rename_all = "camelCase")]
32#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
33#[cfg_attr(feature = "typescript", ts(export))]
34pub struct GetPlayerIdsRequest {
35 #[builder(start_fn, into)]
36 pub world: WorldId,
37}
38
39#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
40#[serde(rename_all = "camelCase")]
41#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
42#[cfg_attr(feature = "typescript", ts(export))]
43pub struct GetPlayerMaintenanceRequest {
44 #[builder(start_fn, into)]
45 pub world: WorldId,
46}
47
48#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
49#[serde(rename_all = "camelCase")]
50#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
51#[cfg_attr(feature = "typescript", ts(export))]
52pub struct GetPlayerMilitaryRequest {
53 #[builder(start_fn, into)]
54 pub world: WorldId,
55}
56
57#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
58#[serde(rename_all = "camelCase")]
59#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
60#[cfg_attr(feature = "typescript", ts(export))]
61pub struct GetPlayerStatusRequest {
62 #[builder(start_fn, into)]
63 pub world: WorldId,
64 #[builder(into)]
65 pub id: PlayerId,
66}
67
68#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
69#[serde(rename_all = "camelCase")]
70#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
71#[cfg_attr(feature = "typescript", ts(export))]
72pub struct GetPlayerStorageCapacityRequest {
73 #[builder(start_fn, into)]
74 pub world: WorldId,
75}
76
77#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
78#[serde(rename_all = "camelCase")]
79#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
80#[cfg_attr(feature = "typescript", ts(export))]
81pub struct GetPlayerWorldsRequest {
82 #[builder(into)]
83 pub id: PlayerId,
84}
85
86#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
87#[serde(rename_all = "camelCase")]
88#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
89#[cfg_attr(feature = "typescript", ts(export))]
90pub struct GetPublicPlayerRequest {
91 #[builder(start_fn, into)]
92 pub world: WorldId,
93 #[builder(into)]
94 pub id: PlayerId,
95}
96
97#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
98#[serde(rename_all = "camelCase")]
99#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
100#[cfg_attr(feature = "typescript", ts(export))]
101pub struct GetPublicPlayersRequest {
102 #[builder(start_fn, into)]
103 pub world: WorldId,
104}
105
106#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
107#[serde(rename_all = "camelCase")]
108#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
109#[cfg_attr(feature = "typescript", ts(export))]
110pub struct PlayerExistsRequest {
111 #[builder(start_fn, into)]
112 pub world: WorldId,
113 #[builder(into)]
114 pub id: PlayerId,
115}
116
117#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
118#[serde(rename_all = "camelCase")]
119#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
120#[cfg_attr(feature = "typescript", ts(export))]
121pub struct SetPlayerStatusRequest {
122 #[builder(start_fn, into)]
123 pub world: WorldId,
124 pub status: PlayerStatus,
125}
126
127#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
128#[serde(rename_all = "camelCase")]
129#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
130#[cfg_attr(feature = "typescript", ts(export, optional_fields = nullable))]
131pub struct SpawnPlayerRequest {
132 #[builder(start_fn, into)]
133 pub world: WorldId,
134 #[serde(default)]
135 #[builder(into)]
136 pub world_password: Option<Password>,
137 pub options: PlayerOptions,
138}