tachyon-protocol 1.9.2 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/types.d.mts CHANGED
@@ -1,6 +1,7 @@
1
- type TachyonCommand = AutohostAddPlayerRequest | AutohostAddPlayerResponse | AutohostKickPlayerRequest | AutohostKickPlayerResponse | AutohostKillRequest | AutohostKillResponse | AutohostMutePlayerRequest | AutohostMutePlayerResponse | AutohostSendCommandRequest | AutohostSendCommandResponse | AutohostSendMessageRequest | AutohostSendMessageResponse | AutohostSpecPlayersRequest | AutohostSpecPlayersResponse | AutohostStartRequest | AutohostStartResponse | AutohostStatusEvent | AutohostSubscribeUpdatesRequest | AutohostSubscribeUpdatesResponse | AutohostUpdateEvent | BattleStartRequest | BattleStartResponse | MatchmakingCancelRequest | MatchmakingCancelResponse | MatchmakingCancelledEvent | MatchmakingFoundEvent | MatchmakingFoundUpdateEvent | MatchmakingListRequest | MatchmakingListResponse | MatchmakingLostEvent | MatchmakingQueueRequest | MatchmakingQueueResponse | MatchmakingQueueUpdateEvent | MatchmakingReadyRequest | MatchmakingReadyResponse | SystemDisconnectRequest | SystemDisconnectResponse | SystemServerStatsRequest | SystemServerStatsResponse | UserUpdatedEvent;
1
+ type TachyonCommand = AutohostAddPlayerRequest | AutohostAddPlayerResponse | AutohostInstallEngineRequest | AutohostInstallEngineResponse | AutohostKickPlayerRequest | AutohostKickPlayerResponse | AutohostKillRequest | AutohostKillResponse | AutohostMutePlayerRequest | AutohostMutePlayerResponse | AutohostSendCommandRequest | AutohostSendCommandResponse | AutohostSendMessageRequest | AutohostSendMessageResponse | AutohostSpecPlayersRequest | AutohostSpecPlayersResponse | AutohostStartRequest | AutohostStartResponse | AutohostStatusEvent | AutohostSubscribeUpdatesRequest | AutohostSubscribeUpdatesResponse | AutohostUpdateEvent | BattleStartRequest | BattleStartResponse | MatchmakingCancelRequest | MatchmakingCancelResponse | MatchmakingCancelledEvent | MatchmakingFoundEvent | MatchmakingFoundUpdateEvent | MatchmakingListRequest | MatchmakingListResponse | MatchmakingLostEvent | MatchmakingQueueRequest | MatchmakingQueueResponse | MatchmakingQueueUpdateEvent | MatchmakingReadyRequest | MatchmakingReadyResponse | MessagingReceivedEvent | MessagingSendRequest | MessagingSendResponse | MessagingSubscribeReceivedRequest | MessagingSubscribeReceivedResponse | SystemDisconnectRequest | SystemDisconnectResponse | SystemServerStatsRequest | SystemServerStatsResponse | UserSelfEvent | UserSubscribeUpdatesRequest | UserSubscribeUpdatesResponse | UserUnsubscribeUpdatesRequest | UserUnsubscribeUpdatesResponse | UserUpdatedEvent;
2
2
  type UserId = string;
3
3
  type AutohostAddPlayerResponse = AutohostAddPlayerOkResponse | AutohostAddPlayerFailResponse;
4
+ type AutohostInstallEngineResponse = AutohostInstallEngineOkResponse | AutohostInstallEngineFailResponse;
4
5
  type AutohostKickPlayerResponse = AutohostKickPlayerOkResponse | AutohostKickPlayerFailResponse;
5
6
  type AutohostKillResponse = AutohostKillOkResponse | AutohostKillFailResponse;
6
7
  type AutohostMutePlayerResponse = AutohostMutePlayerOkResponse | AutohostMutePlayerFailResponse;
@@ -31,8 +32,26 @@ type MatchmakingCancelResponse = MatchmakingCancelOkResponse | MatchmakingCancel
31
32
  type MatchmakingListResponse = MatchmakingListOkResponse | MatchmakingListFailResponse;
32
33
  type MatchmakingQueueResponse = MatchmakingQueueOkResponse | MatchmakingQueueFailResponse;
33
34
  type MatchmakingReadyResponse = MatchmakingReadyOkResponse | MatchmakingReadyFailResponse;
35
+ /**
36
+ * an opaque value to allow history retrieval
37
+ */
38
+ type HistoryMarker = string;
39
+ type MessagingSendResponse = MessagingSendOkResponse | MessagingSendFailResponse;
40
+ type MessagingSubscribeReceivedResponse = MessagingSubscribeReceivedOkResponse | MessagingSubscribeReceivedFailResponse;
34
41
  type SystemDisconnectResponse = SystemDisconnectOkResponse | SystemDisconnectFailResponse;
35
42
  type SystemServerStatsResponse = SystemServerStatsOkResponse | SystemServerStatsFailResponse;
43
+ type PrivateUser = User & {
44
+ partyId: string | null;
45
+ friendIds: string[];
46
+ outgoingFriendRequestIds: string[];
47
+ incomingFriendRequestIds: string[];
48
+ ignoreIds: string[];
49
+ currentBattle?: PrivateBattle;
50
+ };
51
+ type UserId1 = string;
52
+ type UserSubscribeUpdatesResponse = UserSubscribeUpdatesOkResponse | UserSubscribeUpdatesFailResponse;
53
+ type UserId2 = string;
54
+ type UserUnsubscribeUpdatesResponse = UserUnsubscribeUpdatesOkResponse | UserUnsubscribeUpdatesFailResponse;
36
55
  interface AutohostAddPlayerRequest {
37
56
  type: "request";
38
57
  messageId: string;
@@ -59,6 +78,32 @@ interface AutohostAddPlayerFailResponse {
59
78
  reason: "internal_error" | "unauthorized" | "invalid_request" | "command_unimplemented";
60
79
  details?: string;
61
80
  }
81
+ interface AutohostInstallEngineRequest {
82
+ type: "request";
83
+ messageId: string;
84
+ commandId: "autohost/installEngine";
85
+ data: AutohostInstallEngineRequestData;
86
+ }
87
+ interface AutohostInstallEngineRequestData {
88
+ /**
89
+ * Version of the engine to install
90
+ */
91
+ version: string;
92
+ }
93
+ interface AutohostInstallEngineOkResponse {
94
+ type: "response";
95
+ messageId: string;
96
+ commandId: "autohost/installEngine";
97
+ status: "success";
98
+ }
99
+ interface AutohostInstallEngineFailResponse {
100
+ type: "response";
101
+ messageId: string;
102
+ commandId: "autohost/installEngine";
103
+ status: "failed";
104
+ reason: "internal_error" | "unauthorized" | "invalid_request" | "command_unimplemented";
105
+ details?: string;
106
+ }
62
107
  interface AutohostKickPlayerRequest {
63
108
  type: "request";
64
109
  messageId: string;
@@ -359,8 +404,15 @@ interface AutohostStatusEvent {
359
404
  data: AutohostStatusEventData;
360
405
  }
361
406
  interface AutohostStatusEventData {
407
+ /**
408
+ * The maxBattles might be reported lower (e.g. 0) then currentBattles. Example: autohost is shutting down and doesn't want to accept any new battles.
409
+ */
362
410
  maxBattles: number;
363
411
  currentBattles: number;
412
+ /**
413
+ * List of available engine versions on autohost
414
+ */
415
+ availableEngines: string[];
364
416
  }
365
417
  interface AutohostSubscribeUpdatesRequest {
366
418
  type: "request";
@@ -481,11 +533,23 @@ interface BattleStartRequest {
481
533
  commandId: "battle/start";
482
534
  data: BattleStartRequestData;
483
535
  }
536
+ /**
537
+ * Battle informations including secrets to pass to spring for joining the game server. Don't expose secrets to other players.
538
+ */
484
539
  interface BattleStartRequestData {
485
540
  username: string;
486
541
  password: string;
487
542
  ip: string;
488
543
  port: number;
544
+ engine: {
545
+ version: string;
546
+ };
547
+ game: {
548
+ springName: string;
549
+ };
550
+ map: {
551
+ springName: string;
552
+ };
489
553
  }
490
554
  interface BattleStartOkResponse {
491
555
  type: "response";
@@ -567,6 +631,15 @@ interface MatchmakingListOkResponseData {
567
631
  numOfTeams: number;
568
632
  teamSize: number;
569
633
  ranked: boolean;
634
+ engines: {
635
+ version: string;
636
+ }[];
637
+ games: {
638
+ springName: string;
639
+ }[];
640
+ maps: {
641
+ springName: string;
642
+ }[];
570
643
  }[];
571
644
  }
572
645
  interface MatchmakingListFailResponse {
@@ -636,6 +709,88 @@ interface MatchmakingReadyFailResponse {
636
709
  reason: "no_match" | "internal_error" | "unauthorized" | "invalid_request" | "command_unimplemented";
637
710
  details?: string;
638
711
  }
712
+ interface MessagingReceivedEvent {
713
+ type: "event";
714
+ messageId: string;
715
+ commandId: "messaging/received";
716
+ data: MessagingReceivedEventData;
717
+ }
718
+ interface MessagingReceivedEventData {
719
+ message: string;
720
+ source: {
721
+ type: "player";
722
+ userId: UserId;
723
+ };
724
+ /**
725
+ * Unix timestamp in microseconds
726
+ */
727
+ timestamp: number;
728
+ marker: HistoryMarker;
729
+ }
730
+ interface MessagingSendRequest {
731
+ type: "request";
732
+ messageId: string;
733
+ commandId: "messaging/send";
734
+ data: MessagingSendRequestData;
735
+ }
736
+ interface MessagingSendRequestData {
737
+ target: {
738
+ type: "player";
739
+ userId: UserId;
740
+ };
741
+ message: string;
742
+ }
743
+ interface MessagingSendOkResponse {
744
+ type: "response";
745
+ messageId: string;
746
+ commandId: "messaging/send";
747
+ status: "success";
748
+ }
749
+ interface MessagingSendFailResponse {
750
+ type: "response";
751
+ messageId: string;
752
+ commandId: "messaging/send";
753
+ status: "failed";
754
+ reason: "message_too_long" | "invalid_target" | "internal_error" | "unauthorized" | "invalid_request" | "command_unimplemented";
755
+ details?: string;
756
+ }
757
+ interface MessagingSubscribeReceivedRequest {
758
+ type: "request";
759
+ messageId: string;
760
+ commandId: "messaging/subscribeReceived";
761
+ data: MessagingSubscribeReceivedRequestData;
762
+ }
763
+ interface MessagingSubscribeReceivedRequestData {
764
+ since?: {
765
+ type: "from_start";
766
+ } | {
767
+ type: "latest";
768
+ } | {
769
+ type: "marker";
770
+ value: HistoryMarker;
771
+ };
772
+ }
773
+ interface MessagingSubscribeReceivedOkResponse {
774
+ type: "response";
775
+ messageId: string;
776
+ commandId: "messaging/subscribeReceived";
777
+ status: "success";
778
+ data: MessagingSubscribeReceivedOkResponseData;
779
+ }
780
+ interface MessagingSubscribeReceivedOkResponseData {
781
+ /**
782
+ * set to true when the marker sent doesn't match any message stored by the server.
783
+ */
784
+ hasMissedMessages: boolean;
785
+ }
786
+ interface MessagingSubscribeReceivedFailResponse {
787
+ type: "response";
788
+ messageId: string;
789
+ commandId: "messaging/subscribeReceived";
790
+ status: "failed";
791
+ reason: "internal_error" | "unauthorized" | "invalid_request" | "command_unimplemented";
792
+ details?: string;
793
+ }
639
794
  interface SystemDisconnectRequest {
640
795
  type: "request";
641
796
  messageId: string;
@@ -682,6 +837,95 @@ interface SystemServerStatsFailResponse {
682
837
  reason: "internal_error" | "unauthorized" | "invalid_request" | "command_unimplemented";
683
838
  details?: string;
684
839
  }
840
+ interface UserSelfEvent {
841
+ type: "event";
842
+ messageId: string;
843
+ commandId: "user/self";
844
+ data: UserSelfEventData;
845
+ }
846
+ interface UserSelfEventData {
847
+ user: PrivateUser;
848
+ }
849
+ interface User {
850
+ userId: UserId;
851
+ username: string;
852
+ displayName: string;
853
+ clanId: string | null;
854
+ countryCode?: string;
855
+ status: "offline" | "menu" | "playing" | "lobby";
856
+ }
857
+ /**
858
+ * Battle informations including secrets to pass to spring for joining the game server. Don't expose secrets to other players.
859
+ */
860
+ interface PrivateBattle {
861
+ username: string;
862
+ password: string;
863
+ ip: string;
864
+ port: number;
865
+ engine: {
866
+ version: string;
867
+ };
868
+ game: {
869
+ springName: string;
870
+ };
871
+ map: {
872
+ springName: string;
873
+ };
874
+ }
875
+ interface UserSubscribeUpdatesRequest {
876
+ type: "request";
877
+ messageId: string;
878
+ commandId: "user/subscribeUpdates";
879
+ data: UserSubscribeUpdatesRequestData;
880
+ }
881
+ interface UserSubscribeUpdatesRequestData {
882
+ /**
883
+ * @minItems 1
884
+ * @maxItems 100
885
+ */
886
+ userIds: [UserId1, ...UserId1[]];
887
+ }
888
+ interface UserSubscribeUpdatesOkResponse {
889
+ type: "response";
890
+ messageId: string;
891
+ commandId: "user/subscribeUpdates";
892
+ status: "success";
893
+ }
894
+ interface UserSubscribeUpdatesFailResponse {
895
+ type: "response";
896
+ messageId: string;
897
+ commandId: "user/subscribeUpdates";
898
+ status: "failed";
899
+ reason: "subscription_limit_reached" | "internal_error" | "unauthorized" | "invalid_request" | "command_unimplemented";
900
+ details?: string;
901
+ }
902
+ interface UserUnsubscribeUpdatesRequest {
903
+ type: "request";
904
+ messageId: string;
905
+ commandId: "user/unsubscribeUpdates";
906
+ data: UserUnsubscribeUpdatesRequestData;
907
+ }
908
+ interface UserUnsubscribeUpdatesRequestData {
909
+ /**
910
+ * @minItems 1
911
+ * @maxItems 100
912
+ */
913
+ userIds: [UserId2, ...UserId2[]];
914
+ }
915
+ interface UserUnsubscribeUpdatesOkResponse {
916
+ type: "response";
917
+ messageId: string;
918
+ commandId: "user/unsubscribeUpdates";
919
+ status: "success";
920
+ }
921
+ interface UserUnsubscribeUpdatesFailResponse {
922
+ type: "response";
923
+ messageId: string;
924
+ commandId: "user/unsubscribeUpdates";
925
+ status: "failed";
926
+ reason: "internal_error" | "unauthorized" | "invalid_request" | "command_unimplemented";
927
+ details?: string;
928
+ }
685
929
  interface UserUpdatedEvent {
686
930
  type: "event";
687
931
  messageId: string;
@@ -689,21 +933,14 @@ interface UserUpdatedEvent {
689
933
  data: UserUpdatedEventData;
690
934
  }
691
935
  interface UserUpdatedEventData {
692
- users: ({
936
+ users: {
693
937
  userId?: string;
694
938
  username?: string;
695
939
  displayName?: string;
696
940
  clanId?: string | null;
697
- partyId?: string | null;
698
- scopes?: string[];
699
941
  countryCode?: string;
700
942
  status?: "offline" | "menu" | "playing" | "lobby";
701
- } & {
702
- friendIds?: string[];
703
- outgoingFriendRequestIds?: string[];
704
- incomingFriendRequestIds?: string[];
705
- ignoreIds?: string[];
706
- })[];
943
+ }[];
707
944
  }
708
945
 
709
- export type { AllyTeam, AutohostAddPlayerFailResponse, AutohostAddPlayerOkResponse, AutohostAddPlayerRequest, AutohostAddPlayerRequestData, AutohostAddPlayerResponse, AutohostKickPlayerFailResponse, AutohostKickPlayerOkResponse, AutohostKickPlayerRequest, AutohostKickPlayerRequestData, AutohostKickPlayerResponse, AutohostKillFailResponse, AutohostKillOkResponse, AutohostKillRequest, AutohostKillRequestData, AutohostKillResponse, AutohostMutePlayerFailResponse, AutohostMutePlayerOkResponse, AutohostMutePlayerRequest, AutohostMutePlayerRequestData, AutohostMutePlayerResponse, AutohostSendCommandFailResponse, AutohostSendCommandOkResponse, AutohostSendCommandRequest, AutohostSendCommandRequestData, AutohostSendCommandResponse, AutohostSendMessageFailResponse, AutohostSendMessageOkResponse, AutohostSendMessageRequest, AutohostSendMessageRequestData, AutohostSendMessageResponse, AutohostSpecPlayersFailResponse, AutohostSpecPlayersOkResponse, AutohostSpecPlayersRequest, AutohostSpecPlayersRequestData, AutohostSpecPlayersResponse, AutohostStartFailResponse, AutohostStartOkResponse, AutohostStartOkResponseData, AutohostStartRequest, AutohostStartRequestData, AutohostStartResponse, AutohostStatusEvent, AutohostStatusEventData, AutohostSubscribeUpdatesFailResponse, AutohostSubscribeUpdatesOkResponse, AutohostSubscribeUpdatesRequest, AutohostSubscribeUpdatesRequestData, AutohostSubscribeUpdatesResponse, AutohostUpdateEvent, AutohostUpdateEventData, BattleStartFailResponse, BattleStartOkResponse, BattleStartRequest, BattleStartRequestData, BattleStartResponse, Bot, CustomStartScriptProperties, EngineCrashUpdate, EngineMessageUpdate, EngineQuitUpdate, EngineWarningUpdate, FinishedUpdate, LuaMsgUpdate, MatchmakingCancelFailResponse, MatchmakingCancelOkResponse, MatchmakingCancelRequest, MatchmakingCancelResponse, MatchmakingCancelledEvent, MatchmakingCancelledEventData, MatchmakingFoundEvent, MatchmakingFoundEventData, MatchmakingFoundUpdateEvent, MatchmakingFoundUpdateEventData, MatchmakingListFailResponse, MatchmakingListOkResponse, MatchmakingListOkResponseData, MatchmakingListRequest, MatchmakingListResponse, MatchmakingLostEvent, MatchmakingQueueFailResponse, MatchmakingQueueOkResponse, MatchmakingQueueRequest, MatchmakingQueueRequestData, MatchmakingQueueResponse, MatchmakingQueueUpdateEvent, MatchmakingQueueUpdateEventData, MatchmakingReadyFailResponse, MatchmakingReadyOkResponse, MatchmakingReadyRequest, MatchmakingReadyResponse, Player, PlayerChatUpdate, PlayerDefeatedUpdate, PlayerJoinedUpdate, PlayerLeftUpdate, StartBox, StartPosType, StartUpdate, SystemDisconnectFailResponse, SystemDisconnectOkResponse, SystemDisconnectRequest, SystemDisconnectRequestData, SystemDisconnectResponse, SystemServerStatsFailResponse, SystemServerStatsOkResponse, SystemServerStatsOkResponseData, SystemServerStatsRequest, SystemServerStatsResponse, TachyonCommand, Team, UnixTime, UserId, UserUpdatedEvent, UserUpdatedEventData };
946
+ export type { AllyTeam, AutohostAddPlayerFailResponse, AutohostAddPlayerOkResponse, AutohostAddPlayerRequest, AutohostAddPlayerRequestData, AutohostAddPlayerResponse, AutohostInstallEngineFailResponse, AutohostInstallEngineOkResponse, AutohostInstallEngineRequest, AutohostInstallEngineRequestData, AutohostInstallEngineResponse, AutohostKickPlayerFailResponse, AutohostKickPlayerOkResponse, AutohostKickPlayerRequest, AutohostKickPlayerRequestData, AutohostKickPlayerResponse, AutohostKillFailResponse, AutohostKillOkResponse, AutohostKillRequest, AutohostKillRequestData, AutohostKillResponse, AutohostMutePlayerFailResponse, AutohostMutePlayerOkResponse, AutohostMutePlayerRequest, AutohostMutePlayerRequestData, AutohostMutePlayerResponse, AutohostSendCommandFailResponse, AutohostSendCommandOkResponse, AutohostSendCommandRequest, AutohostSendCommandRequestData, AutohostSendCommandResponse, AutohostSendMessageFailResponse, AutohostSendMessageOkResponse, AutohostSendMessageRequest, AutohostSendMessageRequestData, AutohostSendMessageResponse, AutohostSpecPlayersFailResponse, AutohostSpecPlayersOkResponse, AutohostSpecPlayersRequest, AutohostSpecPlayersRequestData, AutohostSpecPlayersResponse, AutohostStartFailResponse, AutohostStartOkResponse, AutohostStartOkResponseData, AutohostStartRequest, AutohostStartRequestData, AutohostStartResponse, AutohostStatusEvent, AutohostStatusEventData, AutohostSubscribeUpdatesFailResponse, AutohostSubscribeUpdatesOkResponse, AutohostSubscribeUpdatesRequest, AutohostSubscribeUpdatesRequestData, AutohostSubscribeUpdatesResponse, AutohostUpdateEvent, AutohostUpdateEventData, BattleStartFailResponse, BattleStartOkResponse, BattleStartRequest, BattleStartRequestData, BattleStartResponse, Bot, CustomStartScriptProperties, EngineCrashUpdate, EngineMessageUpdate, EngineQuitUpdate, EngineWarningUpdate, FinishedUpdate, HistoryMarker, LuaMsgUpdate, MatchmakingCancelFailResponse, MatchmakingCancelOkResponse, MatchmakingCancelRequest, MatchmakingCancelResponse, MatchmakingCancelledEvent, MatchmakingCancelledEventData, MatchmakingFoundEvent, MatchmakingFoundEventData, MatchmakingFoundUpdateEvent, MatchmakingFoundUpdateEventData, MatchmakingListFailResponse, MatchmakingListOkResponse, MatchmakingListOkResponseData, MatchmakingListRequest, MatchmakingListResponse, MatchmakingLostEvent, MatchmakingQueueFailResponse, MatchmakingQueueOkResponse, MatchmakingQueueRequest, MatchmakingQueueRequestData, MatchmakingQueueResponse, MatchmakingQueueUpdateEvent, MatchmakingQueueUpdateEventData, MatchmakingReadyFailResponse, MatchmakingReadyOkResponse, MatchmakingReadyRequest, MatchmakingReadyResponse, MessagingReceivedEvent, MessagingReceivedEventData, MessagingSendFailResponse, MessagingSendOkResponse, MessagingSendRequest, MessagingSendRequestData, MessagingSendResponse, MessagingSubscribeReceivedFailResponse, MessagingSubscribeReceivedOkResponse, MessagingSubscribeReceivedOkResponseData, MessagingSubscribeReceivedRequest, MessagingSubscribeReceivedRequestData, MessagingSubscribeReceivedResponse, Player, PlayerChatUpdate, PlayerDefeatedUpdate, PlayerJoinedUpdate, PlayerLeftUpdate, PrivateBattle, PrivateUser, StartBox, StartPosType, StartUpdate, SystemDisconnectFailResponse, SystemDisconnectOkResponse, SystemDisconnectRequest, SystemDisconnectRequestData, SystemDisconnectResponse, SystemServerStatsFailResponse, SystemServerStatsOkResponse, SystemServerStatsOkResponseData, SystemServerStatsRequest, SystemServerStatsResponse, TachyonCommand, Team, UnixTime, User, UserId, UserId1, UserId2, UserSelfEvent, UserSelfEventData, UserSubscribeUpdatesFailResponse, UserSubscribeUpdatesOkResponse, UserSubscribeUpdatesRequest, UserSubscribeUpdatesRequestData, UserSubscribeUpdatesResponse, UserUnsubscribeUpdatesFailResponse, UserUnsubscribeUpdatesOkResponse, UserUnsubscribeUpdatesRequest, UserUnsubscribeUpdatesRequestData, UserUnsubscribeUpdatesResponse, UserUpdatedEvent, UserUpdatedEventData };
package/dist/types.d.ts CHANGED
@@ -1,6 +1,7 @@
1
- type TachyonCommand = AutohostAddPlayerRequest | AutohostAddPlayerResponse | AutohostKickPlayerRequest | AutohostKickPlayerResponse | AutohostKillRequest | AutohostKillResponse | AutohostMutePlayerRequest | AutohostMutePlayerResponse | AutohostSendCommandRequest | AutohostSendCommandResponse | AutohostSendMessageRequest | AutohostSendMessageResponse | AutohostSpecPlayersRequest | AutohostSpecPlayersResponse | AutohostStartRequest | AutohostStartResponse | AutohostStatusEvent | AutohostSubscribeUpdatesRequest | AutohostSubscribeUpdatesResponse | AutohostUpdateEvent | BattleStartRequest | BattleStartResponse | MatchmakingCancelRequest | MatchmakingCancelResponse | MatchmakingCancelledEvent | MatchmakingFoundEvent | MatchmakingFoundUpdateEvent | MatchmakingListRequest | MatchmakingListResponse | MatchmakingLostEvent | MatchmakingQueueRequest | MatchmakingQueueResponse | MatchmakingQueueUpdateEvent | MatchmakingReadyRequest | MatchmakingReadyResponse | SystemDisconnectRequest | SystemDisconnectResponse | SystemServerStatsRequest | SystemServerStatsResponse | UserUpdatedEvent;
1
+ type TachyonCommand = AutohostAddPlayerRequest | AutohostAddPlayerResponse | AutohostInstallEngineRequest | AutohostInstallEngineResponse | AutohostKickPlayerRequest | AutohostKickPlayerResponse | AutohostKillRequest | AutohostKillResponse | AutohostMutePlayerRequest | AutohostMutePlayerResponse | AutohostSendCommandRequest | AutohostSendCommandResponse | AutohostSendMessageRequest | AutohostSendMessageResponse | AutohostSpecPlayersRequest | AutohostSpecPlayersResponse | AutohostStartRequest | AutohostStartResponse | AutohostStatusEvent | AutohostSubscribeUpdatesRequest | AutohostSubscribeUpdatesResponse | AutohostUpdateEvent | BattleStartRequest | BattleStartResponse | MatchmakingCancelRequest | MatchmakingCancelResponse | MatchmakingCancelledEvent | MatchmakingFoundEvent | MatchmakingFoundUpdateEvent | MatchmakingListRequest | MatchmakingListResponse | MatchmakingLostEvent | MatchmakingQueueRequest | MatchmakingQueueResponse | MatchmakingQueueUpdateEvent | MatchmakingReadyRequest | MatchmakingReadyResponse | MessagingReceivedEvent | MessagingSendRequest | MessagingSendResponse | MessagingSubscribeReceivedRequest | MessagingSubscribeReceivedResponse | SystemDisconnectRequest | SystemDisconnectResponse | SystemServerStatsRequest | SystemServerStatsResponse | UserSelfEvent | UserSubscribeUpdatesRequest | UserSubscribeUpdatesResponse | UserUnsubscribeUpdatesRequest | UserUnsubscribeUpdatesResponse | UserUpdatedEvent;
2
2
  type UserId = string;
3
3
  type AutohostAddPlayerResponse = AutohostAddPlayerOkResponse | AutohostAddPlayerFailResponse;
4
+ type AutohostInstallEngineResponse = AutohostInstallEngineOkResponse | AutohostInstallEngineFailResponse;
4
5
  type AutohostKickPlayerResponse = AutohostKickPlayerOkResponse | AutohostKickPlayerFailResponse;
5
6
  type AutohostKillResponse = AutohostKillOkResponse | AutohostKillFailResponse;
6
7
  type AutohostMutePlayerResponse = AutohostMutePlayerOkResponse | AutohostMutePlayerFailResponse;
@@ -31,8 +32,26 @@ type MatchmakingCancelResponse = MatchmakingCancelOkResponse | MatchmakingCancel
31
32
  type MatchmakingListResponse = MatchmakingListOkResponse | MatchmakingListFailResponse;
32
33
  type MatchmakingQueueResponse = MatchmakingQueueOkResponse | MatchmakingQueueFailResponse;
33
34
  type MatchmakingReadyResponse = MatchmakingReadyOkResponse | MatchmakingReadyFailResponse;
35
+ /**
36
+ * an opaque value to allow history retrieval
37
+ */
38
+ type HistoryMarker = string;
39
+ type MessagingSendResponse = MessagingSendOkResponse | MessagingSendFailResponse;
40
+ type MessagingSubscribeReceivedResponse = MessagingSubscribeReceivedOkResponse | MessagingSubscribeReceivedFailResponse;
34
41
  type SystemDisconnectResponse = SystemDisconnectOkResponse | SystemDisconnectFailResponse;
35
42
  type SystemServerStatsResponse = SystemServerStatsOkResponse | SystemServerStatsFailResponse;
43
+ type PrivateUser = User & {
44
+ partyId: string | null;
45
+ friendIds: string[];
46
+ outgoingFriendRequestIds: string[];
47
+ incomingFriendRequestIds: string[];
48
+ ignoreIds: string[];
49
+ currentBattle?: PrivateBattle;
50
+ };
51
+ type UserId1 = string;
52
+ type UserSubscribeUpdatesResponse = UserSubscribeUpdatesOkResponse | UserSubscribeUpdatesFailResponse;
53
+ type UserId2 = string;
54
+ type UserUnsubscribeUpdatesResponse = UserUnsubscribeUpdatesOkResponse | UserUnsubscribeUpdatesFailResponse;
36
55
  interface AutohostAddPlayerRequest {
37
56
  type: "request";
38
57
  messageId: string;
@@ -59,6 +78,32 @@ interface AutohostAddPlayerFailResponse {
59
78
  reason: "internal_error" | "unauthorized" | "invalid_request" | "command_unimplemented";
60
79
  details?: string;
61
80
  }
81
+ interface AutohostInstallEngineRequest {
82
+ type: "request";
83
+ messageId: string;
84
+ commandId: "autohost/installEngine";
85
+ data: AutohostInstallEngineRequestData;
86
+ }
87
+ interface AutohostInstallEngineRequestData {
88
+ /**
89
+ * Version of the engine to install
90
+ */
91
+ version: string;
92
+ }
93
+ interface AutohostInstallEngineOkResponse {
94
+ type: "response";
95
+ messageId: string;
96
+ commandId: "autohost/installEngine";
97
+ status: "success";
98
+ }
99
+ interface AutohostInstallEngineFailResponse {
100
+ type: "response";
101
+ messageId: string;
102
+ commandId: "autohost/installEngine";
103
+ status: "failed";
104
+ reason: "internal_error" | "unauthorized" | "invalid_request" | "command_unimplemented";
105
+ details?: string;
106
+ }
62
107
  interface AutohostKickPlayerRequest {
63
108
  type: "request";
64
109
  messageId: string;
@@ -359,8 +404,15 @@ interface AutohostStatusEvent {
359
404
  data: AutohostStatusEventData;
360
405
  }
361
406
  interface AutohostStatusEventData {
407
+ /**
408
+ * The maxBattles might be reported lower (e.g. 0) then currentBattles. Example: autohost is shutting down and doesn't want to accept any new battles.
409
+ */
362
410
  maxBattles: number;
363
411
  currentBattles: number;
412
+ /**
413
+ * List of available engine versions on autohost
414
+ */
415
+ availableEngines: string[];
364
416
  }
365
417
  interface AutohostSubscribeUpdatesRequest {
366
418
  type: "request";
@@ -481,11 +533,23 @@ interface BattleStartRequest {
481
533
  commandId: "battle/start";
482
534
  data: BattleStartRequestData;
483
535
  }
536
+ /**
537
+ * Battle informations including secrets to pass to spring for joining the game server. Don't expose secrets to other players.
538
+ */
484
539
  interface BattleStartRequestData {
485
540
  username: string;
486
541
  password: string;
487
542
  ip: string;
488
543
  port: number;
544
+ engine: {
545
+ version: string;
546
+ };
547
+ game: {
548
+ springName: string;
549
+ };
550
+ map: {
551
+ springName: string;
552
+ };
489
553
  }
490
554
  interface BattleStartOkResponse {
491
555
  type: "response";
@@ -567,6 +631,15 @@ interface MatchmakingListOkResponseData {
567
631
  numOfTeams: number;
568
632
  teamSize: number;
569
633
  ranked: boolean;
634
+ engines: {
635
+ version: string;
636
+ }[];
637
+ games: {
638
+ springName: string;
639
+ }[];
640
+ maps: {
641
+ springName: string;
642
+ }[];
570
643
  }[];
571
644
  }
572
645
  interface MatchmakingListFailResponse {
@@ -636,6 +709,88 @@ interface MatchmakingReadyFailResponse {
636
709
  reason: "no_match" | "internal_error" | "unauthorized" | "invalid_request" | "command_unimplemented";
637
710
  details?: string;
638
711
  }
712
+ interface MessagingReceivedEvent {
713
+ type: "event";
714
+ messageId: string;
715
+ commandId: "messaging/received";
716
+ data: MessagingReceivedEventData;
717
+ }
718
+ interface MessagingReceivedEventData {
719
+ message: string;
720
+ source: {
721
+ type: "player";
722
+ userId: UserId;
723
+ };
724
+ /**
725
+ * Unix timestamp in microseconds
726
+ */
727
+ timestamp: number;
728
+ marker: HistoryMarker;
729
+ }
730
+ interface MessagingSendRequest {
731
+ type: "request";
732
+ messageId: string;
733
+ commandId: "messaging/send";
734
+ data: MessagingSendRequestData;
735
+ }
736
+ interface MessagingSendRequestData {
737
+ target: {
738
+ type: "player";
739
+ userId: UserId;
740
+ };
741
+ message: string;
742
+ }
743
+ interface MessagingSendOkResponse {
744
+ type: "response";
745
+ messageId: string;
746
+ commandId: "messaging/send";
747
+ status: "success";
748
+ }
749
+ interface MessagingSendFailResponse {
750
+ type: "response";
751
+ messageId: string;
752
+ commandId: "messaging/send";
753
+ status: "failed";
754
+ reason: "message_too_long" | "invalid_target" | "internal_error" | "unauthorized" | "invalid_request" | "command_unimplemented";
755
+ details?: string;
756
+ }
757
+ interface MessagingSubscribeReceivedRequest {
758
+ type: "request";
759
+ messageId: string;
760
+ commandId: "messaging/subscribeReceived";
761
+ data: MessagingSubscribeReceivedRequestData;
762
+ }
763
+ interface MessagingSubscribeReceivedRequestData {
764
+ since?: {
765
+ type: "from_start";
766
+ } | {
767
+ type: "latest";
768
+ } | {
769
+ type: "marker";
770
+ value: HistoryMarker;
771
+ };
772
+ }
773
+ interface MessagingSubscribeReceivedOkResponse {
774
+ type: "response";
775
+ messageId: string;
776
+ commandId: "messaging/subscribeReceived";
777
+ status: "success";
778
+ data: MessagingSubscribeReceivedOkResponseData;
779
+ }
780
+ interface MessagingSubscribeReceivedOkResponseData {
781
+ /**
782
+ * set to true when the marker sent doesn't match any message stored by the server.
783
+ */
784
+ hasMissedMessages: boolean;
785
+ }
786
+ interface MessagingSubscribeReceivedFailResponse {
787
+ type: "response";
788
+ messageId: string;
789
+ commandId: "messaging/subscribeReceived";
790
+ status: "failed";
791
+ reason: "internal_error" | "unauthorized" | "invalid_request" | "command_unimplemented";
792
+ details?: string;
793
+ }
639
794
  interface SystemDisconnectRequest {
640
795
  type: "request";
641
796
  messageId: string;
@@ -682,6 +837,95 @@ interface SystemServerStatsFailResponse {
682
837
  reason: "internal_error" | "unauthorized" | "invalid_request" | "command_unimplemented";
683
838
  details?: string;
684
839
  }
840
+ interface UserSelfEvent {
841
+ type: "event";
842
+ messageId: string;
843
+ commandId: "user/self";
844
+ data: UserSelfEventData;
845
+ }
846
+ interface UserSelfEventData {
847
+ user: PrivateUser;
848
+ }
849
+ interface User {
850
+ userId: UserId;
851
+ username: string;
852
+ displayName: string;
853
+ clanId: string | null;
854
+ countryCode?: string;
855
+ status: "offline" | "menu" | "playing" | "lobby";
856
+ }
857
+ /**
858
+ * Battle informations including secrets to pass to spring for joining the game server. Don't expose secrets to other players.
859
+ */
860
+ interface PrivateBattle {
861
+ username: string;
862
+ password: string;
863
+ ip: string;
864
+ port: number;
865
+ engine: {
866
+ version: string;
867
+ };
868
+ game: {
869
+ springName: string;
870
+ };
871
+ map: {
872
+ springName: string;
873
+ };
874
+ }
875
+ interface UserSubscribeUpdatesRequest {
876
+ type: "request";
877
+ messageId: string;
878
+ commandId: "user/subscribeUpdates";
879
+ data: UserSubscribeUpdatesRequestData;
880
+ }
881
+ interface UserSubscribeUpdatesRequestData {
882
+ /**
883
+ * @minItems 1
884
+ * @maxItems 100
885
+ */
886
+ userIds: [UserId1, ...UserId1[]];
887
+ }
888
+ interface UserSubscribeUpdatesOkResponse {
889
+ type: "response";
890
+ messageId: string;
891
+ commandId: "user/subscribeUpdates";
892
+ status: "success";
893
+ }
894
+ interface UserSubscribeUpdatesFailResponse {
895
+ type: "response";
896
+ messageId: string;
897
+ commandId: "user/subscribeUpdates";
898
+ status: "failed";
899
+ reason: "subscription_limit_reached" | "internal_error" | "unauthorized" | "invalid_request" | "command_unimplemented";
900
+ details?: string;
901
+ }
902
+ interface UserUnsubscribeUpdatesRequest {
903
+ type: "request";
904
+ messageId: string;
905
+ commandId: "user/unsubscribeUpdates";
906
+ data: UserUnsubscribeUpdatesRequestData;
907
+ }
908
+ interface UserUnsubscribeUpdatesRequestData {
909
+ /**
910
+ * @minItems 1
911
+ * @maxItems 100
912
+ */
913
+ userIds: [UserId2, ...UserId2[]];
914
+ }
915
+ interface UserUnsubscribeUpdatesOkResponse {
916
+ type: "response";
917
+ messageId: string;
918
+ commandId: "user/unsubscribeUpdates";
919
+ status: "success";
920
+ }
921
+ interface UserUnsubscribeUpdatesFailResponse {
922
+ type: "response";
923
+ messageId: string;
924
+ commandId: "user/unsubscribeUpdates";
925
+ status: "failed";
926
+ reason: "internal_error" | "unauthorized" | "invalid_request" | "command_unimplemented";
927
+ details?: string;
928
+ }
685
929
  interface UserUpdatedEvent {
686
930
  type: "event";
687
931
  messageId: string;
@@ -689,21 +933,14 @@ interface UserUpdatedEvent {
689
933
  data: UserUpdatedEventData;
690
934
  }
691
935
  interface UserUpdatedEventData {
692
- users: ({
936
+ users: {
693
937
  userId?: string;
694
938
  username?: string;
695
939
  displayName?: string;
696
940
  clanId?: string | null;
697
- partyId?: string | null;
698
- scopes?: string[];
699
941
  countryCode?: string;
700
942
  status?: "offline" | "menu" | "playing" | "lobby";
701
- } & {
702
- friendIds?: string[];
703
- outgoingFriendRequestIds?: string[];
704
- incomingFriendRequestIds?: string[];
705
- ignoreIds?: string[];
706
- })[];
943
+ }[];
707
944
  }
708
945
 
709
- export type { AllyTeam, AutohostAddPlayerFailResponse, AutohostAddPlayerOkResponse, AutohostAddPlayerRequest, AutohostAddPlayerRequestData, AutohostAddPlayerResponse, AutohostKickPlayerFailResponse, AutohostKickPlayerOkResponse, AutohostKickPlayerRequest, AutohostKickPlayerRequestData, AutohostKickPlayerResponse, AutohostKillFailResponse, AutohostKillOkResponse, AutohostKillRequest, AutohostKillRequestData, AutohostKillResponse, AutohostMutePlayerFailResponse, AutohostMutePlayerOkResponse, AutohostMutePlayerRequest, AutohostMutePlayerRequestData, AutohostMutePlayerResponse, AutohostSendCommandFailResponse, AutohostSendCommandOkResponse, AutohostSendCommandRequest, AutohostSendCommandRequestData, AutohostSendCommandResponse, AutohostSendMessageFailResponse, AutohostSendMessageOkResponse, AutohostSendMessageRequest, AutohostSendMessageRequestData, AutohostSendMessageResponse, AutohostSpecPlayersFailResponse, AutohostSpecPlayersOkResponse, AutohostSpecPlayersRequest, AutohostSpecPlayersRequestData, AutohostSpecPlayersResponse, AutohostStartFailResponse, AutohostStartOkResponse, AutohostStartOkResponseData, AutohostStartRequest, AutohostStartRequestData, AutohostStartResponse, AutohostStatusEvent, AutohostStatusEventData, AutohostSubscribeUpdatesFailResponse, AutohostSubscribeUpdatesOkResponse, AutohostSubscribeUpdatesRequest, AutohostSubscribeUpdatesRequestData, AutohostSubscribeUpdatesResponse, AutohostUpdateEvent, AutohostUpdateEventData, BattleStartFailResponse, BattleStartOkResponse, BattleStartRequest, BattleStartRequestData, BattleStartResponse, Bot, CustomStartScriptProperties, EngineCrashUpdate, EngineMessageUpdate, EngineQuitUpdate, EngineWarningUpdate, FinishedUpdate, LuaMsgUpdate, MatchmakingCancelFailResponse, MatchmakingCancelOkResponse, MatchmakingCancelRequest, MatchmakingCancelResponse, MatchmakingCancelledEvent, MatchmakingCancelledEventData, MatchmakingFoundEvent, MatchmakingFoundEventData, MatchmakingFoundUpdateEvent, MatchmakingFoundUpdateEventData, MatchmakingListFailResponse, MatchmakingListOkResponse, MatchmakingListOkResponseData, MatchmakingListRequest, MatchmakingListResponse, MatchmakingLostEvent, MatchmakingQueueFailResponse, MatchmakingQueueOkResponse, MatchmakingQueueRequest, MatchmakingQueueRequestData, MatchmakingQueueResponse, MatchmakingQueueUpdateEvent, MatchmakingQueueUpdateEventData, MatchmakingReadyFailResponse, MatchmakingReadyOkResponse, MatchmakingReadyRequest, MatchmakingReadyResponse, Player, PlayerChatUpdate, PlayerDefeatedUpdate, PlayerJoinedUpdate, PlayerLeftUpdate, StartBox, StartPosType, StartUpdate, SystemDisconnectFailResponse, SystemDisconnectOkResponse, SystemDisconnectRequest, SystemDisconnectRequestData, SystemDisconnectResponse, SystemServerStatsFailResponse, SystemServerStatsOkResponse, SystemServerStatsOkResponseData, SystemServerStatsRequest, SystemServerStatsResponse, TachyonCommand, Team, UnixTime, UserId, UserUpdatedEvent, UserUpdatedEventData };
946
+ export type { AllyTeam, AutohostAddPlayerFailResponse, AutohostAddPlayerOkResponse, AutohostAddPlayerRequest, AutohostAddPlayerRequestData, AutohostAddPlayerResponse, AutohostInstallEngineFailResponse, AutohostInstallEngineOkResponse, AutohostInstallEngineRequest, AutohostInstallEngineRequestData, AutohostInstallEngineResponse, AutohostKickPlayerFailResponse, AutohostKickPlayerOkResponse, AutohostKickPlayerRequest, AutohostKickPlayerRequestData, AutohostKickPlayerResponse, AutohostKillFailResponse, AutohostKillOkResponse, AutohostKillRequest, AutohostKillRequestData, AutohostKillResponse, AutohostMutePlayerFailResponse, AutohostMutePlayerOkResponse, AutohostMutePlayerRequest, AutohostMutePlayerRequestData, AutohostMutePlayerResponse, AutohostSendCommandFailResponse, AutohostSendCommandOkResponse, AutohostSendCommandRequest, AutohostSendCommandRequestData, AutohostSendCommandResponse, AutohostSendMessageFailResponse, AutohostSendMessageOkResponse, AutohostSendMessageRequest, AutohostSendMessageRequestData, AutohostSendMessageResponse, AutohostSpecPlayersFailResponse, AutohostSpecPlayersOkResponse, AutohostSpecPlayersRequest, AutohostSpecPlayersRequestData, AutohostSpecPlayersResponse, AutohostStartFailResponse, AutohostStartOkResponse, AutohostStartOkResponseData, AutohostStartRequest, AutohostStartRequestData, AutohostStartResponse, AutohostStatusEvent, AutohostStatusEventData, AutohostSubscribeUpdatesFailResponse, AutohostSubscribeUpdatesOkResponse, AutohostSubscribeUpdatesRequest, AutohostSubscribeUpdatesRequestData, AutohostSubscribeUpdatesResponse, AutohostUpdateEvent, AutohostUpdateEventData, BattleStartFailResponse, BattleStartOkResponse, BattleStartRequest, BattleStartRequestData, BattleStartResponse, Bot, CustomStartScriptProperties, EngineCrashUpdate, EngineMessageUpdate, EngineQuitUpdate, EngineWarningUpdate, FinishedUpdate, HistoryMarker, LuaMsgUpdate, MatchmakingCancelFailResponse, MatchmakingCancelOkResponse, MatchmakingCancelRequest, MatchmakingCancelResponse, MatchmakingCancelledEvent, MatchmakingCancelledEventData, MatchmakingFoundEvent, MatchmakingFoundEventData, MatchmakingFoundUpdateEvent, MatchmakingFoundUpdateEventData, MatchmakingListFailResponse, MatchmakingListOkResponse, MatchmakingListOkResponseData, MatchmakingListRequest, MatchmakingListResponse, MatchmakingLostEvent, MatchmakingQueueFailResponse, MatchmakingQueueOkResponse, MatchmakingQueueRequest, MatchmakingQueueRequestData, MatchmakingQueueResponse, MatchmakingQueueUpdateEvent, MatchmakingQueueUpdateEventData, MatchmakingReadyFailResponse, MatchmakingReadyOkResponse, MatchmakingReadyRequest, MatchmakingReadyResponse, MessagingReceivedEvent, MessagingReceivedEventData, MessagingSendFailResponse, MessagingSendOkResponse, MessagingSendRequest, MessagingSendRequestData, MessagingSendResponse, MessagingSubscribeReceivedFailResponse, MessagingSubscribeReceivedOkResponse, MessagingSubscribeReceivedOkResponseData, MessagingSubscribeReceivedRequest, MessagingSubscribeReceivedRequestData, MessagingSubscribeReceivedResponse, Player, PlayerChatUpdate, PlayerDefeatedUpdate, PlayerJoinedUpdate, PlayerLeftUpdate, PrivateBattle, PrivateUser, StartBox, StartPosType, StartUpdate, SystemDisconnectFailResponse, SystemDisconnectOkResponse, SystemDisconnectRequest, SystemDisconnectRequestData, SystemDisconnectResponse, SystemServerStatsFailResponse, SystemServerStatsOkResponse, SystemServerStatsOkResponseData, SystemServerStatsRequest, SystemServerStatsResponse, TachyonCommand, Team, UnixTime, User, UserId, UserId1, UserId2, UserSelfEvent, UserSelfEventData, UserSubscribeUpdatesFailResponse, UserSubscribeUpdatesOkResponse, UserSubscribeUpdatesRequest, UserSubscribeUpdatesRequestData, UserSubscribeUpdatesResponse, UserUnsubscribeUpdatesFailResponse, UserUnsubscribeUpdatesOkResponse, UserUnsubscribeUpdatesRequest, UserUnsubscribeUpdatesRequestData, UserUnsubscribeUpdatesResponse, UserUpdatedEvent, UserUpdatedEventData };