Luanti 5.17.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 typedef v2x = v2f if protocol version >= 46, else v2s16
564 v2x stand/idle
565 v2x walk
566 v2x dig
567 v2x walk+dig
568 f1000 frame_speed
569 */
570
572 /*
573 v3f1000 first
574 v3f1000 third
575 v3f1000 third_front
576 */
577
579 /*
580 u32 id
581 */
582
584 /*
585 f1000 density
586 u8[4] color_diffuse (ARGB)
587 u8[4] color_ambient (ARGB)
588 f1000 height
589 f1000 thickness
590 v2f1000 speed
591 */
592
594 /*
595 s32 sound_id
596 float step
597 float gain
598 */
600 /*
601 u8 type
602 u16 number of players
603 for each player
604 u16 len
605 u8[len] player name
606 */
607
609 /*
610 u16 channel name length
611 std::string channel name
612 u16 channel name sender
613 std::string channel name
614 u16 message length
615 std::string message
616 */
617
619 /*
620 u8 signal id
621 u16 channel name length
622 std::string channel name
623 */
624
626 /*
627 serialized and compressed node metadata
628 */
629
631 /*
632 bool visible
633 std::string texture
634 std::string tonemap
635 std::string sunrise
636 f32 scale
637 */
638
640 /*
641 bool visible
642 std::string texture
643 std::string tonemap
644 f32 scale
645 */
646
648 /*
649 bool visible
650 u32 count
651 u8[4] starcolor (ARGB)
652 f32 scale
653 f32 day_opacity
654 */
655
657 /*
658 v3f added_pos
659 */
660
662 /*
663 Belonging to AUTH_MECHANISM_SRP.
664
665 std::string bytes_s
666 std::string bytes_B
667 */
668
670 /*
671 u16 len
672 u8[len] formspec
673 */
674
676 /*
677 u16 count // modes
678 u16 mode // wanted current mode index after change
679 for each mode
680 u16 type
681 std::string label
682 u16 size
683 std::string extra
684 */
685
687 /*
688 f32 shadow_intensity
689 f32 saturation
690 exposure parameters
691 f32 luminance_min
692 f32 luminance_max
693 f32 exposure_correction
694 f32 speed_dark_bright
695 f32 speed_bright_dark
696 f32 center_weight_power
697 f32 volumetric_light_strength
698 SColor shadow_tint
699 bloom parameters
700 f32 bloom_intensity
701 f32 bloom_strength_factor
702 f32 bloom_radius
703 v3f shadow_direction ({0,0,0} = unset)
704 */
705
707 /*
708 std::string data, zstd-compressed, for each particle:
709 u32 len
710 u8[len] serialized ParticleParameters
711 */
712
714};
715
717{
719 /*
720 Sent first after connected.
721
722 u8 serialization version (=SER_FMT_VER_HIGHEST_READ)
723 u16 unused (supported network compression modes, never implemeneted)
724 u16 minimum supported network protocol version
725 u16 maximum supported network protocol version
726 std::string player name
727 */
728
730 /*
731 Sent as an ACK for TOCLIENT_AUTH_ACCEPT.
732 After this, the server can send data.
733 */
734
736 /*
737 u16 channel name length
738 std::string channel name
739 */
740
742 /*
743 u16 channel name length
744 std::string channel name
745 */
746
748 /*
749 u16 channel name length
750 std::string channel name
751 u16 message length
752 std::string message
753 */
754
756 /*
757 v3s32 position*100
758 v3s32 speed*100
759 s32 pitch*100
760 s32 yaw*100
761 u32 keyPressed
762 u8 fov*80
763 u8 ceil(wanted_range / MAP_BLOCKSIZE)
764 u8 camera_inverted (bool)
765 f32 movement_speed
766 f32 movement_direction
767 */
768
770 /*
771 [0] u16 command
772 [2] u8 count
773 [3] v3s16 pos_0
774 [3+6] v3s16 pos_1
775 ...
776 */
777
779 /*
780 [0] u16 command
781 [2] u8 count
782 [3] v3s16 pos_0
783 [3+6] v3s16 pos_1
784 ...
785 */
786
788 /*
789 See InventoryAction in inventorymanager.h
790 */
791
793 /*
794 u16 length
795 wstring message
796 */
797
799 /*
800 u8 amount
801 */
802
804 /*
805 Sent to change selected item.
806
807 [0] u16 TOSERVER_PLAYERITEM
808 [2] u16 item
809 */
810
812
814 /*
815 [0] u16 command
816 [2] u8 action
817 [3] u16 item
818 [5] u32 length of the next item
819 [9] serialized PointedThing
820 actions:
821 0: start digging (from undersurface) or use
822 1: stop digging (all parameters ignored)
823 2: digging completed
824 3: place block or item (to abovesurface)
825 4: use item
826 */
827
829 /*
830 u16 len
831 s32[len] sound_id
832 */
833
835 /*
836 v3s16 p
837 u16 len
838 u8[len] form name (reserved for future use)
839 u16 number of fields
840 for each field:
841 u16 len
842 u8[len] field name
843 u32 len
844 u8[len] field value
845 */
846
848 /*
849 u16 len
850 u8[len] form name (reserved for future use)
851 u16 number of fields
852 for each field:
853 u16 len
854 u8[len] field name
855 u32 len
856 u8[len] field value
857 */
858
860 /*
861 u16 number of files requested
862 for each file {
863 u16 length of name
864 string name
865 }
866 */
867
869 /*
870 u8 number of callback tokens
871 for each:
872 u32 token
873 */
874
876 /*
877 u8 major
878 u8 minor
879 u8 patch
880 u8 reserved
881 u16 len
882 u8[len] full_version_string
883 */
884
886 /*
887 Belonging to AUTH_MECHANISM_FIRST_SRP.
888
889 std::string srp salt
890 std::string srp verification key
891 u8 is_empty (=1 if password is empty, 0 otherwise)
892 */
893
895 /*
896 Belonging to AUTH_MECHANISM_SRP,
897 depending on current_login_based_on.
898
899 std::string bytes_A
900 u8 current_login_based_on : on which version of the password's
901 hash this login is based on (0 legacy hash,
902 or 1 directly the password)
903 */
904
906 /*
907 Belonging to AUTH_MECHANISM_SRP.
908
909 std::string bytes_M
910 */
911
913 /*
914 v2s16 render_target_size
915 f32 gui_scaling
916 f32 hud_scaling
917 v2f32 max_fs_info
918 */
919
921};
922
924{
925 // reserved
927
928 // SRP based on the legacy hash
930
931 // SRP based on the srp verification key
933
934 // Establishes a srp verification key, for first login and password changing
936};
937
954
961
963 CSM_RF_NONE = 0x00000000,
964 // Until server-sent CSM and verifying of builtin are complete,
965 // 'CSM_RF_LOAD_CLIENT_MODS' also disables loading 'builtin'.
966 // When those are complete, this should return to only being a restriction on the
967 // loading of client mods.
968 CSM_RF_LOAD_CLIENT_MODS = 0x00000001, // Don't load client-provided mods or 'builtin'
969 CSM_RF_CHAT_MESSAGES = 0x00000002, // Disable chat message sending from CSM
970 CSM_RF_READ_ITEMDEFS = 0x00000004, // Disable itemdef lookups
971 CSM_RF_READ_NODEDEFS = 0x00000008, // Disable nodedef lookups
972 CSM_RF_LOOKUP_NODES = 0x00000010, // Limit node lookups
973 CSM_RF_READ_PLAYERINFO = 0x00000020, // Disable player info lookups
974 CSM_RF_ALL = 0xFFFFFFFF,
975};
976
978{
979 INTERACT_START_DIGGING, // 0: start digging (from undersurface) or use
980 INTERACT_STOP_DIGGING, // 1: stop digging (all parameters ignored)
981 INTERACT_DIGGING_COMPLETED, // 2: digging completed
982 INTERACT_PLACE, // 3: place block or item (to abovesurface)
983 INTERACT_USE, // 4: use item
984 INTERACT_ACTIVATE // 5: rightclick air ("activate")
985};
const u16 LATEST_PROTOCOL_VERSION
Definition networkprotocol.cpp:84
const u16 FORMSPEC_API_VERSION
Definition networkprotocol.cpp:87
ToServerCommand
Definition networkprotocol.h:717
@ TOSERVER_RESPAWN_LEGACY
Definition networkprotocol.h:811
@ TOSERVER_MODCHANNEL_LEAVE
Definition networkprotocol.h:741
@ TOSERVER_PLAYERITEM
Definition networkprotocol.h:803
@ TOSERVER_MODCHANNEL_MSG
Definition networkprotocol.h:747
@ TOSERVER_DELETEDBLOCKS
Definition networkprotocol.h:778
@ TOSERVER_GOTBLOCKS
Definition networkprotocol.h:769
@ TOSERVER_HAVE_MEDIA
Definition networkprotocol.h:868
@ TOSERVER_NODEMETA_FIELDS
Definition networkprotocol.h:834
@ TOSERVER_PLAYERPOS
Definition networkprotocol.h:755
@ TOSERVER_CLIENT_READY
Definition networkprotocol.h:875
@ TOSERVER_REQUEST_MEDIA
Definition networkprotocol.h:859
@ TOSERVER_SRP_BYTES_M
Definition networkprotocol.h:905
@ TOSERVER_INTERACT
Definition networkprotocol.h:813
@ TOSERVER_FIRST_SRP
Definition networkprotocol.h:885
@ TOSERVER_INIT
Definition networkprotocol.h:718
@ TOSERVER_REMOVED_SOUNDS
Definition networkprotocol.h:828
@ TOSERVER_DAMAGE
Definition networkprotocol.h:798
@ TOSERVER_NUM_MSG_TYPES
Definition networkprotocol.h:920
@ TOSERVER_UPDATE_CLIENT_INFO
Definition networkprotocol.h:912
@ TOSERVER_SRP_BYTES_A
Definition networkprotocol.h:894
@ TOSERVER_CHAT_MESSAGE
Definition networkprotocol.h:792
@ TOSERVER_MODCHANNEL_JOIN
Definition networkprotocol.h:735
@ TOSERVER_INIT2
Definition networkprotocol.h:729
@ TOSERVER_INVENTORY_ACTION
Definition networkprotocol.h:787
@ TOSERVER_INVENTORY_FIELDS
Definition networkprotocol.h:847
AccessDeniedCode
Definition networkprotocol.h:938
@ SERVER_ACCESSDENIED_SERVER_FAIL
Definition networkprotocol.h:948
@ SERVER_ACCESSDENIED_MAX
Definition networkprotocol.h:952
@ SERVER_ACCESSDENIED_CUSTOM_STRING
Definition networkprotocol.h:949
@ SERVER_ACCESSDENIED_CRASH
Definition networkprotocol.h:951
@ SERVER_ACCESSDENIED_ALREADY_CONNECTED
Definition networkprotocol.h:947
@ SERVER_ACCESSDENIED_TOO_MANY_USERS
Definition networkprotocol.h:945
@ SERVER_ACCESSDENIED_SHUTDOWN
Definition networkprotocol.h:950
@ SERVER_ACCESSDENIED_WRONG_PASSWORD
Definition networkprotocol.h:939
@ SERVER_ACCESSDENIED_SINGLEPLAYER
Definition networkprotocol.h:941
@ SERVER_ACCESSDENIED_UNEXPECTED_DATA
Definition networkprotocol.h:940
@ SERVER_ACCESSDENIED_WRONG_VERSION
Definition networkprotocol.h:942
@ SERVER_ACCESSDENIED_WRONG_CHARS_IN_NAME
Definition networkprotocol.h:943
@ SERVER_ACCESSDENIED_EMPTY_PASSWORD
Definition networkprotocol.h:946
@ SERVER_ACCESSDENIED_WRONG_NAME
Definition networkprotocol.h:944
CSMRestrictionFlags
Definition networkprotocol.h:962
@ CSM_RF_LOAD_CLIENT_MODS
Definition networkprotocol.h:968
@ CSM_RF_LOOKUP_NODES
Definition networkprotocol.h:972
@ CSM_RF_ALL
Definition networkprotocol.h:974
@ CSM_RF_CHAT_MESSAGES
Definition networkprotocol.h:969
@ CSM_RF_NONE
Definition networkprotocol.h:963
@ CSM_RF_READ_NODEDEFS
Definition networkprotocol.h:971
@ CSM_RF_READ_ITEMDEFS
Definition networkprotocol.h:970
@ CSM_RF_READ_PLAYERINFO
Definition networkprotocol.h:973
InteractAction
Definition networkprotocol.h:978
@ INTERACT_START_DIGGING
Definition networkprotocol.h:979
@ INTERACT_USE
Definition networkprotocol.h:983
@ INTERACT_DIGGING_COMPLETED
Definition networkprotocol.h:981
@ INTERACT_PLACE
Definition networkprotocol.h:982
@ INTERACT_ACTIVATE
Definition networkprotocol.h:984
@ INTERACT_STOP_DIGGING
Definition networkprotocol.h:980
AuthMechanism
Definition networkprotocol.h:924
@ AUTH_MECHANISM_SRP
Definition networkprotocol.h:932
@ AUTH_MECHANISM_NONE
Definition networkprotocol.h:926
@ AUTH_MECHANISM_LEGACY_PASSWORD
Definition networkprotocol.h:929
@ AUTH_MECHANISM_FIRST_SRP
Definition networkprotocol.h:935
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:706
@ TOCLIENT_MODCHANNEL_SIGNAL
Definition networkprotocol.h:618
@ TOCLIENT_SET_MOON
Definition networkprotocol.h:639
@ 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:686
@ TOCLIENT_MOVE_PLAYER_REL
Definition networkprotocol.h:656
@ TOCLIENT_STOP_SOUND
Definition networkprotocol.h:238
@ TOCLIENT_NODEMETA_CHANGED
Definition networkprotocol.h:625
@ TOCLIENT_DENY_SUDO_MODE
Definition networkprotocol.h:58
@ TOCLIENT_PLAY_SOUND
Definition networkprotocol.h:222
@ TOCLIENT_SET_STARS
Definition networkprotocol.h:647
@ TOCLIENT_SET_SKY
Definition networkprotocol.h:523
@ TOCLIENT_MINIMAP_MODES
Definition networkprotocol.h:675
@ 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:661
@ 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:583
@ TOCLIENT_HUDADD
Definition networkprotocol.h:468
@ TOCLIENT_FADE_SOUND
Definition networkprotocol.h:593
@ TOCLIENT_NUM_MSG_TYPES
Definition networkprotocol.h:713
@ TOCLIENT_DELETE_PARTICLESPAWNER
Definition networkprotocol.h:578
@ 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:630
@ 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:669
@ TOCLIENT_OVERRIDE_DAY_NIGHT_RATIO
Definition networkprotocol.h:555
@ TOCLIENT_MODCHANNEL_MSG
Definition networkprotocol.h:608
@ 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:571
@ 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:599
@ TOCLIENT_INVENTORY_FORMSPEC
Definition networkprotocol.h:251
u16 session_t
Definition networkprotocol.h:27
PlayerListModifer
Definition networkprotocol.h:956
@ PLAYER_LIST_INIT
Definition networkprotocol.h:957
@ PLAYER_LIST_REMOVE
Definition networkprotocol.h:959
@ PLAYER_LIST_ADD
Definition networkprotocol.h:958