Luanti 5.16.0-dev
Loading...
Searching...
No Matches
networkprotocol.h
Go to the documentation of this file.
1// Luanti
2// SPDX-License-Identifier: LGPL-2.1-or-later
3// Copyright (C) 2010-2013 celeron55, Perttu Ahola <celeron55@gmail.com>
4
5#pragma once
6
7#include "irrlichttypes.h"
8
9extern const u16 LATEST_PROTOCOL_VERSION;
10
11// Server's supported network protocol range
12constexpr u16 SERVER_PROTOCOL_VERSION_MIN = 37;
13
14// Client's supported network protocol range
15constexpr u16 CLIENT_PROTOCOL_VERSION_MIN = 37;
16
17extern const u16 FORMSPEC_API_VERSION;
18
19// (applies to all media files, not just textures)
20#define TEXTURENAME_ALLOWED_CHARS "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_.-"
21
22// Due to our network protocol the maximum window size determines the maximum
23// media size we can safely allow. See the comment and check in Connection::Send().
24// This is a bit lower to include safety margin.
25#define MEDIAFILE_MAX_SIZE (16700000U)
26
27typedef u16 session_t;
28
30{
32 /*
33 Sent after TOSERVER_INIT.
34
35 u8 deployed serialization version
36 u16 unused (network compression, never implemeneted)
37 u16 deployed protocol version
38 u32 supported auth methods
39 std::string unused (used to be username)
40 */
41
43 /*
44 Message from server to accept auth.
45
46 v3f unused
47 u64 map seed
48 f1000 recommended send interval
49 u32 : supported auth methods for sudo mode
50 (where the user can change their password)
51 */
52
54 /*
55 Sent to client to show it is in sudo mode now.
56 */
57
59 /*
60 Signals client that sudo mode auth failed.
61 */
62
64 /*
65 u8 reason
66 std::string custom reason (if needed, otherwise "")
67 u8 (bool) reconnect
68 */
69
71 /*
72 v3s16 position
73 serialized MapBlock
74 */
75
77 /*
78 v3s16 position
79 serialized mapnode
80 u8 keep_metadata
81 */
82
84 /*
85 v3s16 position
86 */
87
89 /*
90 <long string> serialized inventory
91 bool skip_wield_anim
92 */
93
95 /*
96 u16 time (0-23999)
97 f1000 time_speed
98 */
99
101 /*
102 u32 CSMRestrictionFlags byteflag
103 */
104
106 /*
107 v3f added_vel
108 */
109
111 /*
112 std::string raw_hash
113 std::string filename
114 u32 callback_token
115 bool should_be_cached
116 */
117
119 /*
120 u8 version
121 u8 message_type
122 u16 sendername length
123 wstring sendername
124 u16 length
125 wstring message
126 */
127
129 /*
130 u16 count of removed objects
131 for all removed objects {
132 u16 id
133 }
134 u16 count of added objects
135 for all added objects {
136 u16 id
137 u8 type
138 u32 initialization data length
139 string initialization data
140 }
141 */
142
144 /*
145 for all objects
146 {
147 u16 id
148 u16 message length
149 string message
150 }
151 */
152
154 /*
155 u8 hp
156 */
157
159 /*
160 v3f1000 player position
161 f1000 player pitch
162 f1000 player yaw
163 */
164
166 /*
167 u16 reason_length
168 wstring reason
169 */
170
172 /*
173 Sends an FOV override/multiplier to client.
174
175 f32 fov
176 bool is_multiplier
177 f32 transition_time
178 */
179
181 /*
182 u8 bool unused
183 v3f1000 unused
184 */
185
187 /*
188 u16 total number of bunches
189 u16 index of this bunch
190 u32 number of files in this bunch
191 for each file {
192 u16 length of name
193 string name
194 u32 length of data
195 data (zstd-compressed)
196 }
197 */
198
200 /*
201 u32 length of buffer
202 serialized NodeDefManager (zstd-compressed)
203 */
204
206 /*
207 u32 length of compressed name array
208 string16array names (zstd-compressed)
209 for each file {
210 char[20] sha1_digest
211 }
212 u16 length of remote media server url
213 string url
214 */
215
217 /*
218 u32 length of buffer
219 serialized ItemDefManager (zstd-compressed)
220 */
221
223 /*
224 s32 server_id
225 u16 len
226 u8[len] sound name
227 f32 gain
228 u8 type (SoundLocation: 0=local, 1=positional, 2=object)
229 v3f pos_nodes (in BS-space)
230 u16 object_id
231 u8 loop (bool)
232 f32 fade
233 f32 pitch
234 u8 ephemeral (bool)
235 f32 start_time (in seconds)
236 */
237
239 /*
240 s32 sound_id
241 */
242
244 /*
245 u16 number of privileges
246 for each privilege
247 u16 len
248 u8[len] privilege
249 */
250
252 /*
253 u32 len
254 u8[len] formspec
255 */
256
258 /*
259 [0] u16 command
260 u16 len
261 u8[len] name
262 [2] serialized inventory
263 */
264
266 /*
267 [0] u16 command
268 u32 len
269 u8[len] formspec
270 u16 len
271 u8[len] formname
272 */
273
275 /*
276 f1000 movement_acceleration_default
277 f1000 movement_acceleration_air
278 f1000 movement_acceleration_fast
279 f1000 movement_speed_walk
280 f1000 movement_speed_crouch
281 f1000 movement_speed_fast
282 f1000 movement_speed_climb
283 f1000 movement_speed_jump
284 f1000 movement_liquid_fluidity
285 f1000 movement_liquid_fluidity_smooth
286 f1000 movement_liquid_sink
287 f1000 movement_gravity
288 */
289
291 /*
292 ParticleParameters params:
293
294 using range<T> = RangedParameter<T> {
295 T min, max
296 f32 bias
297 }
298 using tween<T> = TweenedParameter<T> {
299 u8 style
300 u16 reps
301 f32 beginning
302 T start, end
303 }
304
305 v3f pos
306 v3f velocity
307 v3f acceleration
308 f32 expirationtime
309 f32 size
310 u8 bool collisiondetection
311
312 u32 len
313 u8[len] texture
314
315 u8 bool vertical
316 u8 bool collision_removal
317
318 TileAnimation animation
319
320 u8 glow
321 u8 bool object_collision
322
323 u16 node_param0
324 u8 node_param2
325 u8 node_tile
326
327 v3f drag
328 range<v3f> jitter
329 range<f32> bounce
330
331 texture {
332 u8 flags (ParticleTextureFlags)
333 -- bit 0: animated
334 -- next bits: blend mode (BlendMode)
335 tween<f32> alpha
336 tween<v2f> scale
337 }
338 */
339
341 /*
342 using range<T> = RangedParameter<T> {
343 T min, max
344 f32 bias
345 }
346 using tween<T> = TweenedParameter<T> {
347 u8 style
348 u16 reps
349 f32 beginning
350 T start, end
351 }
352
353 u16 amount
354 f32 spawntime
355 if PROTOCOL_VERSION >= 42 {
356 tween<range<T>> pos, vel, acc, exptime, size
357 } else {
358 v3f minpos
359 v3f maxpos
360 v3f minvel
361 v3f maxvel
362 v3f minacc
363 v3f maxacc
364 f32 minexptime
365 f32 maxexptime
366 f32 minsize
367 f32 maxsize
368 }
369 u8 bool collisiondetection
370
371 u32 len
372 u8[len] texture
373
374 u32 spawner_id
375 u8 bool vertical
376 u8 bool collision_removal
377 u32 attached_id
378
379 TileAnimation animation
380
381 u8 glow
382 u8 bool object_collision
383
384 u16 node_param0
385 u8 node_param2
386 u8 node_tile
387
388 if PROTOCOL_VERSION < 42 {
389 f32 pos_start_bias
390 f32 vel_start_bias
391 f32 acc_start_bias
392 f32 exptime_start_bias
393 f32 size_start_bias
394
395 range<v3f> pos_end
396 -- i.e v3f pos_end_min
397 -- v3f pos_end_max
398 -- f32 pos_end_bias
399 range<v3f> vel_end
400 range<v3f> acc_end
401 range<f32> exptime_end
402 range<f32> size_end
403 }
404
405 texture {
406 u8 flags (ParticleTextureFlags)
407 -- bit 0: animated
408 -- next bits: blend mode (BlendMode)
409 tween<f32> alpha
410 tween<v2f> scale
411
412 if (flags.animated)
413 TileAnimation animation
414 }
415
416 tween<range<v3f>> drag
417 -- i.e. v3f drag_start_min
418 -- v3f drag_start_max
419 -- f32 drag_start_bias
420 -- v3f drag_end_min
421 -- v3f drag_end_max
422 -- f32 drag_end_bias
423 tween<range<v3f>> jitter
424 tween<range<f32>> bounce
425
426 u8 attraction_kind
427 none = 0
428 point = 1
429 line = 2
430 plane = 3
431
432 if attraction_kind > none {
433 tween<range<f32>> attract_strength
434 tween<v3f> attractor_origin
435 u16 attractor_origin_attachment_object_id
436 u8 spawner_flags
437 bit 1: attractor_kill (particles dies on contact)
438 if attraction_mode > point {
439 tween<v3f> attractor_direction
440 u16 attractor_direction_attachment_object_id
441 }
442 }
443
444 tween<range<v3f>> radius
445
446 u16 texpool_size
447 texpool_size.times {
448 u8 flags (ParticleTextureFlags)
449 -- bit 0: animated
450 -- next bits: blend mode (BlendMode)
451 tween<f32> alpha
452 tween<v2f> scale
453
454 u32 len
455 u8[len] texture
456
457 if (flags.animated)
458 TileAnimation animation
459 }
460
461 */
462
464 /*
465 u8 allowed_camera_mode
466 */
467
469 /*
470 u32 id
471 u8 type
472 v2f1000 pos
473 u16 len
474 u8[len] name
475 v2f1000 scale
476 u16 len2
477 u8[len2] text
478 u32 number
479 u32 item
480 u32 dir
481 v2f1000 align
482 v2f1000 offset
483 v3f1000 world_pos
484 v2f size // if protocol >= 52. Otherwise, v2s32
485 s16 z_index
486 u16 len3
487 u8[len3] text2
488 */
489
491 /*
492 u32 id
493 */
494
496 /*
497 u32 id
498 u8 stat
499 [v2f1000 data |
500 u32 len
501 u8[len] data |
502 u32 data]
503 */
504
506 /*
507 u32 flags
508 u32 mask
509 */
510
512 /*
513 u16 param
514 u16 len
515 u8[len] value
516 */
517
519 /*
520 u16 breath
521 */
522
524 /*
525 Protocol 38:
526 u8[4] base_color (ARGB)
527 u8 len
528 u8[len] type
529 u16 count
530 foreach count:
531 u8 len
532 u8[len] param
533 u8 clouds (boolean)
534
535 Protocol 39:
536 u8[4] bgcolor (ARGB)
537 std::string type
538 int texture_count
539 std::string[6] param
540 bool clouds
541 bool bgcolor_fog
542 u8[4] day_sky (ARGB)
543 u8[4] day_horizon (ARGB)
544 u8[4] dawn_sky (ARGB)
545 u8[4] dawn_horizon (ARGB)
546 u8[4] night_sky (ARGB)
547 u8[4] night_horizon (ARGB)
548 u8[4] indoors (ARGB)
549 u8[4] fog_sun_tint (ARGB)
550 u8[4] fog_moon_tint (ARGB)
551 std::string fog_tint_type
552 float body_orbit_tilt
553 */
554
556 /*
557 u8 do_override (boolean)
558 u16 day-night ratio 0...65535
559 */
560
562 /*
563 v2s32 stand/idle
564 v2s32 walk
565 v2s32 dig
566 v2s32 walk+dig
567 f1000 frame_speed
568 */
569
571 /*
572 v3f1000 first
573 v3f1000 third
574 v3f1000 third_front
575 */
576
578 /*
579 u32 id
580 */
581
583 /*
584 f1000 density
585 u8[4] color_diffuse (ARGB)
586 u8[4] color_ambient (ARGB)
587 f1000 height
588 f1000 thickness
589 v2f1000 speed
590 */
591
593 /*
594 s32 sound_id
595 float step
596 float gain
597 */
599 /*
600 u8 type
601 u16 number of players
602 for each player
603 u16 len
604 u8[len] player name
605 */
606
608 /*
609 u16 channel name length
610 std::string channel name
611 u16 channel name sender
612 std::string channel name
613 u16 message length
614 std::string message
615 */
616
618 /*
619 u8 signal id
620 u16 channel name length
621 std::string channel name
622 */
623
625 /*
626 serialized and compressed node metadata
627 */
628
630 /*
631 bool visible
632 std::string texture
633 std::string tonemap
634 std::string sunrise
635 f32 scale
636 */
637
639 /*
640 bool visible
641 std::string texture
642 std::string tonemap
643 f32 scale
644 */
645
647 /*
648 bool visible
649 u32 count
650 u8[4] starcolor (ARGB)
651 f32 scale
652 f32 day_opacity
653 */
654
656 /*
657 v3f added_pos
658 */
659
661 /*
662 Belonging to AUTH_MECHANISM_SRP.
663
664 std::string bytes_s
665 std::string bytes_B
666 */
667
669 /*
670 u16 len
671 u8[len] formspec
672 */
673
675 /*
676 u16 count // modes
677 u16 mode // wanted current mode index after change
678 for each mode
679 u16 type
680 std::string label
681 u16 size
682 std::string extra
683 */
684
686 /*
687 f32 shadow_intensity
688 f32 saturation
689 exposure parameters
690 f32 luminance_min
691 f32 luminance_max
692 f32 exposure_correction
693 f32 speed_dark_bright
694 f32 speed_bright_dark
695 f32 center_weight_power
696 f32 volumetric_light_strength
697 SColor shadow_tint
698 bloom parameters
699 f32 bloom_intensity
700 f32 bloom_strength_factor
701 f32 bloom_radius
702 v3f shadow_direction ({0,0,0} = unset)
703 */
704
706 /*
707 std::string data, zstd-compressed, for each particle:
708 u32 len
709 u8[len] serialized ParticleParameters
710 */
711
713};
714
716{
718 /*
719 Sent first after connected.
720
721 u8 serialization version (=SER_FMT_VER_HIGHEST_READ)
722 u16 unused (supported network compression modes, never implemeneted)
723 u16 minimum supported network protocol version
724 u16 maximum supported network protocol version
725 std::string player name
726 */
727
729 /*
730 Sent as an ACK for TOCLIENT_AUTH_ACCEPT.
731 After this, the server can send data.
732 */
733
735 /*
736 u16 channel name length
737 std::string channel name
738 */
739
741 /*
742 u16 channel name length
743 std::string channel name
744 */
745
747 /*
748 u16 channel name length
749 std::string channel name
750 u16 message length
751 std::string message
752 */
753
755 /*
756 v3s32 position*100
757 v3s32 speed*100
758 s32 pitch*100
759 s32 yaw*100
760 u32 keyPressed
761 u8 fov*80
762 u8 ceil(wanted_range / MAP_BLOCKSIZE)
763 u8 camera_inverted (bool)
764 f32 movement_speed
765 f32 movement_direction
766 */
767
769 /*
770 [0] u16 command
771 [2] u8 count
772 [3] v3s16 pos_0
773 [3+6] v3s16 pos_1
774 ...
775 */
776
778 /*
779 [0] u16 command
780 [2] u8 count
781 [3] v3s16 pos_0
782 [3+6] v3s16 pos_1
783 ...
784 */
785
787 /*
788 See InventoryAction in inventorymanager.h
789 */
790
792 /*
793 u16 length
794 wstring message
795 */
796
798 /*
799 u8 amount
800 */
801
803 /*
804 Sent to change selected item.
805
806 [0] u16 TOSERVER_PLAYERITEM
807 [2] u16 item
808 */
809
811
813 /*
814 [0] u16 command
815 [2] u8 action
816 [3] u16 item
817 [5] u32 length of the next item
818 [9] serialized PointedThing
819 actions:
820 0: start digging (from undersurface) or use
821 1: stop digging (all parameters ignored)
822 2: digging completed
823 3: place block or item (to abovesurface)
824 4: use item
825 */
826
828 /*
829 u16 len
830 s32[len] sound_id
831 */
832
834 /*
835 v3s16 p
836 u16 len
837 u8[len] form name (reserved for future use)
838 u16 number of fields
839 for each field:
840 u16 len
841 u8[len] field name
842 u32 len
843 u8[len] field value
844 */
845
847 /*
848 u16 len
849 u8[len] form name (reserved for future use)
850 u16 number of fields
851 for each field:
852 u16 len
853 u8[len] field name
854 u32 len
855 u8[len] field value
856 */
857
859 /*
860 u16 number of files requested
861 for each file {
862 u16 length of name
863 string name
864 }
865 */
866
868 /*
869 u8 number of callback tokens
870 for each:
871 u32 token
872 */
873
875 /*
876 u8 major
877 u8 minor
878 u8 patch
879 u8 reserved
880 u16 len
881 u8[len] full_version_string
882 */
883
885 /*
886 Belonging to AUTH_MECHANISM_FIRST_SRP.
887
888 std::string srp salt
889 std::string srp verification key
890 u8 is_empty (=1 if password is empty, 0 otherwise)
891 */
892
894 /*
895 Belonging to AUTH_MECHANISM_SRP,
896 depending on current_login_based_on.
897
898 std::string bytes_A
899 u8 current_login_based_on : on which version of the password's
900 hash this login is based on (0 legacy hash,
901 or 1 directly the password)
902 */
903
905 /*
906 Belonging to AUTH_MECHANISM_SRP.
907
908 std::string bytes_M
909 */
910
912 /*
913 v2s16 render_target_size
914 f32 gui_scaling
915 f32 hud_scaling
916 v2f32 max_fs_info
917 */
918
920};
921
923{
924 // reserved
926
927 // SRP based on the legacy hash
929
930 // SRP based on the srp verification key
932
933 // Establishes a srp verification key, for first login and password changing
935};
936
953
960
962 CSM_RF_NONE = 0x00000000,
963 // Until server-sent CSM and verifying of builtin are complete,
964 // 'CSM_RF_LOAD_CLIENT_MODS' also disables loading 'builtin'.
965 // When those are complete, this should return to only being a restriction on the
966 // loading of client mods.
967 CSM_RF_LOAD_CLIENT_MODS = 0x00000001, // Don't load client-provided mods or 'builtin'
968 CSM_RF_CHAT_MESSAGES = 0x00000002, // Disable chat message sending from CSM
969 CSM_RF_READ_ITEMDEFS = 0x00000004, // Disable itemdef lookups
970 CSM_RF_READ_NODEDEFS = 0x00000008, // Disable nodedef lookups
971 CSM_RF_LOOKUP_NODES = 0x00000010, // Limit node lookups
972 CSM_RF_READ_PLAYERINFO = 0x00000020, // Disable player info lookups
973 CSM_RF_ALL = 0xFFFFFFFF,
974};
975
977{
978 INTERACT_START_DIGGING, // 0: start digging (from undersurface) or use
979 INTERACT_STOP_DIGGING, // 1: stop digging (all parameters ignored)
980 INTERACT_DIGGING_COMPLETED, // 2: digging completed
981 INTERACT_PLACE, // 3: place block or item (to abovesurface)
982 INTERACT_USE, // 4: use item
983 INTERACT_ACTIVATE // 5: rightclick air ("activate")
984};
const u16 LATEST_PROTOCOL_VERSION
Definition networkprotocol.cpp:84
const u16 FORMSPEC_API_VERSION
Definition networkprotocol.cpp:87
ToServerCommand
Definition networkprotocol.h:716
@ TOSERVER_RESPAWN_LEGACY
Definition networkprotocol.h:810
@ TOSERVER_MODCHANNEL_LEAVE
Definition networkprotocol.h:740
@ TOSERVER_PLAYERITEM
Definition networkprotocol.h:802
@ TOSERVER_MODCHANNEL_MSG
Definition networkprotocol.h:746
@ TOSERVER_DELETEDBLOCKS
Definition networkprotocol.h:777
@ TOSERVER_GOTBLOCKS
Definition networkprotocol.h:768
@ TOSERVER_HAVE_MEDIA
Definition networkprotocol.h:867
@ TOSERVER_NODEMETA_FIELDS
Definition networkprotocol.h:833
@ TOSERVER_PLAYERPOS
Definition networkprotocol.h:754
@ TOSERVER_CLIENT_READY
Definition networkprotocol.h:874
@ TOSERVER_REQUEST_MEDIA
Definition networkprotocol.h:858
@ TOSERVER_SRP_BYTES_M
Definition networkprotocol.h:904
@ TOSERVER_INTERACT
Definition networkprotocol.h:812
@ TOSERVER_FIRST_SRP
Definition networkprotocol.h:884
@ TOSERVER_INIT
Definition networkprotocol.h:717
@ TOSERVER_REMOVED_SOUNDS
Definition networkprotocol.h:827
@ TOSERVER_DAMAGE
Definition networkprotocol.h:797
@ TOSERVER_NUM_MSG_TYPES
Definition networkprotocol.h:919
@ TOSERVER_UPDATE_CLIENT_INFO
Definition networkprotocol.h:911
@ TOSERVER_SRP_BYTES_A
Definition networkprotocol.h:893
@ TOSERVER_CHAT_MESSAGE
Definition networkprotocol.h:791
@ TOSERVER_MODCHANNEL_JOIN
Definition networkprotocol.h:734
@ TOSERVER_INIT2
Definition networkprotocol.h:728
@ TOSERVER_INVENTORY_ACTION
Definition networkprotocol.h:786
@ TOSERVER_INVENTORY_FIELDS
Definition networkprotocol.h:846
AccessDeniedCode
Definition networkprotocol.h:937
@ SERVER_ACCESSDENIED_SERVER_FAIL
Definition networkprotocol.h:947
@ SERVER_ACCESSDENIED_MAX
Definition networkprotocol.h:951
@ SERVER_ACCESSDENIED_CUSTOM_STRING
Definition networkprotocol.h:948
@ SERVER_ACCESSDENIED_CRASH
Definition networkprotocol.h:950
@ SERVER_ACCESSDENIED_ALREADY_CONNECTED
Definition networkprotocol.h:946
@ SERVER_ACCESSDENIED_TOO_MANY_USERS
Definition networkprotocol.h:944
@ SERVER_ACCESSDENIED_SHUTDOWN
Definition networkprotocol.h:949
@ SERVER_ACCESSDENIED_WRONG_PASSWORD
Definition networkprotocol.h:938
@ SERVER_ACCESSDENIED_SINGLEPLAYER
Definition networkprotocol.h:940
@ SERVER_ACCESSDENIED_UNEXPECTED_DATA
Definition networkprotocol.h:939
@ SERVER_ACCESSDENIED_WRONG_VERSION
Definition networkprotocol.h:941
@ SERVER_ACCESSDENIED_WRONG_CHARS_IN_NAME
Definition networkprotocol.h:942
@ SERVER_ACCESSDENIED_EMPTY_PASSWORD
Definition networkprotocol.h:945
@ SERVER_ACCESSDENIED_WRONG_NAME
Definition networkprotocol.h:943
CSMRestrictionFlags
Definition networkprotocol.h:961
@ CSM_RF_LOAD_CLIENT_MODS
Definition networkprotocol.h:967
@ CSM_RF_LOOKUP_NODES
Definition networkprotocol.h:971
@ CSM_RF_ALL
Definition networkprotocol.h:973
@ CSM_RF_CHAT_MESSAGES
Definition networkprotocol.h:968
@ CSM_RF_NONE
Definition networkprotocol.h:962
@ CSM_RF_READ_NODEDEFS
Definition networkprotocol.h:970
@ CSM_RF_READ_ITEMDEFS
Definition networkprotocol.h:969
@ CSM_RF_READ_PLAYERINFO
Definition networkprotocol.h:972
InteractAction
Definition networkprotocol.h:977
@ INTERACT_START_DIGGING
Definition networkprotocol.h:978
@ INTERACT_USE
Definition networkprotocol.h:982
@ INTERACT_DIGGING_COMPLETED
Definition networkprotocol.h:980
@ INTERACT_PLACE
Definition networkprotocol.h:981
@ INTERACT_ACTIVATE
Definition networkprotocol.h:983
@ INTERACT_STOP_DIGGING
Definition networkprotocol.h:979
AuthMechanism
Definition networkprotocol.h:923
@ AUTH_MECHANISM_SRP
Definition networkprotocol.h:931
@ AUTH_MECHANISM_NONE
Definition networkprotocol.h:925
@ AUTH_MECHANISM_LEGACY_PASSWORD
Definition networkprotocol.h:928
@ AUTH_MECHANISM_FIRST_SRP
Definition networkprotocol.h:934
constexpr u16 CLIENT_PROTOCOL_VERSION_MIN
Definition networkprotocol.h:15
constexpr u16 SERVER_PROTOCOL_VERSION_MIN
Definition networkprotocol.h:12
ToClientCommand
Definition networkprotocol.h:30
@ TOCLIENT_LOCAL_PLAYER_ANIMATIONS
Definition networkprotocol.h:561
@ TOCLIENT_FOV
Definition networkprotocol.h:171
@ TOCLIENT_ACCESS_DENIED_LEGACY
Definition networkprotocol.h:165
@ TOCLIENT_ACCEPT_SUDO_MODE
Definition networkprotocol.h:53
@ TOCLIENT_ACTIVE_OBJECT_REMOVE_ADD
Definition networkprotocol.h:128
@ TOCLIENT_ITEMDEF
Definition networkprotocol.h:216
@ TOCLIENT_CHAT_MESSAGE
Definition networkprotocol.h:118
@ TOCLIENT_ADD_PARTICLESPAWNER
Definition networkprotocol.h:340
@ TOCLIENT_ACTIVE_OBJECT_MESSAGES
Definition networkprotocol.h:143
@ TOCLIENT_SPAWN_PARTICLE_BATCH
Definition networkprotocol.h:705
@ TOCLIENT_MODCHANNEL_SIGNAL
Definition networkprotocol.h:617
@ TOCLIENT_SET_MOON
Definition networkprotocol.h:638
@ TOCLIENT_ACCESS_DENIED
Definition networkprotocol.h:63
@ TOCLIENT_SPAWN_PARTICLE
Definition networkprotocol.h:290
@ TOCLIENT_PRIVILEGES
Definition networkprotocol.h:243
@ TOCLIENT_HUD_SET_PARAM
Definition networkprotocol.h:511
@ TOCLIENT_DEATHSCREEN_LEGACY
Definition networkprotocol.h:180
@ TOCLIENT_CSM_RESTRICTION_FLAGS
Definition networkprotocol.h:100
@ TOCLIENT_SET_LIGHTING
Definition networkprotocol.h:685
@ TOCLIENT_MOVE_PLAYER_REL
Definition networkprotocol.h:655
@ TOCLIENT_STOP_SOUND
Definition networkprotocol.h:238
@ TOCLIENT_NODEMETA_CHANGED
Definition networkprotocol.h:624
@ TOCLIENT_DENY_SUDO_MODE
Definition networkprotocol.h:58
@ TOCLIENT_PLAY_SOUND
Definition networkprotocol.h:222
@ TOCLIENT_SET_STARS
Definition networkprotocol.h:646
@ TOCLIENT_SET_SKY
Definition networkprotocol.h:523
@ TOCLIENT_MINIMAP_MODES
Definition networkprotocol.h:674
@ TOCLIENT_REMOVENODE
Definition networkprotocol.h:83
@ TOCLIENT_HP
Definition networkprotocol.h:153
@ TOCLIENT_MEDIA_PUSH
Definition networkprotocol.h:110
@ TOCLIENT_SRP_BYTES_S_B
Definition networkprotocol.h:660
@ TOCLIENT_DETACHED_INVENTORY
Definition networkprotocol.h:257
@ TOCLIENT_HELLO
Definition networkprotocol.h:31
@ TOCLIENT_AUTH_ACCEPT
Definition networkprotocol.h:42
@ TOCLIENT_MOVEMENT
Definition networkprotocol.h:274
@ TOCLIENT_CLOUD_PARAMS
Definition networkprotocol.h:582
@ TOCLIENT_HUDADD
Definition networkprotocol.h:468
@ TOCLIENT_FADE_SOUND
Definition networkprotocol.h:592
@ TOCLIENT_NUM_MSG_TYPES
Definition networkprotocol.h:712
@ TOCLIENT_DELETE_PARTICLESPAWNER
Definition networkprotocol.h:577
@ TOCLIENT_HUDRM
Definition networkprotocol.h:490
@ TOCLIENT_MEDIA
Definition networkprotocol.h:186
@ TOCLIENT_MOVE_PLAYER
Definition networkprotocol.h:158
@ TOCLIENT_SET_SUN
Definition networkprotocol.h:629
@ TOCLIENT_SHOW_FORMSPEC
Definition networkprotocol.h:265
@ TOCLIENT_ADDNODE
Definition networkprotocol.h:76
@ TOCLIENT_TIME_OF_DAY
Definition networkprotocol.h:94
@ TOCLIENT_CAMERA
Definition networkprotocol.h:463
@ TOCLIENT_BREATH
Definition networkprotocol.h:518
@ TOCLIENT_BLOCKDATA
Definition networkprotocol.h:70
@ TOCLIENT_FORMSPEC_PREPEND
Definition networkprotocol.h:668
@ TOCLIENT_OVERRIDE_DAY_NIGHT_RATIO
Definition networkprotocol.h:555
@ TOCLIENT_MODCHANNEL_MSG
Definition networkprotocol.h:607
@ TOCLIENT_NODEDEF
Definition networkprotocol.h:199
@ TOCLIENT_PLAYER_SPEED
Definition networkprotocol.h:105
@ TOCLIENT_HUDCHANGE
Definition networkprotocol.h:495
@ TOCLIENT_EYE_OFFSET
Definition networkprotocol.h:570
@ TOCLIENT_HUD_SET_FLAGS
Definition networkprotocol.h:505
@ TOCLIENT_ANNOUNCE_MEDIA
Definition networkprotocol.h:205
@ TOCLIENT_INVENTORY
Definition networkprotocol.h:88
@ TOCLIENT_UPDATE_PLAYER_LIST
Definition networkprotocol.h:598
@ TOCLIENT_INVENTORY_FORMSPEC
Definition networkprotocol.h:251
u16 session_t
Definition networkprotocol.h:27
PlayerListModifer
Definition networkprotocol.h:955
@ PLAYER_LIST_INIT
Definition networkprotocol.h:956
@ PLAYER_LIST_REMOVE
Definition networkprotocol.h:958
@ PLAYER_LIST_ADD
Definition networkprotocol.h:957