< Summary

Class:DCL.Interface.WebInterface
Assembly:WebInterface
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/WebInterface/Interface.cs
Covered lines:275
Uncovered lines:182
Coverable lines:457
Total lines:1767
Line coverage:60.1% (275 of 457)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
WebInterface()0%110100%
SceneReady(...)0%110100%
ActivateRenderingACK()0%2100%
DeactivateRenderingACK()0%2100%
OnGlobalPointerEvent()0%2100%
StoreSceneStateEvent()0%110100%
OnTextInputChangeTextEventPayload()0%110100%
operator+(...)0%2100%
OnMetricsUpdate()0%110100%
TransformPayload()0%2100%
SystemInfoReportPayload()0%2100%
JumpInPayload()0%2100%
Property(...)0%2100%
HeadersPayload()0%110100%
AvatarOnClickPayload()0%2100%
StartDecentraland()0%2100%
CheckURLParam(...)0%2100%
GetURLParam(...)0%2100%
MessageFromEngine(...)0%5.395075%
ProcessQueuedMessages()0%330100%
GetGraphicCard()0%2100%
SendMessage(...)0%110100%
SendMessage[T](...)0%110100%
SendJson(...)0%2.062075%
SendSceneEvent[T](...)0%110100%
SendAllScenesEvent[T](...)0%110100%
ReportPosition(...)0%110100%
ReportCameraChanged(...)0%110100%
ReportCameraChanged(...)0%220100%
Web3UseResponse(...)0%2100%
ReportIdleStateChanged(...)0%110100%
ReportControlEvent[T](...)0%110100%
SendRequestHeadersForUrl(...)0%6200%
BuilderInWorldMessage(...)0%110100%
ReportOnClickEvent(...)0%2.032080%
ReportRaycastResult[T, P](...)0%2100%
ReportRaycastHitFirstResult(...)0%2100%
ReportRaycastHitAllResult(...)0%2100%
CreateHitObject(...)0%110100%
SetPointerEventPayload(...)0%220100%
ReportGlobalPointerDownEvent(...)0%110100%
ReportGlobalPointerUpEvent(...)0%110100%
ReportOnPointerDownEvent(...)0%2.012085.71%
ReportOnPointerUpEvent(...)0%2.012085.71%
ReportOnTextSubmitEvent(...)0%2.022083.33%
ReportOnTextInputChangedEvent(...)0%3.192033.33%
ReportOnTextInputChangedTextEvent(...)0%220100%
ReportOnFocusEvent(...)0%2.862040%
ReportOnBlurEvent(...)0%2.862040%
ReportOnScrollChange(...)0%220100%
ReportEvent[T](...)0%2100%
ReportOnMetricsUpdate(...)0%110100%
ReportOnEnterEvent(...)0%6200%
LogOut()0%2100%
RedirectToSignUp()0%2100%
PreloadFinished(...)0%2100%
ReportMousePosition(...)0%2100%
SendScreenshot(...)0%2100%
SetDelightedSurveyEnabled(...)0%2100%
SetScenesLoadRadius(...)0%110100%
SendSaveUserDescriptionPayload(...)0%2100%
RequestOwnProfileUpdate()0%110100%
SendSaveAvatar(...)0%110100%
SendAuthentication(...)0%2100%
SendPassport(...)0%110100%
SendSaveUserUnverifiedName(...)0%2100%
SendSaveUserDescription(...)0%2100%
SendUserAcceptedCollectibles(...)0%110100%
SaveUserTutorialStep(...)0%2100%
SendPerformanceReport(...)0%2100%
SendSystemInfoReport()0%2100%
SendTermsOfServiceResponse(...)0%110100%
SendExpression(...)0%110100%
OpenURL(...)0%110100%
PublishStatefulScene(...)0%110100%
StartIsolatedMode(...)0%110100%
StopIsolatedMode(...)0%110100%
SendReportScene(...)0%110100%
SetHomeScene(...)0%2100%
SendReportPlayer(...)0%110100%
SendBlockPlayer(...)0%110100%
SendUnblockPlayer(...)0%2100%
RequestScenesInfoAroundParcel(...)0%110100%
SendAudioStreamEvent(...)0%110100%
JoinVoiceChat()0%110100%
LeaveVoiceChat()0%110100%
SendSetVoiceChatRecording(...)0%2100%
ToggleVoiceChatRecording()0%2100%
ApplySettings(...)0%110100%
RequestGIFProcessor(...)0%2100%
DeleteGIF(...)0%2100%
GoTo(...)0%110100%
GoToCrowd()0%2100%
GoToMagic()0%2100%
JumpIn(...)0%110100%
SendChatMessage(...)0%2100%
UpdateFriendshipStatus(...)0%2100%
ScenesLoadingFeedback(...)0%2100%
FetchHotScenes()0%2100%
SetBaseResolution(...)0%110100%
ReportAnalyticsEvent(...)0%2100%
ReportAnalyticsEvent(...)0%2100%
FetchBalanceOfMANA()0%110100%
SendSceneExternalActionEvent(...)0%2100%
SetMuteUsers(...)0%110100%
SendCloseUserAvatar(...)0%2100%
KillPortableExperience(...)0%2100%
RequestThirdPartyWearables(...)0%110100%
SetDisabledPortableExperiences(...)0%110100%
RequestWearables(...)0%2100%
RequestEmotes(...)0%2100%
SearchENSOwner(...)0%110100%
RequestHomeCoordinates()0%2100%
RequestUserProfile(...)0%110100%
ReportAvatarFatalError()0%2100%
UnpublishScene(...)0%2100%
NotifyStatusThroughChat(...)0%2100%
ReportVideoProgressEvent(...)0%110100%
ReportAvatarRemoved(...)0%2100%
ReportAvatarSceneChanged(...)0%2100%
ReportAvatarClick(...)0%2100%
ReportOnPointerHoverEnterEvent(...)0%110100%
ReportOnPointerHoverExitEvent(...)0%110100%
ReportTime(...)0%110100%
GetFriendsWithDirectMessages(...)0%2100%
MarkMessagesAsSeen(...)0%110100%
GetPrivateMessages(...)0%2100%
GetUnseenMessagesByUser()0%2100%
GetFriends(...)0%2100%
GetFriends(...)0%2100%
GetFriendRequests(...)0%2100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/WebInterface/Interface.cs

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using DCL.CameraTool;
 4using DCL.Helpers;
 5using DCL.Models;
 6using Newtonsoft.Json;
 7using UnityEngine;
 8using Ray = UnityEngine.Ray;
 9
 10#if UNITY_WEBGL && !UNITY_EDITOR
 11using System.Runtime.InteropServices;
 12#endif
 13
 14namespace DCL.Interface
 15{
 16    /**
 17     * This class contains the outgoing interface of Decentraland.
 18     * You must call those functions to interact with the WebInterface.
 19     *
 20     * The messages comming from the WebInterface instead, are reported directly to
 21     * the handler GameObject by name.
 22     */
 23    public static class WebInterface
 24    {
 125        public static bool VERBOSE = false;
 26
 27        [System.Serializable]
 28        public class ReportPositionPayload
 29        {
 30            /** Camera position, world space */
 31            public Vector3 position;
 32
 33            /** Character rotation */
 34            public Quaternion rotation;
 35
 36            /** Camera rotation */
 37            public Quaternion cameraRotation;
 38
 39            /** Camera height, relative to the feet of the avatar or ground */
 40            public float playerHeight;
 41
 42            public Vector3 mousePosition;
 43
 44            public string id;
 45        }
 46
 47        [System.Serializable]
 48        public abstract class ControlEvent
 49        {
 50            public string eventType;
 51        }
 52
 53        public abstract class ControlEvent<T> : ControlEvent
 54        {
 55            public T payload;
 56
 57            protected ControlEvent(string eventType, T payload)
 58            {
 59                this.eventType = eventType;
 60                this.payload = payload;
 61            }
 62        }
 63
 64        [System.Serializable]
 65        public class SceneReady : ControlEvent<SceneReady.Payload>
 66        {
 67            [System.Serializable]
 68            public class Payload
 69            {
 70                public string sceneId;
 71            }
 72
 83073            public SceneReady(string sceneId) : base("SceneReady", new Payload() { sceneId = sceneId }) { }
 74        }
 75
 76        [System.Serializable]
 77        public class ActivateRenderingACK : ControlEvent<object>
 78        {
 079            public ActivateRenderingACK() : base("ActivateRenderingACK", null) { }
 80        }
 81
 82        [System.Serializable]
 83        public class DeactivateRenderingACK : ControlEvent<object>
 84        {
 085            public DeactivateRenderingACK() : base("DeactivateRenderingACK", null) { }
 86        }
 87
 88        [System.Serializable]
 89        public class SceneEvent<T>
 90        {
 91            public string sceneId;
 92            public string eventType;
 93            public T payload;
 94        }
 95
 96        [System.Serializable]
 97        public class AllScenesEvent<T>
 98        {
 99            public string eventType;
 100            public T payload;
 101        }
 102
 103        [System.Serializable]
 104        public class UUIDEvent<TPayload>
 105            where TPayload : class, new()
 106        {
 107            public string uuid;
 108            public TPayload payload = new TPayload();
 109        }
 110
 111        public enum ACTION_BUTTON
 112        {
 113            POINTER = 0,
 114            PRIMARY = 1,
 115            SECONDARY = 2,
 116            ANY = 3,
 117            FORWARD = 4,
 118            BACKWARD = 5,
 119            RIGHT = 6,
 120            LEFT = 7,
 121            JUMP = 8,
 122            WALK = 9,
 123            ACTION_3 = 10,
 124            ACTION_4 = 11,
 125            ACTION_5 = 12,
 126            ACTION_6 = 13
 127        }
 128
 129        [System.Serializable]
 130        public class OnClickEvent : UUIDEvent<OnClickEventPayload> { };
 131
 132        [System.Serializable]
 133        public class CameraModePayload
 134        {
 135            public CameraMode.ModeId cameraMode;
 136        };
 137
 138        [System.Serializable]
 139        public class Web3UseResponsePayload
 140        {
 141            public string id;
 142            public bool result;
 143        };
 144
 145        [System.Serializable]
 146        public class IdleStateChangedPayload
 147        {
 148            public bool isIdle;
 149        };
 150
 151        [System.Serializable]
 152        public class OnPointerDownEvent : UUIDEvent<OnPointerEventPayload> { };
 153
 154        [System.Serializable]
 155        public class OnGlobalPointerEvent
 156        {
 0157            public OnGlobalPointerEventPayload payload = new OnGlobalPointerEventPayload();
 158        };
 159
 160        [System.Serializable]
 161        public class OnPointerUpEvent : UUIDEvent<OnPointerEventPayload> { };
 162
 163        [System.Serializable]
 164        private class OnTextSubmitEvent : UUIDEvent<OnTextSubmitEventPayload> { };
 165
 166        [System.Serializable]
 167        private class OnTextInputChangeEvent : UUIDEvent<OnTextInputChangeEventPayload> { };
 168
 169        [System.Serializable]
 170        private class OnTextInputChangeTextEvent : UUIDEvent<OnTextInputChangeTextEventPayload> { };
 171
 172        [System.Serializable]
 173        private class OnScrollChangeEvent : UUIDEvent<OnScrollChangeEventPayload> { };
 174
 175        [System.Serializable]
 176        private class OnFocusEvent : UUIDEvent<EmptyPayload> { };
 177
 178        [System.Serializable]
 179        private class OnBlurEvent : UUIDEvent<EmptyPayload> { };
 180
 181        [System.Serializable]
 182        public class OnEnterEvent : UUIDEvent<OnEnterEventPayload> { };
 183
 184        [System.Serializable]
 185        public class OnClickEventPayload
 186        {
 187            public ACTION_BUTTON buttonId = ACTION_BUTTON.POINTER;
 188        }
 189
 190        [System.Serializable]
 191        public class SendChatMessageEvent
 192        {
 193            public ChatMessage message;
 194        }
 195
 196        [System.Serializable]
 197        public class RemoveEntityComponentsPayLoad
 198        {
 199            public string entityId;
 200            public string componentId;
 201        };
 202
 203        [System.Serializable]
 204        public class StoreSceneStateEvent
 205        {
 1206            public string type = "StoreSceneState";
 1207            public string payload = "";
 208        };
 209
 210        [System.Serializable]
 211        public class OnPointerEventPayload
 212        {
 213            [System.Serializable]
 214            public class Hit
 215            {
 216                public Vector3 origin;
 217                public float length;
 218                public Vector3 hitPoint;
 219                public Vector3 normal;
 220                public Vector3 worldNormal;
 221                public string meshName;
 222                public string entityId;
 223            }
 224
 225            public ACTION_BUTTON buttonId;
 226            public Vector3 origin;
 227            public Vector3 direction;
 228            public Hit hit;
 229        }
 230
 231        [System.Serializable]
 232        public class OnGlobalPointerEventPayload : OnPointerEventPayload
 233        {
 234            public enum InputEventType
 235            {
 236                DOWN,
 237                UP
 238            }
 239
 240            public InputEventType type;
 241        }
 242
 243        [System.Serializable]
 244        public class OnTextSubmitEventPayload
 245        {
 246            public string id;
 247            public string text;
 248        }
 249
 250        [System.Serializable]
 251        public class OnTextInputChangeEventPayload
 252        {
 253            public string value;
 254        }
 255
 256        [System.Serializable]
 257        public class OnTextInputChangeTextEventPayload
 258        {
 259            [System.Serializable]
 260            public class Payload
 261            {
 262                public string value;
 263                public bool isSubmit;
 264            }
 265
 2266            public Payload value = new Payload();
 267        }
 268
 269        [System.Serializable]
 270        public class OnScrollChangeEventPayload
 271        {
 272            public Vector2 value;
 273            public int pointerId;
 274        }
 275
 276        [System.Serializable]
 277        public class EmptyPayload { }
 278
 279        [System.Serializable]
 280        public class MetricsModel
 281        {
 282            public int meshes;
 283            public int bodies;
 284            public int materials;
 285            public int textures;
 286            public int triangles;
 287            public int entities;
 288
 289            public static MetricsModel operator +(MetricsModel lhs, MetricsModel rhs)
 290            {
 0291                return new MetricsModel()
 292                {
 293                    meshes = lhs.meshes + rhs.meshes,
 294                    bodies = lhs.bodies + rhs.bodies,
 295                    materials = lhs.materials + rhs.materials,
 296                    textures = lhs.textures + rhs.textures,
 297                    triangles = lhs.triangles + rhs.triangles,
 298                    entities = lhs.entities + rhs.entities
 299                };
 300            }
 301        }
 302
 303        [System.Serializable]
 304        private class OnMetricsUpdate
 305        {
 1306            public MetricsModel given = new MetricsModel();
 1307            public MetricsModel limit = new MetricsModel();
 308        }
 309
 310        [System.Serializable]
 311        public class OnEnterEventPayload { }
 312
 313        [System.Serializable]
 314        public class TransformPayload
 315        {
 0316            public Vector3 position = Vector3.zero;
 0317            public Quaternion rotation = Quaternion.identity;
 0318            public Vector3 scale = Vector3.one;
 319        }
 320
 321        public class OnSendScreenshot
 322        {
 323            public string id;
 324            public string encodedTexture;
 325        };
 326
 327        [System.Serializable]
 328        public class GotoEvent
 329        {
 330            public int x;
 331            public int y;
 332        };
 333
 334        [System.Serializable]
 335        public class BaseResolution
 336        {
 337            public int baseResolution;
 338        };
 339
 340        //-----------------------------------------------------
 341        // Raycast
 342        [System.Serializable]
 343        public class RayInfo
 344        {
 345            public Vector3 origin;
 346            public Vector3 direction;
 347            public float distance;
 348        }
 349
 350        [System.Serializable]
 351        public class RaycastHitInfo
 352        {
 353            public bool didHit;
 354            public RayInfo ray;
 355
 356            public Vector3 hitPoint;
 357            public Vector3 hitNormal;
 358        }
 359
 360        [System.Serializable]
 361        public class HitEntityInfo
 362        {
 363            public string entityId;
 364            public string meshName;
 365        }
 366
 367        [System.Serializable]
 368        public class RaycastHitEntity : RaycastHitInfo
 369        {
 370            public HitEntityInfo entity;
 371        }
 372
 373        [System.Serializable]
 374        public class RaycastHitEntities : RaycastHitInfo
 375        {
 376            public RaycastHitEntity[] entities;
 377        }
 378
 379        [System.Serializable]
 380        public class RaycastResponse<T> where T : RaycastHitInfo
 381        {
 382            public string queryId;
 383            public string queryType;
 384            public T payload;
 385        }
 386
 387        // Note (Zak): We need to explicitly define this classes for the JsonUtility to
 388        // be able to serialize them
 389        [System.Serializable]
 390        public class RaycastHitFirstResponse : RaycastResponse<RaycastHitEntity> { }
 391
 392        [System.Serializable]
 393        public class RaycastHitAllResponse : RaycastResponse<RaycastHitEntities> { }
 394
 395        [System.Serializable]
 396        public class SendExpressionPayload
 397        {
 398            public string id;
 399            public long timestamp;
 400        }
 401
 402        [System.Serializable]
 403        public class UserAcceptedCollectiblesPayload
 404        {
 405            public string id;
 406        }
 407
 408        [System.Serializable]
 409        public class SendBlockPlayerPayload
 410        {
 411            public string userId;
 412        }
 413
 414        [Serializable]
 415        private class SendReportPlayerPayload
 416        {
 417            public string userId;
 418            public string name;
 419        }
 420
 421        [Serializable]
 422        private class SendReportScenePayload
 423        {
 424            public string sceneId;
 425        }
 426
 427        [Serializable]
 428        private class SetHomeScenePayload
 429        {
 430            public string sceneId;
 431        }
 432
 433        [System.Serializable]
 434        public class SendUnblockPlayerPayload
 435        {
 436            public string userId;
 437        }
 438
 439        [System.Serializable]
 440        public class TutorialStepPayload
 441        {
 442            public int tutorialStep;
 443        }
 444
 445        [System.Serializable]
 446        public class PerformanceReportPayload
 447        {
 448            public string samples;
 449            public bool fpsIsCapped;
 450            public int hiccupsInThousandFrames;
 451            public float hiccupsTime;
 452            public float totalTime;
 453            public int gltfInProgress;
 454            public int gltfFailed;
 455            public int gltfCancelled;
 456            public int gltfLoaded;
 457            public int abInProgress;
 458            public int abFailed;
 459            public int abCancelled;
 460            public int abLoaded;
 461            public int gltfTexturesLoaded;
 462            public int abTexturesLoaded;
 463            public int promiseTexturesLoaded;
 464            public int enqueuedMessages;
 465            public int processedMessages;
 466            public int playerCount;
 467            public int loadRadius;
 468            public Dictionary<string, long> sceneScores;
 469            public object drawCalls; //int *
 470            public object memoryReserved; //long, in total bytes *
 471            public object memoryUsage; //long, in total bytes *
 472            public object totalGCAlloc; //long, in total bytes, its the sum of all GCAllocs per frame over 1000 frames *
 473
 474            //* is NULL if SendProfilerMetrics is false
 475        }
 476
 477        [System.Serializable]
 478        public class SystemInfoReportPayload
 479        {
 0480            public string graphicsDeviceName = SystemInfo.graphicsDeviceName;
 0481            public string graphicsDeviceVersion = SystemInfo.graphicsDeviceVersion;
 0482            public int graphicsMemorySize = SystemInfo.graphicsMemorySize;
 0483            public string processorType = SystemInfo.processorType;
 0484            public int processorCount = SystemInfo.processorCount;
 0485            public int systemMemorySize = SystemInfo.systemMemorySize;
 486
 487            // TODO: remove useBinaryTransform after ECS7 is fully in prod
 0488            public bool useBinaryTransform = true;
 489        }
 490
 491        [System.Serializable]
 492        public class GenericAnalyticPayload
 493        {
 494            public string eventName;
 495            public Dictionary<object, object> data;
 496        }
 497
 498        [System.Serializable]
 499        public class PerformanceHiccupPayload
 500        {
 501            public int hiccupsInThousandFrames;
 502            public float hiccupsTime;
 503            public float totalTime;
 504        }
 505
 506        [System.Serializable]
 507        public class TermsOfServiceResponsePayload
 508        {
 509            public string sceneId;
 510            public bool dontShowAgain;
 511            public bool accepted;
 512        }
 513
 514        [System.Serializable]
 515        public class OpenURLPayload
 516        {
 517            public string url;
 518        }
 519
 520        [System.Serializable]
 521        public class GIFSetupPayload
 522        {
 523            public string imageSource;
 524            public string id;
 525            public bool isWebGL1;
 526        }
 527
 528        [System.Serializable]
 529        public class RequestScenesInfoAroundParcelPayload
 530        {
 531            public Vector2 parcel;
 532            public int scenesAround;
 533        }
 534
 535        [System.Serializable]
 536        public class AudioStreamingPayload
 537        {
 538            public string url;
 539            public bool play;
 540            public float volume;
 541        }
 542
 543        [System.Serializable]
 544        public class SetScenesLoadRadiusPayload
 545        {
 546            public float newRadius;
 547        }
 548
 549        [System.Serializable]
 550        public class SetVoiceChatRecordingPayload
 551        {
 552            public bool recording;
 553        }
 554
 555        [System.Serializable]
 556        public class ApplySettingsPayload
 557        {
 558            public float voiceChatVolume;
 559            public int voiceChatAllowCategory;
 560        }
 561
 562        [Serializable]
 563        public class UserRealmPayload
 564        {
 565            public string serverName;
 566            public string layer;
 567        }
 568
 569        [System.Serializable]
 570        public class JumpInPayload
 571        {
 0572            public UserRealmPayload realm = new UserRealmPayload();
 573            public Vector2 gridPosition;
 574        }
 575
 576        [System.Serializable]
 577        public class LoadingFeedbackMessage
 578        {
 579            public string message;
 580            public int loadPercentage;
 581        }
 582
 583        [System.Serializable]
 584        public class AnalyticsPayload
 585        {
 586            [System.Serializable]
 587            public class Property
 588            {
 589                public string key;
 590                public string value;
 591
 0592                public Property(string key, string value)
 593                {
 0594                    this.key = key;
 0595                    this.value = value;
 0596                }
 597            }
 598
 599            public string name;
 600            public Property[] properties;
 601        }
 602
 603        [System.Serializable]
 604        public class DelightedSurveyEnabledPayload
 605        {
 606            public bool enabled;
 607        }
 608
 609        [System.Serializable]
 610        public class ExternalActionSceneEventPayload
 611        {
 612            public string type;
 613            public string payload;
 614        }
 615
 616        [System.Serializable]
 617        public class MuteUserPayload
 618        {
 619            public string[] usersId;
 620            public bool mute;
 621        }
 622
 623        [System.Serializable]
 624        public class CloseUserAvatarPayload
 625        {
 626            public bool isSignUpFlow;
 627        }
 628
 629        [System.Serializable]
 630        public class StringPayload
 631        {
 632            public string value;
 633        }
 634
 635        [System.Serializable]
 636        public class KillPortableExperiencePayload
 637        {
 638            public string portableExperienceId;
 639        }
 640
 641        [System.Serializable]
 642        public class SetDisabledPortableExperiencesPayload
 643        {
 644            public string[] idsToDisable;
 645        }
 646
 647        [System.Serializable]
 648        public class WearablesRequestFiltersPayload
 649        {
 650            public string ownedByUser;
 651            public string[] wearableIds;
 652            public string[] collectionIds;
 653            public string thirdPartyId;
 654        }
 655
 656        [System.Serializable]
 657        public class EmotesRequestFiltersPayload
 658        {
 659            public string ownedByUser;
 660            public string[] emoteIds;
 661            public string[] collectionIds;
 662            public string thirdPartyId;
 663        }
 664
 665        [System.Serializable]
 666        public class RequestWearablesPayload
 667        {
 668            public WearablesRequestFiltersPayload filters;
 669            public string context;
 670        }
 671
 672        [System.Serializable]
 673        public class RequestEmotesPayload
 674        {
 675            public EmotesRequestFiltersPayload filters;
 676            public string context;
 677        }
 678
 679        [System.Serializable]
 680        public class HeadersPayload
 681        {
 682            public string method;
 683            public string url;
 1684            public Dictionary<string, object> metadata = new Dictionary<string, object>();
 685        }
 686
 687        [System.Serializable]
 688        public class SearchENSOwnerPayload
 689        {
 690            public string name;
 691            public int maxResults;
 692        }
 693
 694        [System.Serializable]
 695        public class UnpublishScenePayload
 696        {
 697            public string coordinates;
 698        }
 699
 700        [System.Serializable]
 701        public class AvatarStateBase
 702        {
 703            public string type;
 704            public string avatarShapeId;
 705        }
 706
 707        [System.Serializable]
 708        public class AvatarStateSceneChanged : AvatarStateBase
 709        {
 710            public string sceneId;
 711        }
 712
 713        [System.Serializable]
 714        public class AvatarOnClickPayload
 715        {
 716            public string userId;
 0717            public RayInfo ray = new RayInfo();
 718        }
 719
 720        [System.Serializable]
 721        public class TimeReportPayload
 722        {
 723            public float timeNormalizationFactor;
 724            public float cycleTime;
 725            public bool isPaused;
 726            public float time;
 727        }
 728
 729        [System.Serializable]
 730        public class GetFriendsWithDirectMessagesPayload
 731        {
 732            public string userNameOrId;
 733            public int limit;
 734            public int skip;
 735        }
 736
 737        [System.Serializable]
 738        public class MarkMessagesAsSeenPayload
 739        {
 740            public string userId;
 741        }
 742
 743        [System.Serializable]
 744        public class GetPrivateMessagesPayload
 745        {
 746            public string userId;
 747            public int limit;
 748            public string fromMessageId;
 749        }
 750
 751        [Serializable]
 752        public class FriendshipUpdateStatusMessage
 753        {
 754            public string userId;
 755            public FriendshipAction action;
 756        }
 757
 758        public enum FriendshipAction
 759        {
 760            NONE,
 761            APPROVED,
 762            REJECTED,
 763            CANCELLED,
 764            REQUESTED_FROM,
 765            REQUESTED_TO,
 766            DELETED
 767        }
 768
 769        [Serializable]
 770        private class GetFriendsPayload
 771        {
 772            public string userNameOrId;
 773            public int limit;
 774            public int skip;
 775        }
 776
 777        [Serializable]
 778        private class GetFriendRequestsPayload
 779        {
 780            public int sentLimit;
 781            public int sentSkip;
 782            public int receivedLimit;
 783            public int receivedSkip;
 784        }
 785
 786        public static event Action<string, byte[]> OnBinaryMessageFromEngine;
 787
 788#if UNITY_WEBGL && !UNITY_EDITOR
 789    /**
 790     * This method is called after the first render. It marks the loading of the
 791     * rest of the JS client.
 792     */
 793    [DllImport("__Internal")] public static extern void StartDecentraland();
 794    [DllImport("__Internal")] public static extern void MessageFromEngine(string type, string message);
 795    [DllImport("__Internal")] public static extern string GetGraphicCard();
 796    [DllImport("__Internal")] public static extern void BinaryMessageFromEngine(string sceneId, byte[] bytes, int size);
 797
 798    public static System.Action<string, string> OnMessageFromEngine;
 799#else
 800        public static Action<string, string> OnMessageFromEngine
 801        {
 802            set
 803            {
 82804                OnMessage = value;
 82805                if (OnMessage != null)
 806                {
 41807                    ProcessQueuedMessages();
 808                }
 82809            }
 0810            get => OnMessage;
 811        }
 812        private static Action<string, string> OnMessage;
 813
 1814        private static bool hasQueuedMessages = false;
 1815        private static List<(string, string)> queuedMessages = new List<(string, string)>();
 0816        public static void StartDecentraland() { }
 0817        public static bool CheckURLParam(string targetParam) { return false; }
 0818        public static string GetURLParam(string targetParam) { return String.Empty; }
 819
 820        public static void MessageFromEngine(string type, string message)
 821        {
 3645822            if (OnMessageFromEngine != null)
 823            {
 1841824                if (hasQueuedMessages)
 825                {
 0826                    ProcessQueuedMessages();
 827                }
 828
 1841829                OnMessageFromEngine.Invoke(type, message);
 1841830                if (VERBOSE)
 831                {
 0832                    Debug.Log("MessageFromEngine called with: " + type + ", " + message);
 833                }
 0834            }
 835            else
 836            {
 1804837                lock (queuedMessages)
 838                {
 1804839                    queuedMessages.Add((type, message));
 1804840                }
 841
 1804842                hasQueuedMessages = true;
 843            }
 3645844        }
 845
 846        private static void ProcessQueuedMessages()
 847        {
 41848            hasQueuedMessages = false;
 41849            lock (queuedMessages)
 850            {
 3636851                foreach ((string type, string payload) in queuedMessages)
 852                {
 1777853                    MessageFromEngine(type, payload);
 854                }
 855
 41856                queuedMessages.Clear();
 41857            }
 41858        }
 859
 0860        public static string GetGraphicCard() => "In Editor Graphic Card";
 861#endif
 862
 863        public static void SendMessage(string type)
 864        {
 865            // sending an empty JSON object to be compatible with other messages
 5866            MessageFromEngine(type, "{}");
 5867        }
 868
 869        public static void SendMessage<T>(string type, T message)
 870        {
 1849871            string messageJson = JsonUtility.ToJson(message);
 1849872            SendJson(type, messageJson);
 1849873        }
 874
 875        public static void SendJson(string type, string json)
 876        {
 1849877            if (VERBOSE)
 878            {
 0879                Debug.Log($"Sending message: " + json);
 880            }
 881
 1849882            MessageFromEngine(type, json);
 1849883        }
 884
 1885        private static ReportPositionPayload positionPayload = new ReportPositionPayload();
 1886        private static CameraModePayload cameraModePayload = new CameraModePayload();
 1887        private static Web3UseResponsePayload web3UseResponsePayload = new Web3UseResponsePayload();
 1888        private static IdleStateChangedPayload idleStateChangedPayload = new IdleStateChangedPayload();
 1889        private static OnMetricsUpdate onMetricsUpdate = new OnMetricsUpdate();
 1890        private static OnClickEvent onClickEvent = new OnClickEvent();
 1891        private static OnPointerDownEvent onPointerDownEvent = new OnPointerDownEvent();
 1892        private static OnPointerUpEvent onPointerUpEvent = new OnPointerUpEvent();
 1893        private static OnTextSubmitEvent onTextSubmitEvent = new OnTextSubmitEvent();
 1894        private static OnTextInputChangeEvent onTextInputChangeEvent = new OnTextInputChangeEvent();
 1895        private static OnTextInputChangeTextEvent onTextInputChangeTextEvent = new OnTextInputChangeTextEvent();
 1896        private static OnScrollChangeEvent onScrollChangeEvent = new OnScrollChangeEvent();
 1897        private static OnFocusEvent onFocusEvent = new OnFocusEvent();
 1898        private static OnBlurEvent onBlurEvent = new OnBlurEvent();
 1899        private static OnEnterEvent onEnterEvent = new OnEnterEvent();
 1900        private static OnSendScreenshot onSendScreenshot = new OnSendScreenshot();
 1901        private static OnPointerEventPayload onPointerEventPayload = new OnPointerEventPayload();
 1902        private static OnGlobalPointerEventPayload onGlobalPointerEventPayload = new OnGlobalPointerEventPayload();
 1903        private static OnGlobalPointerEvent onGlobalPointerEvent = new OnGlobalPointerEvent();
 1904        private static AudioStreamingPayload onAudioStreamingEvent = new AudioStreamingPayload();
 1905        private static SetVoiceChatRecordingPayload setVoiceChatRecordingPayload = new SetVoiceChatRecordingPayload();
 1906        private static SetScenesLoadRadiusPayload setScenesLoadRadiusPayload = new SetScenesLoadRadiusPayload();
 1907        private static ApplySettingsPayload applySettingsPayload = new ApplySettingsPayload();
 1908        private static GIFSetupPayload gifSetupPayload = new GIFSetupPayload();
 1909        private static JumpInPayload jumpInPayload = new JumpInPayload();
 1910        private static GotoEvent gotoEvent = new GotoEvent();
 1911        private static SendChatMessageEvent sendChatMessageEvent = new SendChatMessageEvent();
 1912        private static BaseResolution baseResEvent = new BaseResolution();
 1913        private static AnalyticsPayload analyticsEvent = new AnalyticsPayload();
 1914        private static DelightedSurveyEnabledPayload delightedSurveyEnabled = new DelightedSurveyEnabledPayload();
 1915        private static ExternalActionSceneEventPayload sceneExternalActionEvent = new ExternalActionSceneEventPayload();
 1916        private static MuteUserPayload muteUserEvent = new MuteUserPayload();
 1917        private static StoreSceneStateEvent storeSceneState = new StoreSceneStateEvent();
 1918        private static CloseUserAvatarPayload closeUserAvatarPayload = new CloseUserAvatarPayload();
 1919        private static StringPayload stringPayload = new StringPayload();
 1920        private static KillPortableExperiencePayload killPortableExperiencePayload = new KillPortableExperiencePayload()
 1921        private static SetDisabledPortableExperiencesPayload setDisabledPortableExperiencesPayload = new SetDisabledPort
 1922        private static RequestWearablesPayload requestWearablesPayload = new RequestWearablesPayload();
 1923        private static RequestEmotesPayload requestEmotesPayload = new RequestEmotesPayload();
 1924        private static SearchENSOwnerPayload searchEnsOwnerPayload = new SearchENSOwnerPayload();
 1925        private static HeadersPayload headersPayload = new HeadersPayload();
 1926        private static AvatarStateBase avatarStatePayload = new AvatarStateBase();
 1927        private static AvatarStateSceneChanged avatarSceneChangedPayload = new AvatarStateSceneChanged();
 1928        public static AvatarOnClickPayload avatarOnClickPayload = new AvatarOnClickPayload();
 1929        private static UUIDEvent<EmptyPayload> onPointerHoverEnterEvent = new UUIDEvent<EmptyPayload>();
 1930        private static UUIDEvent<EmptyPayload> onPointerHoverExitEvent = new UUIDEvent<EmptyPayload>();
 1931        private static TimeReportPayload timeReportPayload = new TimeReportPayload();
 1932        private static GetFriendsWithDirectMessagesPayload getFriendsWithDirectMessagesPayload = new GetFriendsWithDirec
 1933        private static MarkMessagesAsSeenPayload markMessagesAsSeenPayload = new MarkMessagesAsSeenPayload();
 1934        private static GetPrivateMessagesPayload getPrivateMessagesPayload = new GetPrivateMessagesPayload();
 935
 936        public static void SendSceneEvent<T>(string sceneId, string eventType, T payload)
 937        {
 635938            SceneEvent<T> sceneEvent = new SceneEvent<T>();
 635939            sceneEvent.sceneId = sceneId;
 635940            sceneEvent.eventType = eventType;
 635941            sceneEvent.payload = payload;
 942
 635943            SendMessage("SceneEvent", sceneEvent);
 635944        }
 945
 946        private static void SendAllScenesEvent<T>(string eventType, T payload)
 947        {
 605948            AllScenesEvent<T> allScenesEvent = new AllScenesEvent<T>();
 605949            allScenesEvent.eventType = eventType;
 605950            allScenesEvent.payload = payload;
 951
 605952            SendMessage("AllScenesEvent", allScenesEvent);
 605953        }
 954
 955        public static void ReportPosition(Vector3 position, Quaternion rotation, float playerHeight, Quaternion cameraRo
 956        {
 46957            positionPayload.position = position;
 46958            positionPayload.rotation = rotation;
 46959            positionPayload.playerHeight = playerHeight;
 46960            positionPayload.cameraRotation = cameraRotation;
 961
 46962            SendMessage("ReportPosition", positionPayload);
 46963        }
 964
 1208965        public static void ReportCameraChanged(CameraMode.ModeId cameraMode) { ReportCameraChanged(cameraMode, null); }
 966
 967        public static void ReportCameraChanged(CameraMode.ModeId cameraMode, string targetSceneId)
 968        {
 1019969            cameraModePayload.cameraMode = cameraMode;
 1019970            if (!string.IsNullOrEmpty(targetSceneId))
 971            {
 415972                SendSceneEvent(targetSceneId, "cameraModeChanged", cameraModePayload);
 415973            }
 974            else
 975            {
 604976                SendAllScenesEvent("cameraModeChanged", cameraModePayload);
 977            }
 604978        }
 979
 980        public static void Web3UseResponse(string id, bool result)
 981        {
 0982            web3UseResponsePayload.id = id;
 0983            web3UseResponsePayload.result = result;
 0984            SendMessage("Web3UseResponse", web3UseResponsePayload);
 0985        }
 986
 987        public static void ReportIdleStateChanged(bool isIdle)
 988        {
 1989            idleStateChangedPayload.isIdle = isIdle;
 1990            SendAllScenesEvent("idleStateChanged", idleStateChangedPayload);
 1991        }
 992
 830993        public static void ReportControlEvent<T>(T controlEvent) where T : ControlEvent { SendMessage("ControlEvent", co
 994
 995        public static void SendRequestHeadersForUrl(string eventName, string method, string url, Dictionary<string, obje
 996        {
 0997            headersPayload.method = method;
 0998            headersPayload.url = url;
 0999            if (metadata != null)
 01000                headersPayload.metadata = metadata;
 01001            SendMessage(eventName, headersPayload);
 01002        }
 1003
 81004        public static void BuilderInWorldMessage(string type, string message) { MessageFromEngine(type, message); }
 1005
 1006        public static void ReportOnClickEvent(string sceneId, string uuid)
 1007        {
 61008            if (string.IsNullOrEmpty(uuid))
 1009            {
 01010                return;
 1011            }
 1012
 61013            onClickEvent.uuid = uuid;
 1014
 61015            SendSceneEvent(sceneId, "uuidEvent", onClickEvent);
 61016        }
 1017
 1018        // TODO: Add sceneNumber to this response
 1019        private static void ReportRaycastResult<T, P>(string sceneId, string queryId, string queryType, P payload) where
 1020        {
 01021            T response = new T();
 01022            response.queryId = queryId;
 01023            response.queryType = queryType;
 01024            response.payload = payload;
 1025
 01026            SendSceneEvent<T>(sceneId, "raycastResponse", response);
 01027        }
 1028
 01029        public static void ReportRaycastHitFirstResult(string sceneId, string queryId, RaycastType raycastType, RaycastH
 1030
 01031        public static void ReportRaycastHitAllResult(string sceneId, string queryId, RaycastType raycastType, RaycastHit
 1032
 1033        private static OnPointerEventPayload.Hit CreateHitObject(string entityId, string meshName, Vector3 point,
 1034            Vector3 normal, float distance)
 1035        {
 191036            OnPointerEventPayload.Hit hit = new OnPointerEventPayload.Hit();
 1037
 191038            hit.hitPoint = point;
 191039            hit.length = distance;
 191040            hit.normal = normal;
 191041            hit.worldNormal = normal;
 191042            hit.meshName = meshName;
 191043            hit.entityId = entityId;
 1044
 191045            return hit;
 1046        }
 1047
 1048        private static void SetPointerEventPayload(OnPointerEventPayload pointerEventPayload, ACTION_BUTTON buttonId,
 1049            string entityId, string meshName, Ray ray, Vector3 point, Vector3 normal, float distance,
 1050            bool isHitInfoValid)
 1051        {
 201052            pointerEventPayload.origin = ray.origin;
 201053            pointerEventPayload.direction = ray.direction;
 201054            pointerEventPayload.buttonId = buttonId;
 1055
 201056            if (isHitInfoValid)
 191057                pointerEventPayload.hit = CreateHitObject(entityId, meshName, point, normal, distance);
 1058            else
 11059                pointerEventPayload.hit = null;
 11060        }
 1061
 1062        public static void ReportGlobalPointerDownEvent(ACTION_BUTTON buttonId, Ray ray, Vector3 point, Vector3 normal,
 1063            float distance, string sceneId, string entityId = "0", string meshName = null, bool isHitInfoValid = false)
 1064        {
 111065            SetPointerEventPayload((OnPointerEventPayload) onGlobalPointerEventPayload, buttonId,
 1066                entityId, meshName, ray, point, normal, distance,
 1067                isHitInfoValid);
 111068            onGlobalPointerEventPayload.type = OnGlobalPointerEventPayload.InputEventType.DOWN;
 1069
 111070            onGlobalPointerEvent.payload = onGlobalPointerEventPayload;
 1071
 111072            SendSceneEvent(sceneId, "actionButtonEvent", onGlobalPointerEvent);
 111073        }
 1074
 1075        public static void ReportGlobalPointerUpEvent(ACTION_BUTTON buttonId, Ray ray, Vector3 point, Vector3 normal,
 1076            float distance, string sceneId, string entityId = "0", string meshName = null, bool isHitInfoValid = false)
 1077        {
 31078            SetPointerEventPayload((OnPointerEventPayload) onGlobalPointerEventPayload, buttonId,
 1079                entityId, meshName, ray, point, normal, distance,
 1080                isHitInfoValid);
 31081            onGlobalPointerEventPayload.type = OnGlobalPointerEventPayload.InputEventType.UP;
 1082
 31083            onGlobalPointerEvent.payload = onGlobalPointerEventPayload;
 1084
 31085            SendSceneEvent(sceneId, "actionButtonEvent", onGlobalPointerEvent);
 31086        }
 1087
 1088        public static void ReportOnPointerDownEvent(ACTION_BUTTON buttonId, string sceneId, string uuid,
 1089            string entityId, string meshName, Ray ray, Vector3 point, Vector3 normal, float distance)
 1090        {
 41091            if (string.IsNullOrEmpty(uuid))
 1092            {
 01093                return;
 1094            }
 1095
 41096            onPointerDownEvent.uuid = uuid;
 41097            SetPointerEventPayload(onPointerEventPayload, buttonId, entityId, meshName, ray, point,
 1098                normal, distance, isHitInfoValid: true);
 41099            onPointerDownEvent.payload = onPointerEventPayload;
 1100
 41101            SendSceneEvent(sceneId, "uuidEvent", onPointerDownEvent);
 41102        }
 1103
 1104        public static void ReportOnPointerUpEvent(ACTION_BUTTON buttonId, string sceneId, string uuid, string entityId,
 1105            string meshName, Ray ray, Vector3 point, Vector3 normal, float distance)
 1106        {
 21107            if (string.IsNullOrEmpty(uuid))
 1108            {
 01109                return;
 1110            }
 1111
 21112            onPointerUpEvent.uuid = uuid;
 21113            SetPointerEventPayload(onPointerEventPayload, buttonId, entityId, meshName, ray, point,
 1114                normal, distance, isHitInfoValid: true);
 21115            onPointerUpEvent.payload = onPointerEventPayload;
 1116
 21117            SendSceneEvent(sceneId, "uuidEvent", onPointerUpEvent);
 21118        }
 1119
 1120        public static void ReportOnTextSubmitEvent(string sceneId, string uuid, string text)
 1121        {
 21122            if (string.IsNullOrEmpty(uuid))
 1123            {
 01124                return;
 1125            }
 1126
 21127            onTextSubmitEvent.uuid = uuid;
 21128            onTextSubmitEvent.payload.text = text;
 1129
 21130            SendSceneEvent(sceneId, "uuidEvent", onTextSubmitEvent);
 21131        }
 1132
 1133        public static void ReportOnTextInputChangedEvent(string sceneId, string uuid, string text)
 1134        {
 171135            if (string.IsNullOrEmpty(uuid))
 1136            {
 171137                return;
 1138            }
 1139
 01140            onTextInputChangeEvent.uuid = uuid;
 01141            onTextInputChangeEvent.payload.value = text;
 1142
 01143            SendSceneEvent(sceneId, "uuidEvent", onTextInputChangeEvent);
 01144        }
 1145
 1146        public static void ReportOnTextInputChangedTextEvent(string sceneId, string uuid, string text, bool isSubmit)
 1147        {
 191148            if (string.IsNullOrEmpty(uuid))
 1149            {
 161150                return;
 1151            }
 1152
 31153            onTextInputChangeTextEvent.uuid = uuid;
 31154            onTextInputChangeTextEvent.payload.value.value = text;
 31155            onTextInputChangeTextEvent.payload.value.isSubmit = isSubmit;
 1156
 31157            SendSceneEvent(sceneId, "uuidEvent", onTextInputChangeTextEvent);
 31158        }
 1159
 1160        public static void ReportOnFocusEvent(string sceneId, string uuid)
 1161        {
 21162            if (string.IsNullOrEmpty(uuid))
 1163            {
 21164                return;
 1165            }
 1166
 01167            onFocusEvent.uuid = uuid;
 01168            SendSceneEvent(sceneId, "uuidEvent", onFocusEvent);
 01169        }
 1170
 1171        public static void ReportOnBlurEvent(string sceneId, string uuid)
 1172        {
 21173            if (string.IsNullOrEmpty(uuid))
 1174            {
 21175                return;
 1176            }
 1177
 01178            onBlurEvent.uuid = uuid;
 01179            SendSceneEvent(sceneId, "uuidEvent", onBlurEvent);
 01180        }
 1181
 1182        public static void ReportOnScrollChange(string sceneId, string uuid, Vector2 value, int pointerId)
 1183        {
 151184            if (string.IsNullOrEmpty(uuid))
 1185            {
 131186                return;
 1187            }
 1188
 21189            onScrollChangeEvent.uuid = uuid;
 21190            onScrollChangeEvent.payload.value = value;
 21191            onScrollChangeEvent.payload.pointerId = pointerId;
 1192
 21193            SendSceneEvent(sceneId, "uuidEvent", onScrollChangeEvent);
 21194        }
 1195
 01196        public static void ReportEvent<T>(string sceneId, T @event) { SendSceneEvent(sceneId, "uuidEvent", @event); }
 1197
 1198        public static void ReportOnMetricsUpdate(string sceneId, MetricsModel current,
 1199            MetricsModel limit)
 1200        {
 1781201            onMetricsUpdate.given = current;
 1781202            onMetricsUpdate.limit = limit;
 1203
 1781204            SendSceneEvent(sceneId, "metricsUpdate", onMetricsUpdate);
 1781205        }
 1206
 1207        public static void ReportOnEnterEvent(string sceneId, string uuid)
 1208        {
 01209            if (string.IsNullOrEmpty(uuid))
 01210                return;
 1211
 01212            onEnterEvent.uuid = uuid;
 1213
 01214            SendSceneEvent(sceneId, "uuidEvent", onEnterEvent);
 01215        }
 1216
 01217        public static void LogOut() { SendMessage("LogOut"); }
 1218
 01219        public static void RedirectToSignUp() { SendMessage("RedirectToSignUp"); }
 1220
 01221        public static void PreloadFinished(string sceneId) { SendMessage("PreloadFinished", sceneId); }
 1222
 1223        public static void ReportMousePosition(Vector3 mousePosition, string id)
 1224        {
 01225            positionPayload.mousePosition = mousePosition;
 01226            positionPayload.id = id;
 01227            SendMessage("ReportMousePosition", positionPayload);
 01228        }
 1229
 1230        public static void SendScreenshot(string encodedTexture, string id)
 1231        {
 01232            onSendScreenshot.encodedTexture = encodedTexture;
 01233            onSendScreenshot.id = id;
 01234            SendMessage("SendScreenshot", onSendScreenshot);
 01235        }
 1236
 1237        public static void SetDelightedSurveyEnabled(bool enabled)
 1238        {
 01239            delightedSurveyEnabled.enabled = enabled;
 01240            SendMessage("SetDelightedSurveyEnabled", delightedSurveyEnabled);
 01241        }
 1242
 1243        public static void SetScenesLoadRadius(float newRadius)
 1244        {
 11245            setScenesLoadRadiusPayload.newRadius = newRadius;
 11246            SendMessage("SetScenesLoadRadius", setScenesLoadRadiusPayload);
 11247        }
 1248
 1249        [System.Serializable]
 1250        public class SaveAvatarPayload
 1251        {
 1252            public string face256;
 1253            public string body;
 1254            public bool isSignUpFlow;
 1255            public AvatarModel avatar;
 1256        }
 1257
 1258        public static class RendererAuthenticationType
 1259        {
 01260            public static string Guest => "guest";
 01261            public static string WalletConnect => "wallet_connect";
 1262        }
 1263
 1264        [System.Serializable]
 1265        public class SendAuthenticationPayload
 1266        {
 1267            public string rendererAuthenticationType;
 1268        }
 1269
 1270        [System.Serializable]
 1271        public class SendPassportPayload
 1272        {
 1273            public string name;
 1274            public string email;
 1275        }
 1276
 1277        [System.Serializable]
 1278        public class SendSaveUserUnverifiedNamePayload
 1279        {
 1280            public string newUnverifiedName;
 1281        }
 1282
 1283        [System.Serializable]
 1284        public class SendSaveUserDescriptionPayload
 1285        {
 1286            public string description;
 1287
 01288            public SendSaveUserDescriptionPayload(string description) { this.description = description; }
 1289        }
 1290
 1291        [Serializable]
 1292        public class SendVideoProgressEvent
 1293        {
 1294            public string componentId;
 1295            public string sceneId;
 1296            public string videoTextureId;
 1297            public int status;
 1298            public float currentOffset;
 1299            public float videoLength;
 1300        }
 1301
 21302        public static void RequestOwnProfileUpdate() { SendMessage("RequestOwnProfileUpdate"); }
 1303
 1304        public static void SendSaveAvatar(AvatarModel avatar, Texture2D face256Snapshot, Texture2D bodySnapshot, bool is
 1305        {
 11306            var payload = new SaveAvatarPayload()
 1307            {
 1308                avatar = avatar,
 1309                face256 = System.Convert.ToBase64String(face256Snapshot.EncodeToPNG()),
 1310                body = System.Convert.ToBase64String(bodySnapshot.EncodeToPNG()),
 1311                isSignUpFlow = isSignUpFlow
 1312            };
 11313            SendMessage("SaveUserAvatar", payload);
 11314        }
 1315
 01316        public static void SendAuthentication(string rendererAuthenticationType) { SendMessage("SendAuthentication", new
 1317
 21318        public static void SendPassport(string name, string email) { SendMessage("SendPassport", new SendPassportPayload
 1319
 1320        public static void SendSaveUserUnverifiedName(string newName)
 1321        {
 01322            var payload = new SendSaveUserUnverifiedNamePayload()
 1323            {
 1324                newUnverifiedName = newName
 1325            };
 1326
 01327            SendMessage("SaveUserUnverifiedName", payload);
 01328        }
 1329
 01330        public static void SendSaveUserDescription(string about) { SendMessage("SaveUserDescription", new SendSaveUserDe
 1331
 21332        public static void SendUserAcceptedCollectibles(string airdropId) { SendMessage("UserAcceptedCollectibles", new 
 1333
 01334        public static void SaveUserTutorialStep(int newTutorialStep) { SendMessage("SaveUserTutorialStep", new TutorialS
 1335
 1336        public static void SendPerformanceReport(string performanceReportPayload)
 1337        {
 01338            SendJson("PerformanceReport", performanceReportPayload);
 01339        }
 1340
 01341        public static void SendSystemInfoReport() { SendMessage("SystemInfoReport", new SystemInfoReportPayload()); }
 1342
 1343        public static void SendTermsOfServiceResponse(string sceneId, bool accepted, bool dontShowAgain)
 1344        {
 21345            var payload = new TermsOfServiceResponsePayload()
 1346            {
 1347                sceneId = sceneId,
 1348                accepted = accepted,
 1349                dontShowAgain = dontShowAgain
 1350            };
 21351            SendMessage("TermsOfServiceResponse", payload);
 21352        }
 1353
 1354        public static void SendExpression(string expressionID, long timestamp)
 1355        {
 11356            SendMessage("TriggerExpression", new SendExpressionPayload()
 1357            {
 1358                id = expressionID,
 1359                timestamp = timestamp
 1360            });
 11361        }
 1362
 1363        public static void OpenURL(string url)
 1364        {
 1365#if UNITY_WEBGL
 31366            SendMessage("OpenWebURL", new OpenURLPayload { url = url });
 1367#else
 1368            Application.OpenURL(url);
 1369#endif
 31370        }
 1371
 21372        public static void PublishStatefulScene(ProtocolV2.PublishPayload payload) { MessageFromEngine("PublishSceneStat
 1373
 121374        public static void StartIsolatedMode(IsolatedConfig config) { MessageFromEngine("StartIsolatedMode", JsonConvert
 1375
 61376        public static void StopIsolatedMode(IsolatedConfig config) { MessageFromEngine("StopIsolatedMode", JsonConvert.S
 1377
 1378        public static void SendReportScene(string sceneID)
 1379        {
 11380            SendMessage("ReportScene", new SendReportScenePayload
 1381            {
 1382                sceneId = sceneID
 1383            });
 11384        }
 1385
 1386        public static void SetHomeScene(string sceneID)
 1387        {
 01388            SendMessage("SetHomeScene", new SetHomeScenePayload
 1389            {
 1390                sceneId = sceneID
 1391            });
 01392        }
 1393
 1394        public static void SendReportPlayer(string playerId, string playerName)
 1395        {
 11396            SendMessage("ReportPlayer", new SendReportPlayerPayload
 1397            {
 1398                userId = playerId,
 1399                name = playerName
 1400            });
 11401        }
 1402
 1403        public static void SendBlockPlayer(string userId)
 1404        {
 11405            SendMessage("BlockPlayer", new SendBlockPlayerPayload()
 1406            {
 1407                userId = userId
 1408            });
 11409        }
 1410
 1411        public static void SendUnblockPlayer(string userId)
 1412        {
 01413            SendMessage("UnblockPlayer", new SendUnblockPlayerPayload()
 1414            {
 1415                userId = userId
 1416            });
 01417        }
 1418
 1419        public static void RequestScenesInfoAroundParcel(Vector2 parcel, int maxScenesArea)
 1420        {
 51421            SendMessage("RequestScenesInfoInArea", new RequestScenesInfoAroundParcelPayload()
 1422            {
 1423                parcel = parcel,
 1424                scenesAround = maxScenesArea
 1425            });
 51426        }
 1427
 1428        public static void SendAudioStreamEvent(string url, bool play, float volume)
 1429        {
 271430            onAudioStreamingEvent.url = url;
 271431            onAudioStreamingEvent.play = play;
 271432            onAudioStreamingEvent.volume = volume;
 271433            SendMessage("SetAudioStream", onAudioStreamingEvent);
 271434        }
 1435
 21436        public static void JoinVoiceChat() { SendMessage("JoinVoiceChat"); }
 1437
 21438        public static void LeaveVoiceChat() { SendMessage("LeaveVoiceChat"); }
 1439
 1440        public static void SendSetVoiceChatRecording(bool recording)
 1441        {
 01442            setVoiceChatRecordingPayload.recording = recording;
 01443            SendMessage("SetVoiceChatRecording", setVoiceChatRecordingPayload);
 01444        }
 1445
 01446        public static void ToggleVoiceChatRecording() { SendMessage("ToggleVoiceChatRecording"); }
 1447
 1448        public static void ApplySettings(float voiceChatVolume, int voiceChatAllowCategory)
 1449        {
 61450            applySettingsPayload.voiceChatVolume = voiceChatVolume;
 61451            applySettingsPayload.voiceChatAllowCategory = voiceChatAllowCategory;
 61452            SendMessage("ApplySettings", applySettingsPayload);
 61453        }
 1454
 1455        public static void RequestGIFProcessor(string gifURL, string gifId, bool isWebGL1)
 1456        {
 01457            gifSetupPayload.imageSource = gifURL;
 01458            gifSetupPayload.id = gifId;
 01459            gifSetupPayload.isWebGL1 = isWebGL1;
 1460
 01461            SendMessage("RequestGIFProcessor", gifSetupPayload);
 01462        }
 1463
 1464        public static void DeleteGIF(string id)
 1465        {
 01466            stringPayload.value = id;
 01467            SendMessage("DeleteGIF", stringPayload);
 01468        }
 1469
 1470        public static void GoTo(int x, int y)
 1471        {
 31472            gotoEvent.x = x;
 31473            gotoEvent.y = y;
 31474            SendMessage("GoTo", gotoEvent);
 31475        }
 1476
 01477        public static void GoToCrowd() { SendMessage("GoToCrowd"); }
 1478
 01479        public static void GoToMagic() { SendMessage("GoToMagic"); }
 1480
 1481        public static void JumpIn(int x, int y, string serverName, string layerName)
 1482        {
 31483            jumpInPayload.realm.serverName = serverName;
 31484            jumpInPayload.realm.layer = layerName;
 1485
 31486            jumpInPayload.gridPosition.x = x;
 31487            jumpInPayload.gridPosition.y = y;
 1488
 31489            SendMessage("JumpIn", jumpInPayload);
 31490        }
 1491
 1492        public static void SendChatMessage(ChatMessage message)
 1493        {
 01494            sendChatMessageEvent.message = message;
 01495            SendMessage("SendChatMessage", sendChatMessageEvent);
 01496        }
 1497
 01498        public static void UpdateFriendshipStatus(FriendshipUpdateStatusMessage message) { SendMessage("UpdateFriendship
 1499
 01500        public static void ScenesLoadingFeedback(LoadingFeedbackMessage message) { SendMessage("ScenesLoadingFeedback", 
 1501
 01502        public static void FetchHotScenes() { SendMessage("FetchHotScenes"); }
 1503
 1504        public static void SetBaseResolution(int resolution)
 1505        {
 21506            baseResEvent.baseResolution = resolution;
 21507            SendMessage("SetBaseResolution", baseResEvent);
 21508        }
 1509
 01510        public static void ReportAnalyticsEvent(string eventName) { ReportAnalyticsEvent(eventName, null); }
 1511
 1512        public static void ReportAnalyticsEvent(string eventName, AnalyticsPayload.Property[] eventProperties)
 1513        {
 01514            analyticsEvent.name = eventName;
 01515            analyticsEvent.properties = eventProperties;
 01516            SendMessage("Track", analyticsEvent);
 01517        }
 1518
 41519        public static void FetchBalanceOfMANA() { SendMessage("FetchBalanceOfMANA"); }
 1520
 1521        public static void SendSceneExternalActionEvent(string sceneId, string type, string payload)
 1522        {
 01523            sceneExternalActionEvent.type = type;
 01524            sceneExternalActionEvent.payload = payload;
 01525            SendSceneEvent(sceneId, "externalAction", sceneExternalActionEvent);
 01526        }
 1527
 1528        public static void SetMuteUsers(string[] usersId, bool mute)
 1529        {
 41530            muteUserEvent.usersId = usersId;
 41531            muteUserEvent.mute = mute;
 41532            SendMessage("SetMuteUsers", muteUserEvent);
 41533        }
 1534
 1535        public static void SendCloseUserAvatar(bool isSignUpFlow)
 1536        {
 01537            closeUserAvatarPayload.isSignUpFlow = isSignUpFlow;
 01538            SendMessage("CloseUserAvatar", closeUserAvatarPayload);
 01539        }
 1540
 1541        // Warning: Use this method only for PEXs non-associated to smart wearables.
 1542        //          For PEX associated to smart wearables use 'SetDisabledPortableExperiences'.
 1543        public static void KillPortableExperience(string portableExperienceId)
 1544        {
 01545            killPortableExperiencePayload.portableExperienceId = portableExperienceId;
 01546            SendMessage("KillPortableExperience", killPortableExperiencePayload);
 01547        }
 1548
 1549        public static void RequestThirdPartyWearables(
 1550            string ownedByUser,
 1551            string thirdPartyCollectionId,
 1552            string context)
 1553        {
 11554            requestWearablesPayload.filters = new WearablesRequestFiltersPayload
 1555            {
 1556                ownedByUser = ownedByUser,
 1557                thirdPartyId = thirdPartyCollectionId,
 1558                collectionIds = null,
 1559                wearableIds = null
 1560            };
 1561
 11562            requestWearablesPayload.context = context;
 1563
 11564            SendMessage("RequestWearables", requestWearablesPayload);
 11565        }
 1566
 1567        public static void SetDisabledPortableExperiences(string[] idsToDisable)
 1568        {
 81569            setDisabledPortableExperiencesPayload.idsToDisable = idsToDisable;
 81570            SendMessage("SetDisabledPortableExperiences", setDisabledPortableExperiencesPayload);
 81571        }
 1572
 1573        public static void RequestWearables(
 1574            string ownedByUser,
 1575            string[] wearableIds,
 1576            string[] collectionIds,
 1577            string context)
 1578        {
 01579            requestWearablesPayload.filters = new WearablesRequestFiltersPayload
 1580            {
 1581                ownedByUser = ownedByUser,
 1582                wearableIds = wearableIds,
 1583                collectionIds = collectionIds,
 1584                thirdPartyId = null
 1585            };
 1586
 01587            requestWearablesPayload.context = context;
 1588
 01589            SendMessage("RequestWearables", requestWearablesPayload);
 01590        }
 1591
 1592        public static void RequestEmotes(
 1593            string ownedByUser,
 1594            string[] emoteIds,
 1595            string[] collectionIds,
 1596            string context)
 1597        {
 01598            requestEmotesPayload.filters = new EmotesRequestFiltersPayload()
 1599            {
 1600                ownedByUser = ownedByUser,
 1601                emoteIds = emoteIds,
 1602                collectionIds = collectionIds,
 1603                thirdPartyId = null
 1604            };
 1605
 01606            requestEmotesPayload.context = context;
 1607
 01608            SendMessage("RequestEmotes", requestEmotesPayload);
 01609        }
 1610
 1611        public static void SearchENSOwner(string name, int maxResults)
 1612        {
 61613            searchEnsOwnerPayload.name = name;
 61614            searchEnsOwnerPayload.maxResults = maxResults;
 1615
 61616            SendMessage("SearchENSOwner", searchEnsOwnerPayload);
 61617        }
 1618
 1619        public static void RequestHomeCoordinates()
 1620        {
 01621            SendMessage("RequestHomeCoordinates");
 01622        }
 1623
 1624        public static void RequestUserProfile(string userId)
 1625        {
 161626            stringPayload.value = userId;
 161627            SendMessage("RequestUserProfile", stringPayload);
 161628        }
 1629
 01630        public static void ReportAvatarFatalError() { SendMessage("ReportAvatarFatalError"); }
 1631
 1632        public static void UnpublishScene(Vector2Int sceneCoordinates)
 1633        {
 01634            var payload = new UnpublishScenePayload() { coordinates = $"{sceneCoordinates.x},{sceneCoordinates.y}" };
 01635            SendMessage("UnpublishScene", payload);
 01636        }
 1637
 1638        public static void NotifyStatusThroughChat(string message)
 1639        {
 01640            stringPayload.value = message;
 01641            SendMessage("NotifyStatusThroughChat", stringPayload);
 01642        }
 1643
 1644        public static void ReportVideoProgressEvent(
 1645            string componentId,
 1646            string sceneId,
 1647            string videoClipId,
 1648            int videoStatus,
 1649            float currentOffset,
 1650            float length)
 1651        {
 451652            SendVideoProgressEvent progressEvent = new SendVideoProgressEvent()
 1653            {
 1654                componentId = componentId,
 1655                sceneId = sceneId,
 1656                videoTextureId = videoClipId,
 1657                status = videoStatus,
 1658                currentOffset = currentOffset,
 1659                videoLength = length
 1660            };
 1661
 451662            SendMessage("VideoProgressEvent", progressEvent);
 451663        }
 1664
 1665        public static void ReportAvatarRemoved(string avatarId)
 1666        {
 01667            avatarStatePayload.type = "Removed";
 01668            avatarStatePayload.avatarShapeId = avatarId;
 01669            SendMessage("ReportAvatarState", avatarStatePayload);
 01670        }
 1671
 1672        public static void ReportAvatarSceneChanged(string avatarId, string sceneId)
 1673        {
 01674            avatarSceneChangedPayload.type = "SceneChanged";
 01675            avatarSceneChangedPayload.avatarShapeId = avatarId;
 01676            avatarSceneChangedPayload.sceneId = sceneId;
 01677            SendMessage("ReportAvatarState", avatarSceneChangedPayload);
 01678        }
 1679
 1680        public static void ReportAvatarClick(string sceneId, string userId, Vector3 rayOrigin, Vector3 rayDirection, flo
 1681        {
 01682            avatarOnClickPayload.userId = userId;
 01683            avatarOnClickPayload.ray.origin = rayOrigin;
 01684            avatarOnClickPayload.ray.direction = rayDirection;
 01685            avatarOnClickPayload.ray.distance = distance;
 1686
 01687            SendSceneEvent(sceneId, "playerClicked", avatarOnClickPayload);
 01688        }
 1689
 1690        public static void ReportOnPointerHoverEnterEvent(string sceneId, string uuid)
 1691        {
 41692            onPointerHoverEnterEvent.uuid = uuid;
 41693            SendSceneEvent(sceneId, "uuidEvent", onPointerHoverEnterEvent);
 41694        }
 1695
 1696        public static void ReportOnPointerHoverExitEvent(string sceneId, string uuid)
 1697        {
 11698            onPointerHoverExitEvent.uuid = uuid;
 11699            SendSceneEvent(sceneId, "uuidEvent", onPointerHoverExitEvent);
 11700        }
 1701
 1702        public static void ReportTime(float time, bool isPaused, float timeNormalizationFactor, float cycleTime)
 1703        {
 61704            timeReportPayload.time = time;
 61705            timeReportPayload.isPaused = isPaused;
 61706            timeReportPayload.timeNormalizationFactor = timeNormalizationFactor;
 61707            timeReportPayload.cycleTime = cycleTime;
 61708            SendMessage("ReportDecentralandTime", timeReportPayload);
 61709        }
 1710
 1711        public static void GetFriendsWithDirectMessages(string userNameOrId, int limit, int skip)
 1712        {
 01713            getFriendsWithDirectMessagesPayload.userNameOrId = userNameOrId;
 01714            getFriendsWithDirectMessagesPayload.limit = limit;
 01715            getFriendsWithDirectMessagesPayload.skip = skip;
 01716            SendMessage("GetFriendsWithDirectMessages", getFriendsWithDirectMessagesPayload);
 01717        }
 1718
 1719        public static void MarkMessagesAsSeen(string userId)
 1720        {
 21721            markMessagesAsSeenPayload.userId = userId;
 21722            SendMessage("MarkMessagesAsSeen", markMessagesAsSeenPayload);
 21723        }
 1724
 1725        public static void GetPrivateMessages(string userId, int limit, string fromMessageId)
 1726        {
 01727            getPrivateMessagesPayload.userId = userId;
 01728            getPrivateMessagesPayload.limit = limit;
 01729            getPrivateMessagesPayload.fromMessageId = fromMessageId;
 01730            SendMessage("GetPrivateMessages", getPrivateMessagesPayload);
 01731        }
 1732
 1733        public static void GetUnseenMessagesByUser()
 1734        {
 01735            SendMessage("GetUnseenMessagesByUser");
 01736        }
 1737
 1738        public static void GetFriends(int limit, int skip)
 1739        {
 01740            SendMessage("GetFriends", new GetFriendsPayload
 1741            {
 1742                limit = limit,
 1743                skip = skip
 1744            });
 01745        }
 1746
 1747        public static void GetFriends(string usernameOrId, int limit)
 1748        {
 01749            SendMessage("GetFriends", new GetFriendsPayload
 1750            {
 1751                userNameOrId = usernameOrId,
 1752                limit = limit
 1753            });
 01754        }
 1755
 1756        public static void GetFriendRequests(int sentLimit, int sentSkip, int receivedLimit, int receivedSkip)
 1757        {
 01758            SendMessage("GetFriendRequests", new GetFriendRequestsPayload
 1759            {
 1760                receivedSkip = receivedSkip,
 1761                receivedLimit = receivedLimit,
 1762                sentSkip = sentSkip,
 1763                sentLimit = sentLimit
 1764            });
 01765        }
 1766    }
 1767}

Methods/Properties

WebInterface()
SceneReady(System.String)
ActivateRenderingACK()
DeactivateRenderingACK()
OnGlobalPointerEvent()
StoreSceneStateEvent()
OnTextInputChangeTextEventPayload()
operator+(DCL.Interface.WebInterface/MetricsModel, DCL.Interface.WebInterface/MetricsModel)
OnMetricsUpdate()
TransformPayload()
SystemInfoReportPayload()
JumpInPayload()
Property(System.String, System.String)
HeadersPayload()
AvatarOnClickPayload()
OnMessageFromEngine(System.Action[String,String])
OnMessageFromEngine()
StartDecentraland()
CheckURLParam(System.String)
GetURLParam(System.String)
MessageFromEngine(System.String, System.String)
ProcessQueuedMessages()
GetGraphicCard()
SendMessage(System.String)
SendMessage[T](System.String, T)
SendJson(System.String, System.String)
SendSceneEvent[T](System.String, System.String, T)
SendAllScenesEvent[T](System.String, T)
ReportPosition(UnityEngine.Vector3, UnityEngine.Quaternion, System.Single, UnityEngine.Quaternion)
ReportCameraChanged(DCL.CameraTool.CameraMode/ModeId)
ReportCameraChanged(DCL.CameraTool.CameraMode/ModeId, System.String)
Web3UseResponse(System.String, System.Boolean)
ReportIdleStateChanged(System.Boolean)
ReportControlEvent[T](T)
SendRequestHeadersForUrl(System.String, System.String, System.String, System.Collections.Generic.Dictionary[String,Object])
BuilderInWorldMessage(System.String, System.String)
ReportOnClickEvent(System.String, System.String)
ReportRaycastResult[T, P](System.String, System.String, System.String, P)
ReportRaycastHitFirstResult(System.String, System.String, DCL.Models.RaycastType, DCL.Interface.WebInterface/RaycastHitEntity)
ReportRaycastHitAllResult(System.String, System.String, DCL.Models.RaycastType, DCL.Interface.WebInterface/RaycastHitEntities)
CreateHitObject(System.String, System.String, UnityEngine.Vector3, UnityEngine.Vector3, System.Single)
SetPointerEventPayload(DCL.Interface.WebInterface/OnPointerEventPayload, DCL.Interface.WebInterface/ACTION_BUTTON, System.String, System.String, UnityEngine.Ray, UnityEngine.Vector3, UnityEngine.Vector3, System.Single, System.Boolean)
ReportGlobalPointerDownEvent(DCL.Interface.WebInterface/ACTION_BUTTON, UnityEngine.Ray, UnityEngine.Vector3, UnityEngine.Vector3, System.Single, System.String, System.String, System.String, System.Boolean)
ReportGlobalPointerUpEvent(DCL.Interface.WebInterface/ACTION_BUTTON, UnityEngine.Ray, UnityEngine.Vector3, UnityEngine.Vector3, System.Single, System.String, System.String, System.String, System.Boolean)
ReportOnPointerDownEvent(DCL.Interface.WebInterface/ACTION_BUTTON, System.String, System.String, System.String, System.String, UnityEngine.Ray, UnityEngine.Vector3, UnityEngine.Vector3, System.Single)
ReportOnPointerUpEvent(DCL.Interface.WebInterface/ACTION_BUTTON, System.String, System.String, System.String, System.String, UnityEngine.Ray, UnityEngine.Vector3, UnityEngine.Vector3, System.Single)
ReportOnTextSubmitEvent(System.String, System.String, System.String)
ReportOnTextInputChangedEvent(System.String, System.String, System.String)
ReportOnTextInputChangedTextEvent(System.String, System.String, System.String, System.Boolean)
ReportOnFocusEvent(System.String, System.String)
ReportOnBlurEvent(System.String, System.String)
ReportOnScrollChange(System.String, System.String, UnityEngine.Vector2, System.Int32)
ReportEvent[T](System.String, T)
ReportOnMetricsUpdate(System.String, DCL.Interface.WebInterface/MetricsModel, DCL.Interface.WebInterface/MetricsModel)
ReportOnEnterEvent(System.String, System.String)
LogOut()
RedirectToSignUp()
PreloadFinished(System.String)
ReportMousePosition(UnityEngine.Vector3, System.String)
SendScreenshot(System.String, System.String)
SetDelightedSurveyEnabled(System.Boolean)
SetScenesLoadRadius(System.Single)
Guest()
WalletConnect()
SendSaveUserDescriptionPayload(System.String)
RequestOwnProfileUpdate()
SendSaveAvatar(AvatarModel, UnityEngine.Texture2D, UnityEngine.Texture2D, System.Boolean)
SendAuthentication(System.String)
SendPassport(System.String, System.String)
SendSaveUserUnverifiedName(System.String)
SendSaveUserDescription(System.String)
SendUserAcceptedCollectibles(System.String)
SaveUserTutorialStep(System.Int32)
SendPerformanceReport(System.String)
SendSystemInfoReport()
SendTermsOfServiceResponse(System.String, System.Boolean, System.Boolean)
SendExpression(System.String, System.Int64)
OpenURL(System.String)
PublishStatefulScene(ProtocolV2/PublishPayload)
StartIsolatedMode(IsolatedConfig)
StopIsolatedMode(IsolatedConfig)
SendReportScene(System.String)
SetHomeScene(System.String)
SendReportPlayer(System.String, System.String)
SendBlockPlayer(System.String)
SendUnblockPlayer(System.String)
RequestScenesInfoAroundParcel(UnityEngine.Vector2, System.Int32)
SendAudioStreamEvent(System.String, System.Boolean, System.Single)
JoinVoiceChat()
LeaveVoiceChat()
SendSetVoiceChatRecording(System.Boolean)
ToggleVoiceChatRecording()
ApplySettings(System.Single, System.Int32)
RequestGIFProcessor(System.String, System.String, System.Boolean)
DeleteGIF(System.String)
GoTo(System.Int32, System.Int32)
GoToCrowd()
GoToMagic()
JumpIn(System.Int32, System.Int32, System.String, System.String)
SendChatMessage(DCL.Interface.ChatMessage)
UpdateFriendshipStatus(DCL.Interface.WebInterface/FriendshipUpdateStatusMessage)
ScenesLoadingFeedback(DCL.Interface.WebInterface/LoadingFeedbackMessage)
FetchHotScenes()
SetBaseResolution(System.Int32)
ReportAnalyticsEvent(System.String)
ReportAnalyticsEvent(System.String, DCL.Interface.WebInterface/AnalyticsPayload/Property[])
FetchBalanceOfMANA()
SendSceneExternalActionEvent(System.String, System.String, System.String)
SetMuteUsers(System.String[], System.Boolean)
SendCloseUserAvatar(System.Boolean)
KillPortableExperience(System.String)
RequestThirdPartyWearables(System.String, System.String, System.String)
SetDisabledPortableExperiences(System.String[])
RequestWearables(System.String, System.String[], System.String[], System.String)
RequestEmotes(System.String, System.String[], System.String[], System.String)
SearchENSOwner(System.String, System.Int32)
RequestHomeCoordinates()
RequestUserProfile(System.String)
ReportAvatarFatalError()
UnpublishScene(UnityEngine.Vector2Int)
NotifyStatusThroughChat(System.String)
ReportVideoProgressEvent(System.String, System.String, System.String, System.Int32, System.Single, System.Single)
ReportAvatarRemoved(System.String)
ReportAvatarSceneChanged(System.String, System.String)
ReportAvatarClick(System.String, System.String, UnityEngine.Vector3, UnityEngine.Vector3, System.Single)
ReportOnPointerHoverEnterEvent(System.String, System.String)
ReportOnPointerHoverExitEvent(System.String, System.String)
ReportTime(System.Single, System.Boolean, System.Single, System.Single)
GetFriendsWithDirectMessages(System.String, System.Int32, System.Int32)
MarkMessagesAsSeen(System.String)
GetPrivateMessages(System.String, System.Int32, System.String)
GetUnseenMessagesByUser()
GetFriends(System.Int32, System.Int32)
GetFriends(System.String, System.Int32)
GetFriendRequests(System.Int32, System.Int32, System.Int32, System.Int32)