1 /*
2  * This file has been automatically generated by Soupply and released under the MIT license.
3  * Generated from data/java315.xml
4  */
5 module soupply.java315.types;
6 
7 static import std.conv;
8 import packetmaker;
9 import packetmaker.maker : EndianType, writeLength, readLength;
10 
11 import xbuffer.memory : xalloc, xfree;
12 
13 import soupply.util;
14 import soupply.java315.metadata;
15 
16 struct Statistic
17 {
18 
19     enum string[] __fields = ["name", "value"];
20 
21     string name;
22     @Var uint value;
23 
24     mixin Make!(Endian.bigEndian, varuint);
25 
26     string toString()
27     {
28         return "Statistic(name: " ~ std.conv.to!string(this.name) ~ ", value: " ~ std.conv.to!string(this.value) ~ ")";
29     }
30 
31 }
32 
33 struct BlockChange
34 {
35 
36     enum string[] __fields = ["xz", "y", "block"];
37 
38     ubyte xz;
39     ubyte y;
40     @Var uint block;
41 
42     mixin Make!(Endian.bigEndian, varuint);
43 
44     string toString()
45     {
46         return "BlockChange(xz: " ~ std.conv.to!string(this.xz) ~ ", y: " ~ std.conv.to!string(this.y) ~ ", block: " ~ std.conv.to!string(this.block) ~ ")";
47     }
48 
49 }
50 
51 struct Slot
52 {
53 
54     enum string[] __fields = ["id", "count", "damage", "nbt"];
55 
56     short id;
57     @Condition("id>0") ubyte count;
58     @Condition("id>0") ushort damage;
59     @Condition("id>0") @Bytes ubyte[] nbt;
60 
61     mixin Make!(Endian.bigEndian, varuint);
62 
63     string toString()
64     {
65         return "Slot(id: " ~ std.conv.to!string(this.id) ~ ", count: " ~ std.conv.to!string(this.count) ~ ", damage: " ~ std.conv.to!string(this.damage) ~ ", nbt: " ~ std.conv.to!string(this.nbt) ~ ")";
66     }
67 
68 }
69 
70 struct Icon
71 {
72 
73     // direction and type
74     enum ubyte WHITE_ARROW = 0;
75     enum ubyte GREEN_ARROW = 1;
76     enum ubyte RED_ARROW = 2;
77     enum ubyte BLUE_ARROW = 3;
78     enum ubyte WHITE_CROSS = 4;
79     enum ubyte RED_POINTER = 5;
80     enum ubyte WHITE_CIRCLE = 6;
81     enum ubyte SMALL_WHITE_CIRCLE = 7;
82     enum ubyte MANSION = 8;
83     enum ubyte TEMPLE = 9;
84 
85     enum string[] __fields = ["directionAndType", "position"];
86 
87     ubyte directionAndType;
88     Vector!(ubyte, "xz") position;
89 
90     mixin Make!(Endian.bigEndian, varuint);
91 
92     string toString()
93     {
94         return "Icon(directionAndType: " ~ std.conv.to!string(this.directionAndType) ~ ", position: " ~ std.conv.to!string(this.position) ~ ")";
95     }
96 
97 }
98 
99 struct Property
100 {
101 
102     enum string[] __fields = ["name", "value", "signed", "signature"];
103 
104     string name;
105     string value;
106     bool signed;
107     @Condition("signed==true") string signature;
108 
109     mixin Make!(Endian.bigEndian, varuint);
110 
111     string toString()
112     {
113         return "Property(name: " ~ std.conv.to!string(this.name) ~ ", value: " ~ std.conv.to!string(this.value) ~ ", signed: " ~ std.conv.to!string(this.signed) ~ ", signature: " ~ std.conv.to!string(this.signature) ~ ")";
114     }
115 
116 }
117 
118 struct ListAddPlayer
119 {
120 
121     // gamemode
122     enum uint SURVIVAL = 0;
123     enum uint CREATIVE = 1;
124     enum uint ADVENTURE = 2;
125     enum uint SPECTATOR = 3;
126 
127     enum string[] __fields = ["uuid", "name", "properties", "gamemode", "latency", "hasDisplayName", "displayName"];
128 
129     UUID uuid;
130     string name;
131     soupply.java315.types.Property[] properties;
132     @Var uint gamemode;
133     @Var uint latency;
134     bool hasDisplayName;
135     @Condition("hasDisplayName==true") string displayName;
136 
137     mixin Make!(Endian.bigEndian, varuint);
138 
139     string toString()
140     {
141         return "ListAddPlayer(uuid: " ~ std.conv.to!string(this.uuid) ~ ", name: " ~ std.conv.to!string(this.name) ~ ", properties: " ~ std.conv.to!string(this.properties) ~ ", gamemode: " ~ std.conv.to!string(this.gamemode) ~ ", latency: " ~ std.conv.to!string(this.latency) ~ ", hasDisplayName: " ~ std.conv.to!string(this.hasDisplayName) ~ ", displayName: " ~ std.conv.to!string(this.displayName) ~ ")";
142     }
143 
144 }
145 
146 struct ListUpdateGamemode
147 {
148 
149     // gamemode
150     enum uint SURVIVAL = 0;
151     enum uint CREATIVE = 1;
152     enum uint ADVENTURE = 2;
153     enum uint SPECTATOR = 3;
154 
155     enum string[] __fields = ["uuid", "gamemode"];
156 
157     UUID uuid;
158     @Var uint gamemode;
159 
160     mixin Make!(Endian.bigEndian, varuint);
161 
162     string toString()
163     {
164         return "ListUpdateGamemode(uuid: " ~ std.conv.to!string(this.uuid) ~ ", gamemode: " ~ std.conv.to!string(this.gamemode) ~ ")";
165     }
166 
167 }
168 
169 struct ListUpdateLatency
170 {
171 
172     enum string[] __fields = ["uuid", "latency"];
173 
174     UUID uuid;
175     @Var uint latency;
176 
177     mixin Make!(Endian.bigEndian, varuint);
178 
179     string toString()
180     {
181         return "ListUpdateLatency(uuid: " ~ std.conv.to!string(this.uuid) ~ ", latency: " ~ std.conv.to!string(this.latency) ~ ")";
182     }
183 
184 }
185 
186 struct ListUpdateDisplayName
187 {
188 
189     enum string[] __fields = ["uuid", "hasDisplayName", "displayName"];
190 
191     UUID uuid;
192     bool hasDisplayName;
193     @Condition("hasDisplayName==true") string displayName;
194 
195     mixin Make!(Endian.bigEndian, varuint);
196 
197     string toString()
198     {
199         return "ListUpdateDisplayName(uuid: " ~ std.conv.to!string(this.uuid) ~ ", hasDisplayName: " ~ std.conv.to!string(this.hasDisplayName) ~ ", displayName: " ~ std.conv.to!string(this.displayName) ~ ")";
200     }
201 
202 }
203 
204 struct Modifier
205 {
206 
207     // operation
208     enum ubyte ADD_SUBSTRACT_AMOUNT = 0;
209     enum ubyte ADD_SUBSTRACT_AMOUNT_PERCENTAGE = 1;
210     enum ubyte MULTIPLY_AMOUNT_PERCENTAGE = 2;
211 
212     enum string[] __fields = ["uuid", "amount", "operation"];
213 
214     UUID uuid;
215     double amount;
216     ubyte operation;
217 
218     mixin Make!(Endian.bigEndian, varuint);
219 
220     string toString()
221     {
222         return "Modifier(uuid: " ~ std.conv.to!string(this.uuid) ~ ", amount: " ~ std.conv.to!string(this.amount) ~ ", operation: " ~ std.conv.to!string(this.operation) ~ ")";
223     }
224 
225 }
226 
227 struct Attribute
228 {
229 
230     enum string[] __fields = ["key", "value", "modifiers"];
231 
232     string key;
233     double value;
234     soupply.java315.types.Modifier[] modifiers;
235 
236     mixin Make!(Endian.bigEndian, varuint);
237 
238     string toString()
239     {
240         return "Attribute(key: " ~ std.conv.to!string(this.key) ~ ", value: " ~ std.conv.to!string(this.value) ~ ", modifiers: " ~ std.conv.to!string(this.modifiers) ~ ")";
241     }
242 
243 }
244 
245 struct OptionalPosition
246 {
247 
248     enum string[] __fields = ["hasPosition", "position"];
249 
250     bool hasPosition;
251     @Condition("hasPosition==true") ulong position;
252 
253     mixin Make!(Endian.bigEndian, varuint);
254 
255     string toString()
256     {
257         return "OptionalPosition(hasPosition: " ~ std.conv.to!string(this.hasPosition) ~ ", position: " ~ std.conv.to!string(this.position) ~ ")";
258     }
259 
260 }
261 
262 struct OptionalUuid
263 {
264 
265     enum string[] __fields = ["hasUuid", "uuid"];
266 
267     bool hasUuid;
268     UUID uuid;
269 
270     mixin Make!(Endian.bigEndian, varuint);
271 
272     string toString()
273     {
274         return "OptionalUuid(hasUuid: " ~ std.conv.to!string(this.hasUuid) ~ ", uuid: " ~ std.conv.to!string(this.uuid) ~ ")";
275     }
276 
277 }