1 /*
2  * This file has been automatically generated by Soupply and released under the MIT license.
3  * Generated from data/java340.xml
4  */
5 module soupply.java340.protocol.login;
6 
7 static import std.conv;
8 import std.typetuple : TypeTuple;
9 import xpacket;
10 
11 import soupply.util;
12 import soupply.java340.metadata : Metadata;
13 import soupply.java340.packet : Java340Packet;
14 
15 static import soupply.java340.types;
16 
17 alias Packets = TypeTuple!(Disconnect, LoginStart, EncryptionRequest, EncryptionResponse, LoginSuccess, SetCompression);
18 
19 class Disconnect : Java340Packet
20 {
21 
22     enum uint ID = 0;
23 
24     enum bool CLIENTBOUND = true;
25     enum bool SERVERBOUND = false;
26 
27     enum string[] __fields = ["reason"];
28 
29     string reason;
30 
31     this() pure nothrow @safe @nogc {}
32 
33     this(string reason) pure nothrow @safe @nogc
34     {
35         this.reason = reason;
36     }
37 
38     mixin Make;
39 
40     public static typeof(this) fromBuffer(ubyte[] buffer)
41     {
42         Disconnect ret = new Disconnect();
43         ret.decode(buffer);
44         return ret;
45     }
46 
47     override string toString()
48     {
49         return "Disconnect(reason: " ~ std.conv.to!string(this.reason) ~ ")";
50     }
51 
52 }
53 
54 class LoginStart : Java340Packet
55 {
56 
57     enum uint ID = 0;
58 
59     enum bool CLIENTBOUND = false;
60     enum bool SERVERBOUND = true;
61 
62     enum string[] __fields = ["username"];
63 
64     string username;
65 
66     this() pure nothrow @safe @nogc {}
67 
68     this(string username) pure nothrow @safe @nogc
69     {
70         this.username = username;
71     }
72 
73     mixin Make;
74 
75     public static typeof(this) fromBuffer(ubyte[] buffer)
76     {
77         LoginStart ret = new LoginStart();
78         ret.decode(buffer);
79         return ret;
80     }
81 
82     override string toString()
83     {
84         return "LoginStart(username: " ~ std.conv.to!string(this.username) ~ ")";
85     }
86 
87 }
88 
89 class EncryptionRequest : Java340Packet
90 {
91 
92     enum uint ID = 1;
93 
94     enum bool CLIENTBOUND = true;
95     enum bool SERVERBOUND = false;
96 
97     enum string[] __fields = ["serverId", "publicKey", "verifyToken"];
98 
99     string serverId;
100     ubyte[] publicKey;
101     ubyte[] verifyToken;
102 
103     this() pure nothrow @safe @nogc {}
104 
105     this(string serverId, ubyte[] publicKey=(ubyte[]).init, ubyte[] verifyToken=(ubyte[]).init) pure nothrow @safe @nogc
106     {
107         this.serverId = serverId;
108         this.publicKey = publicKey;
109         this.verifyToken = verifyToken;
110     }
111 
112     mixin Make;
113 
114     public static typeof(this) fromBuffer(ubyte[] buffer)
115     {
116         EncryptionRequest ret = new EncryptionRequest();
117         ret.decode(buffer);
118         return ret;
119     }
120 
121     override string toString()
122     {
123         return "EncryptionRequest(serverId: " ~ std.conv.to!string(this.serverId) ~ ", publicKey: " ~ std.conv.to!string(this.publicKey) ~ ", verifyToken: " ~ std.conv.to!string(this.verifyToken) ~ ")";
124     }
125 
126 }
127 
128 class EncryptionResponse : Java340Packet
129 {
130 
131     enum uint ID = 1;
132 
133     enum bool CLIENTBOUND = false;
134     enum bool SERVERBOUND = true;
135 
136     enum string[] __fields = ["sharedSecret", "verifyToken"];
137 
138     ubyte[] sharedSecret;
139     ubyte[] verifyToken;
140 
141     this() pure nothrow @safe @nogc {}
142 
143     this(ubyte[] sharedSecret, ubyte[] verifyToken=(ubyte[]).init) pure nothrow @safe @nogc
144     {
145         this.sharedSecret = sharedSecret;
146         this.verifyToken = verifyToken;
147     }
148 
149     mixin Make;
150 
151     public static typeof(this) fromBuffer(ubyte[] buffer)
152     {
153         EncryptionResponse ret = new EncryptionResponse();
154         ret.decode(buffer);
155         return ret;
156     }
157 
158     override string toString()
159     {
160         return "EncryptionResponse(sharedSecret: " ~ std.conv.to!string(this.sharedSecret) ~ ", verifyToken: " ~ std.conv.to!string(this.verifyToken) ~ ")";
161     }
162 
163 }
164 
165 class LoginSuccess : Java340Packet
166 {
167 
168     enum uint ID = 2;
169 
170     enum bool CLIENTBOUND = true;
171     enum bool SERVERBOUND = false;
172 
173     enum string[] __fields = ["uuid", "username"];
174 
175     string uuid;
176     string username;
177 
178     this() pure nothrow @safe @nogc {}
179 
180     this(string uuid, string username=string.init) pure nothrow @safe @nogc
181     {
182         this.uuid = uuid;
183         this.username = username;
184     }
185 
186     mixin Make;
187 
188     public static typeof(this) fromBuffer(ubyte[] buffer)
189     {
190         LoginSuccess ret = new LoginSuccess();
191         ret.decode(buffer);
192         return ret;
193     }
194 
195     override string toString()
196     {
197         return "LoginSuccess(uuid: " ~ std.conv.to!string(this.uuid) ~ ", username: " ~ std.conv.to!string(this.username) ~ ")";
198     }
199 
200 }
201 
202 class SetCompression : Java340Packet
203 {
204 
205     enum uint ID = 3;
206 
207     enum bool CLIENTBOUND = true;
208     enum bool SERVERBOUND = false;
209 
210     enum string[] __fields = ["thresold"];
211 
212     @Var uint thresold;
213 
214     this() pure nothrow @safe @nogc {}
215 
216     this(uint thresold) pure nothrow @safe @nogc
217     {
218         this.thresold = thresold;
219     }
220 
221     mixin Make;
222 
223     public static typeof(this) fromBuffer(ubyte[] buffer)
224     {
225         SetCompression ret = new SetCompression();
226         ret.decode(buffer);
227         return ret;
228     }
229 
230     override string toString()
231     {
232         return "SetCompression(thresold: " ~ std.conv.to!string(this.thresold) ~ ")";
233     }
234 
235 }