@dcl/protocol 1.0.0-16571544774.commit-3f0ec22 → 1.0.0-16572701298.commit-25e60c0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dcl/protocol",
3
- "version": "1.0.0-16571544774.commit-3f0ec22",
3
+ "version": "1.0.0-16572701298.commit-25e60c0",
4
4
  "description": "",
5
5
  "repository": "decentraland/protocol.git",
6
6
  "homepage": "https://github.com/decentraland/protocol#readme",
@@ -13,7 +13,7 @@
13
13
  "test": "./scripts/check-proto-compabitility.sh"
14
14
  },
15
15
  "devDependencies": {
16
- "@protobuf-ts/protoc": "^2.8.1",
16
+ "@protobuf-ts/protoc": "^2.11.0",
17
17
  "proto-compatibility-tool": "^1.1.2-20220925163655.commit-25bd040",
18
18
  "typescript": "^5.0.4"
19
19
  },
@@ -30,5 +30,5 @@
30
30
  "out-js",
31
31
  "public"
32
32
  ],
33
- "commit": "3f0ec229e0aee83fbbc9d6dc4636fb981ce5b066"
33
+ "commit": "25e60c0fbd7c2197ac4a718ba8576a6dbf3a35d0"
34
34
  }
@@ -55,10 +55,11 @@ message Movement {
55
55
  bool is_long_jump = 12;
56
56
  bool is_long_fall = 13;
57
57
  bool is_falling = 14;
58
-
59
58
  bool is_stunned = 15;
60
-
61
59
  float rotation_y = 16;
60
+ // interpolation
61
+ bool is_instant = 17;
62
+ bool is_emoting = 18;
62
63
  }
63
64
 
64
65
  message MovementCompressed {
@@ -67,7 +68,7 @@ message MovementCompressed {
67
68
  }
68
69
 
69
70
  message PlayerEmote {
70
- uint32 incremental_id = 1;
71
+ float timestamp = 1;
71
72
  string urn = 2;
72
73
  }
73
74
 
@@ -101,6 +102,10 @@ message ProfileResponse {
101
102
  message Chat {
102
103
  string message = 1;
103
104
  double timestamp = 2;
105
+
106
+ // Extension: optional forwarded_from to identify the original sender when
107
+ // messages are forwarded through an SFU
108
+ optional string forwarded_from = 3;
104
109
  }
105
110
 
106
111
  message Scene {
@@ -0,0 +1,28 @@
1
+ syntax = "proto3";
2
+ package decentraland.sdk.components;
3
+ import "decentraland/sdk/components/common/id.proto";
4
+ import "decentraland/common/colors.proto";
5
+ import "decentraland/common/texture.proto";
6
+ option (common.ecs_component_id) = 1079;
7
+
8
+ message PBLightSource {
9
+ optional bool active = 1; // default = true, whether the lightSource is active or not.
10
+ optional decentraland.common.Color3 color = 2; // default = Color.white, the tint of the light, in RGB format where each component is a floating point value with a range from 0 to 1.
11
+ optional float intensity = 3; // default = 250, ranges from 1 (dim) to 100,000 (very bright), expressed in Lumens for Point and Spot.
12
+ optional float range = 4; // default = 0, how far the light travels, expressed in meters. If left at 0 will be computed automatically
13
+ optional bool shadow = 5; // default = false, whether the light casts shadows or not.
14
+ optional decentraland.common.TextureUnion shadow_mask_texture = 6; // Texture mask through which shadows are cast to simulate caustics, soft shadows, and light shapes such as light entering from a window.
15
+
16
+ oneof type {
17
+ Point point = 7;
18
+ Spot spot = 8;
19
+ }
20
+
21
+ message Point {
22
+ }
23
+
24
+ message Spot {
25
+ optional float inner_angle = 9; // default = 21.8. Inner angle can't be higher than outer angle, otherwise will default to same value. Min value is 0. Max value is 179.
26
+ optional float outer_angle = 10; // default = 30. Outer angle can't be lower than inner angle, otherwise will inner angle will be set to same value. Max value is 179.
27
+ }
28
+ }
@@ -10,7 +10,9 @@ option (common.ecs_component_id) = 1076;
10
10
  // an 'instant' transition (like using speed/time = 0)
11
11
  // * The lookAtEntity defines to which entity the Camera has to look at constantly (independent from
12
12
  // the holding entity transform).
13
+ // * The fov defines the Field of View of the virtual camera
13
14
  message PBVirtualCamera {
14
15
  optional common.CameraTransition default_transition = 1;
15
16
  optional uint32 look_at_entity = 2;
17
+ optional float fov = 3; // default: 60
16
18
  }
@@ -0,0 +1,30 @@
1
+ syntax = "proto3";
2
+ package decentraland.social_service;
3
+
4
+ message InvalidFriendshipAction {
5
+ optional string message = 1;
6
+ }
7
+
8
+ message InternalServerError {
9
+ optional string message = 1;
10
+ }
11
+
12
+ message InvalidRequest {
13
+ optional string message = 1;
14
+ }
15
+
16
+ message ProfileNotFound {
17
+ optional string message = 1;
18
+ }
19
+
20
+ message ConflictingError {
21
+ optional string message = 1;
22
+ }
23
+
24
+ message ForbiddenError {
25
+ optional string message = 1;
26
+ }
27
+
28
+ message NotFoundError {
29
+ optional string message = 1;
30
+ }
@@ -2,23 +2,36 @@ syntax = "proto3";
2
2
  package decentraland.social_service.v2;
3
3
 
4
4
  import "google/protobuf/empty.proto";
5
-
6
- // Errors
7
- message InvalidFriendshipAction {}
8
- message InternalServerError {}
5
+ import "decentraland/social_service/errors.proto";
9
6
 
10
7
  // Types
11
8
  message User { string address = 1; }
12
9
 
10
+ message FriendProfile {
11
+ string address = 1;
12
+ string name = 2;
13
+ bool has_claimed_name = 3;
14
+ string profile_picture_url = 4;
15
+ }
16
+
17
+ message BlockedUserProfile {
18
+ string address = 1;
19
+ string name = 2;
20
+ bool has_claimed_name = 3;
21
+ string profile_picture_url = 4;
22
+ optional int64 blocked_at = 5;
23
+ }
24
+
13
25
  message Pagination {
14
26
  int32 limit = 1;
15
27
  int32 offset = 2;
16
28
  }
17
29
 
18
30
  message FriendshipRequestResponse {
19
- User user = 1;
31
+ FriendProfile friend = 1;
20
32
  int64 created_at = 2;
21
33
  optional string message = 3;
34
+ string id = 4;
22
35
  }
23
36
 
24
37
  message FriendshipRequests {
@@ -33,7 +46,6 @@ enum ConnectivityStatus {
33
46
 
34
47
  message GetFriendsPayload {
35
48
  optional Pagination pagination = 1;
36
- optional ConnectivityStatus status = 2;
37
49
  }
38
50
 
39
51
  message GetFriendshipRequestsPayload {
@@ -69,8 +81,8 @@ message PaginatedResponse {
69
81
  int32 page = 2;
70
82
  }
71
83
 
72
- message PaginatedUsersResponse {
73
- repeated User users = 1;
84
+ message PaginatedFriendsProfilesResponse {
85
+ repeated FriendProfile friends = 1;
74
86
  PaginatedResponse pagination_data = 2;
75
87
  }
76
88
 
@@ -86,29 +98,45 @@ message UpsertFriendshipResponse {
86
98
  message Accepted {
87
99
  string id = 1;
88
100
  int64 created_at = 2;
101
+ FriendProfile friend = 3;
102
+ optional string message = 4;
89
103
  }
90
104
  oneof response {
91
105
  Accepted accepted = 1;
92
106
  InvalidFriendshipAction invalid_friendship_action = 2;
93
107
  InternalServerError internal_server_error = 3;
108
+ InvalidRequest invalid_request = 4;
94
109
  }
95
110
  }
96
111
 
97
112
  message FriendshipUpdate {
113
+ message RequestResponse {
114
+ FriendProfile friend = 1;
115
+ int64 created_at = 2;
116
+ optional string message = 3;
117
+ string id = 4;
118
+ }
98
119
  message AcceptResponse { User user = 1; }
99
120
  message RejectResponse { User user = 1; }
100
121
  message DeleteResponse { User user = 1; }
101
122
  message CancelResponse { User user = 1; }
123
+ message BlockResponse { User user = 1; }
102
124
 
103
125
  oneof update {
104
- FriendshipRequestResponse request = 1;
126
+ RequestResponse request = 1;
105
127
  AcceptResponse accept = 2;
106
128
  RejectResponse reject = 3;
107
129
  DeleteResponse delete = 4;
108
130
  CancelResponse cancel = 5;
131
+ BlockResponse block = 6;
109
132
  }
110
133
  }
111
134
 
135
+ message FriendConnectivityUpdate {
136
+ FriendProfile friend = 1;
137
+ ConnectivityStatus status = 2;
138
+ }
139
+
112
140
  message GetFriendshipStatusPayload {
113
141
  User user = 1;
114
142
  }
@@ -121,6 +149,8 @@ enum FriendshipStatus {
121
149
  REJECTED = 4;
122
150
  DELETED = 5;
123
151
  BLOCKED = 6;
152
+ NONE = 7;
153
+ BLOCKED_BY = 8;
124
154
  }
125
155
 
126
156
  message GetFriendshipStatusResponse {
@@ -131,15 +161,396 @@ message GetFriendshipStatusResponse {
131
161
  oneof response {
132
162
  Ok accepted = 1;
133
163
  InternalServerError internal_server_error = 2;
164
+ InvalidRequest invalid_request = 3;
165
+ }
166
+ }
167
+
168
+ message BlockUserPayload {
169
+ User user = 1;
170
+ }
171
+
172
+ message BlockUserResponse {
173
+ message Ok {
174
+ BlockedUserProfile profile = 1;
175
+ }
176
+
177
+ oneof response {
178
+ Ok ok = 1;
179
+ InternalServerError internal_server_error = 2;
180
+ InvalidRequest invalid_request = 3;
181
+ ProfileNotFound profile_not_found = 4;
182
+ }
183
+ }
184
+
185
+ message UnblockUserPayload {
186
+ User user = 1;
187
+ }
188
+
189
+ message UnblockUserResponse {
190
+ message Ok {
191
+ BlockedUserProfile profile = 1;
192
+ }
193
+
194
+ oneof response {
195
+ Ok ok = 1;
196
+ InternalServerError internal_server_error = 2;
197
+ InvalidRequest invalid_request = 3;
198
+ ProfileNotFound profile_not_found = 4;
199
+ }
200
+ }
201
+
202
+ enum PrivateMessagePrivacySetting {
203
+ ALL = 0;
204
+ ONLY_FRIENDS = 1;
205
+ }
206
+
207
+ enum BlockedUsersMessagesVisibilitySetting {
208
+ SHOW_MESSAGES = 0;
209
+ DO_NOT_SHOW_MESSAGES = 1;
210
+ }
211
+
212
+ message SocialSettings {
213
+ PrivateMessagePrivacySetting private_messages_privacy = 1;
214
+ BlockedUsersMessagesVisibilitySetting blocked_users_messages_visibility = 2;
215
+ }
216
+
217
+ message GetSocialSettingsResponse {
218
+ message Ok {
219
+ SocialSettings settings = 1;
220
+ }
221
+
222
+ oneof response {
223
+ Ok ok = 1;
224
+ InternalServerError internal_server_error = 2;
225
+ }
226
+ }
227
+
228
+ message UpsertSocialSettingsPayload {
229
+ optional PrivateMessagePrivacySetting private_messages_privacy = 1;
230
+ optional BlockedUsersMessagesVisibilitySetting blocked_users_messages_visibility = 2;
231
+ }
232
+
233
+ message UpsertSocialSettingsResponse {
234
+ oneof response {
235
+ SocialSettings ok = 1;
236
+ InternalServerError internal_server_error = 2;
237
+ InvalidRequest invalid_request = 3;
238
+ }
239
+ }
240
+
241
+ message GetPrivateMessagesSettingsPayload {
242
+ repeated User user = 1;
243
+ }
244
+
245
+ message GetPrivateMessagesSettingsResponse {
246
+ message PrivateMessagesSettings {
247
+ User user = 1;
248
+ PrivateMessagePrivacySetting private_messages_privacy = 2;
249
+ bool is_friend = 3;
250
+ }
251
+
252
+ message Ok {
253
+ repeated PrivateMessagesSettings settings = 1;
254
+ }
255
+
256
+ oneof response {
257
+ Ok ok = 1;
258
+ InternalServerError internal_server_error = 2;
259
+ InvalidRequest invalid_request = 3;
260
+ ProfileNotFound profile_not_found = 4;
261
+ }
262
+ }
263
+
264
+ message GetBlockedUsersPayload {
265
+ optional Pagination pagination = 1;
266
+ }
267
+
268
+ message GetBlockedUsersResponse {
269
+ repeated BlockedUserProfile profiles = 1;
270
+ PaginatedResponse pagination_data = 2;
271
+ }
272
+
273
+ message GetBlockingStatusResponse {
274
+ repeated string blocked_users = 1;
275
+ repeated string blocked_by_users = 2;
276
+ }
277
+
278
+ message BlockUpdate {
279
+ string address = 1;
280
+ bool is_blocked = 2;
281
+ }
282
+
283
+ message CommunityMemberConnectivityUpdate {
284
+ string community_id = 1;
285
+ User member = 2;
286
+ ConnectivityStatus status = 3;
287
+ }
288
+
289
+ // Private voice chats
290
+
291
+ // Starting a private voice chat
292
+
293
+ message StartPrivateVoiceChatPayload {
294
+ User callee = 1;
295
+ }
296
+
297
+ message StartPrivateVoiceChatResponse {
298
+ message Ok {
299
+ string call_id = 1;
300
+ }
301
+
302
+ oneof response {
303
+ Ok ok = 1;
304
+ InternalServerError internal_server_error = 2;
305
+ InvalidRequest invalid_request = 3;
306
+ ConflictingError conflicting_error = 4;
307
+ ForbiddenError forbidden_error = 5;
308
+ }
309
+ }
310
+
311
+ // Accepting a private voice chat
312
+
313
+ message AcceptPrivateVoiceChatPayload {
314
+ string call_id = 1;
315
+ }
316
+
317
+ message AcceptPrivateVoiceChatResponse {
318
+ message Ok {
319
+ string call_id = 1;
320
+ PrivateVoiceChatCredentials credentials = 2;
321
+ }
322
+
323
+ oneof response {
324
+ Ok ok = 1;
325
+ InternalServerError internal_server_error = 2;
326
+ InvalidRequest invalid_request = 3;
327
+ NotFoundError not_found = 4;
328
+ ForbiddenError forbidden_error = 5;
329
+ }
330
+ }
331
+
332
+ // Rejecting a private voice chat
333
+
334
+ message RejectPrivateVoiceChatPayload {
335
+ string call_id = 1;
336
+ }
337
+
338
+ message RejectPrivateVoiceChatResponse {
339
+ message Ok {
340
+ string call_id = 1;
341
+ }
342
+
343
+ oneof response {
344
+ Ok ok = 1;
345
+ InternalServerError internal_server_error = 2;
346
+ InvalidRequest invalid_request = 3;
347
+ NotFoundError not_found = 4;
134
348
  }
135
349
  }
136
350
 
351
+ // Private voice chat updates
352
+
353
+ enum PrivateVoiceChatStatus {
354
+ VOICE_CHAT_REQUESTED = 0;
355
+ VOICE_CHAT_ACCEPTED = 1;
356
+ VOICE_CHAT_REJECTED = 2;
357
+ VOICE_CHAT_ENDED = 3;
358
+ VOICE_CHAT_EXPIRED = 4;
359
+ }
360
+
361
+ message PrivateVoiceChatCredentials {
362
+ string connection_url = 1;
363
+ }
364
+
365
+ message PrivateVoiceChatUpdate {
366
+ string call_id = 1;
367
+ PrivateVoiceChatStatus status = 2;
368
+ optional User caller = 3;
369
+ optional User callee = 4;
370
+ optional PrivateVoiceChatCredentials credentials = 5;
371
+ }
372
+
373
+ // Ending a private voice chat
374
+ // This is sent from the client to the server whenever the user wants to end the voice chat
375
+ // This could occur before the voice chat is accepted or after it is accepted
376
+
377
+ message EndPrivateVoiceChatPayload {
378
+ string call_id = 1;
379
+ }
380
+
381
+ message EndPrivateVoiceChatResponse {
382
+ message Ok {
383
+ string call_id = 1;
384
+ }
385
+
386
+ oneof response {
387
+ Ok ok = 1;
388
+ InternalServerError internal_server_error = 2;
389
+ NotFoundError not_found = 3;
390
+ }
391
+ }
392
+
393
+ // Get incoming private voice chat request
394
+
395
+ message GetIncomingPrivateVoiceChatRequestResponse {
396
+ message Ok {
397
+ User caller = 1;
398
+ string call_id = 2;
399
+ }
400
+
401
+ oneof response {
402
+ Ok ok = 1;
403
+ NotFoundError not_found = 2;
404
+ InternalServerError internal_server_error = 3;
405
+ }
406
+ }
407
+
408
+ // Community Voice Chat messages
409
+
410
+ // Community voice chat credentials - specific type for community chats
411
+ message CommunityVoiceChatCredentials {
412
+ string connection_url = 1;
413
+ }
414
+
415
+ // Starting a community voice chat
416
+ message StartCommunityVoiceChatPayload {
417
+ string community_id = 1;
418
+ }
419
+
420
+ message StartCommunityVoiceChatResponse {
421
+ message Ok {
422
+ CommunityVoiceChatCredentials credentials = 1; // Moderator gets credentials immediately
423
+ }
424
+
425
+ oneof response {
426
+ Ok ok = 1;
427
+ InvalidRequest invalid_request = 2;
428
+ ForbiddenError forbidden_error = 3;
429
+ ConflictingError conflicting_error = 4;
430
+ InternalServerError internal_server_error = 5;
431
+ }
432
+ }
433
+
434
+ // Joining a community voice chat
435
+ message JoinCommunityVoiceChatPayload {
436
+ string community_id = 1;
437
+ }
438
+
439
+ message JoinCommunityVoiceChatResponse {
440
+ message Ok {
441
+ string voice_chat_id = 1;
442
+ CommunityVoiceChatCredentials credentials = 2;
443
+ }
444
+
445
+ oneof response {
446
+ Ok ok = 1;
447
+ InvalidRequest invalid_request = 2;
448
+ ForbiddenError forbidden_error = 3;
449
+ NotFoundError not_found_error = 4;
450
+ ConflictingError conflicting_error = 5;
451
+ InternalServerError internal_server_error = 6;
452
+ }
453
+ }
454
+
455
+ // Request to speak in community voice chat
456
+ message RequestToSpeakInCommunityVoiceChatPayload {
457
+ string community_id = 1;
458
+ }
459
+
460
+ message RequestToSpeakInCommunityVoiceChatResponse {
461
+ message Ok {
462
+ string message = 1;
463
+ }
464
+
465
+ oneof response {
466
+ Ok ok = 1;
467
+ InvalidRequest invalid_request = 2;
468
+ ForbiddenError forbidden_error = 3;
469
+ NotFoundError not_found_error = 4;
470
+ InternalServerError internal_server_error = 5;
471
+ }
472
+ }
473
+
474
+ // Promote speaker in community voice chat
475
+ message PromoteSpeakerInCommunityVoiceChatPayload {
476
+ string community_id = 1;
477
+ string user_address = 2;
478
+ }
479
+
480
+ message PromoteSpeakerInCommunityVoiceChatResponse {
481
+ message Ok {
482
+ string message = 1;
483
+ }
484
+
485
+ oneof response {
486
+ Ok ok = 1;
487
+ InvalidRequest invalid_request = 2;
488
+ ForbiddenError forbidden_error = 3;
489
+ NotFoundError not_found_error = 4;
490
+ InternalServerError internal_server_error = 5;
491
+ }
492
+ }
493
+
494
+ // Demote speaker in community voice chat
495
+ message DemoteSpeakerInCommunityVoiceChatPayload {
496
+ string community_id = 1;
497
+ string user_address = 2;
498
+ }
499
+
500
+ message DemoteSpeakerInCommunityVoiceChatResponse {
501
+ message Ok {
502
+ string message = 1;
503
+ }
504
+
505
+ oneof response {
506
+ Ok ok = 1;
507
+ InvalidRequest invalid_request = 2;
508
+ ForbiddenError forbidden_error = 3;
509
+ NotFoundError not_found_error = 4;
510
+ InternalServerError internal_server_error = 5;
511
+ }
512
+ }
513
+
514
+ // Kick player from community voice chat
515
+ message KickPlayerFromCommunityVoiceChatPayload {
516
+ string community_id = 1;
517
+ string user_address = 2;
518
+ }
519
+
520
+ message KickPlayerFromCommunityVoiceChatResponse {
521
+ message Ok {
522
+ string message = 1;
523
+ }
524
+
525
+ oneof response {
526
+ Ok ok = 1;
527
+ InvalidRequest invalid_request = 2;
528
+ ForbiddenError forbidden_error = 3;
529
+ NotFoundError not_found_error = 4;
530
+ InternalServerError internal_server_error = 5;
531
+ }
532
+ }
533
+
534
+ enum CommunityVoiceChatStatus {
535
+ COMMUNITY_VOICE_CHAT_STARTED = 0;
536
+ COMMUNITY_VOICE_CHAT_ENDED = 1;
537
+ }
538
+
539
+ // Community voice chat updates/events - 'started' and 'ended' status
540
+ message CommunityVoiceChatUpdate {
541
+ string community_id = 1;
542
+ string voice_chat_id = 2;
543
+ int64 created_at = 3;
544
+ CommunityVoiceChatStatus status = 4; // 'started' or 'ended'
545
+ optional int64 ended_at = 5; // Only present when status is 'ended'
546
+ }
547
+
137
548
  service SocialService {
138
549
  // Get the list of friends for the authenticated user
139
- rpc GetFriends(GetFriendsPayload) returns (PaginatedUsersResponse) {}
550
+ rpc GetFriends(GetFriendsPayload) returns (PaginatedFriendsProfilesResponse) {}
140
551
 
141
552
  // Get the list of mutual friends between the authenticated user and the one in the parameter
142
- rpc GetMutualFriends(GetMutualFriendsPayload) returns (PaginatedUsersResponse) {}
553
+ rpc GetMutualFriends(GetMutualFriendsPayload) returns (PaginatedFriendsProfilesResponse) {}
143
554
 
144
555
  // Get the pending friendship requests for the authenticated user
145
556
  rpc GetPendingFriendshipRequests(GetFriendshipRequestsPayload) returns (PaginatedFriendshipRequestsResponse) {}
@@ -155,5 +566,72 @@ service SocialService {
155
566
  rpc SubscribeToFriendshipUpdates(google.protobuf.Empty)
156
567
  returns (stream FriendshipUpdate) {}
157
568
 
569
+ // Get the friendship status between the authenticated user and the one in the parameter
158
570
  rpc GetFriendshipStatus(GetFriendshipStatusPayload) returns (GetFriendshipStatusResponse) {}
571
+
572
+ // Subscribe to connectivity updates of friends: ONLINE, OFFLINE, AWAY
573
+ rpc SubscribeToFriendConnectivityUpdates(google.protobuf.Empty)
574
+ returns (stream FriendConnectivityUpdate) {}
575
+
576
+ rpc BlockUser(BlockUserPayload) returns (BlockUserResponse) {}
577
+
578
+ rpc UnblockUser(UnblockUserPayload) returns (UnblockUserResponse) {}
579
+
580
+ rpc GetBlockedUsers(GetBlockedUsersPayload) returns (GetBlockedUsersResponse) {}
581
+
582
+ rpc GetBlockingStatus(google.protobuf.Empty) returns (GetBlockingStatusResponse) {}
583
+
584
+ rpc SubscribeToBlockUpdates(google.protobuf.Empty) returns (stream BlockUpdate) {}
585
+
586
+ // Get all the social settings for the authenticated user
587
+ rpc GetSocialSettings(google.protobuf.Empty) returns (GetSocialSettingsResponse) {}
588
+
589
+ // Insert or update the social settings for the authenticated user
590
+ rpc UpsertSocialSettings(UpsertSocialSettingsPayload) returns (UpsertSocialSettingsResponse) {}
591
+
592
+ // Get the private messages privacy settings for the requested users
593
+ rpc GetPrivateMessagesSettings(GetPrivateMessagesSettingsPayload) returns (GetPrivateMessagesSettingsResponse) {}
594
+
595
+ // Subscribe to community member connectivity updates: ONLINE, OFFLINE
596
+ rpc SubscribeToCommunityMemberConnectivityUpdates(google.protobuf.Empty)
597
+ returns (stream CommunityMemberConnectivityUpdate) {}
598
+
599
+ // Start a private voice chat
600
+ rpc StartPrivateVoiceChat(StartPrivateVoiceChatPayload) returns (StartPrivateVoiceChatResponse) {}
601
+
602
+ // Accept a private voice chat
603
+ rpc AcceptPrivateVoiceChat(AcceptPrivateVoiceChatPayload) returns (AcceptPrivateVoiceChatResponse) {}
604
+
605
+ // Reject a private voice chat
606
+ rpc RejectPrivateVoiceChat(RejectPrivateVoiceChatPayload) returns (RejectPrivateVoiceChatResponse) {}
607
+
608
+ // End a private voice chat
609
+ rpc EndPrivateVoiceChat(EndPrivateVoiceChatPayload) returns (EndPrivateVoiceChatResponse) {}
610
+
611
+ // Get the incoming private voice chat request
612
+ rpc GetIncomingPrivateVoiceChatRequest(google.protobuf.Empty) returns (GetIncomingPrivateVoiceChatRequestResponse) {}
613
+
614
+ // Subscribe to private voice chat updates
615
+ rpc SubscribeToPrivateVoiceChatUpdates(google.protobuf.Empty) returns (stream PrivateVoiceChatUpdate) {}
616
+
617
+ // Start a community voice chat (moderator/owner only)
618
+ rpc StartCommunityVoiceChat(StartCommunityVoiceChatPayload) returns (StartCommunityVoiceChatResponse) {}
619
+
620
+ // Join a community voice chat
621
+ rpc JoinCommunityVoiceChat(JoinCommunityVoiceChatPayload) returns (JoinCommunityVoiceChatResponse) {}
622
+
623
+ // Request to speak in community voice chat
624
+ rpc RequestToSpeakInCommunityVoiceChat(RequestToSpeakInCommunityVoiceChatPayload) returns (RequestToSpeakInCommunityVoiceChatResponse) {}
625
+
626
+ // Promote speaker in community voice chat (moderator only)
627
+ rpc PromoteSpeakerInCommunityVoiceChat(PromoteSpeakerInCommunityVoiceChatPayload) returns (PromoteSpeakerInCommunityVoiceChatResponse) {}
628
+
629
+ // Demote speaker in community voice chat (moderator only)
630
+ rpc DemoteSpeakerInCommunityVoiceChat(DemoteSpeakerInCommunityVoiceChatPayload) returns (DemoteSpeakerInCommunityVoiceChatResponse) {}
631
+
632
+ // Kick player from community voice chat (moderator only)
633
+ rpc KickPlayerFromCommunityVoiceChat(KickPlayerFromCommunityVoiceChatPayload) returns (KickPlayerFromCommunityVoiceChatResponse) {}
634
+
635
+ // Subscribe to community voice chat updates (only 'started' events)
636
+ rpc SubscribeToCommunityVoiceChatUpdates(google.protobuf.Empty) returns (stream CommunityVoiceChatUpdate) {}
159
637
  }