< Summary

Class:DCL.Interface.WebInterface
Assembly:WebInterface
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/WebInterface/Interface.cs
Covered lines:254
Uncovered lines:230
Coverable lines:484
Total lines:1931
Line coverage:52.4% (254 of 484)
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%110100%
StoreSceneStateEvent()0%110100%
OnTextInputChangeTextEventPayload()0%110100%
operator+(...)0%2100%
OnMetricsUpdate()0%110100%
TransformPayload()0%2100%
SystemInfoReportPayload()0%2100%
JumpInPayload()0%110100%
Property(...)0%2100%
HeadersPayload()0%110100%
AvatarOnClickPayload()0%110100%
StartDecentraland()0%2100%
CheckURLParam(...)0%2100%
GetURLParam(...)0%2100%
MessageFromEngine(...)0%5.155081.82%
ProcessQueuedMessages()0%330100%
GetGraphicCard()0%110100%
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%2100%
ReportOnClickEvent(...)0%2.032080%
ReportRaycastResult[T, P](...)0%2100%
ReportRaycastHitFirstResult(...)0%2100%
ReportRaycastHitAllResult(...)0%2100%
CreateHitObject(...)0%110100%
SetPointerEventPayload(...)0%220100%
ReportGlobalPointerEvent(...)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%2100%
SendSaveAvatar(...)0%110100%
SendAuthentication(...)0%2100%
SendPassport(...)0%110100%
SendSaveUserUnverifiedName(...)0%2100%
SendSaveUserDescription(...)0%2100%
SendRequestUserProfile(...)0%2100%
SendUserAcceptedCollectibles(...)0%110100%
SaveUserTutorialStep(...)0%2100%
SendPerformanceReport(...)0%2100%
SendSystemInfoReport()0%2100%
SendTermsOfServiceResponse(...)0%110100%
OpenURL(...)0%110100%
PublishStatefulScene(...)0%2100%
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%2100%
GoToCrowd()0%2100%
GoToMagic()0%2100%
LoadingHUDReadyForTeleport(...)0%2100%
JumpIn(...)0%2100%
JumpInHome(...)0%2100%
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%2100%
ReportAvatarFatalError(...)0%2100%
UnpublishScene(...)0%2100%
NotifyStatusThroughChat(...)0%2100%
ReportVideoProgressEvent(...)0%330100%
ReportAvatarRemoved(...)0%2100%
ReportAvatarSceneChanged(...)0%2100%
ReportAvatarClick(...)0%2100%
ReportOnPointerHoverEnterEvent(...)0%110100%
ReportOnPointerHoverExitEvent(...)0%110100%
ReportTime(...)0%110100%
GetFriendsWithDirectMessages(...)0%2100%
MarkMessagesAsSeen(...)0%2100%
GetPrivateMessages(...)0%2100%
MarkChannelMessagesAsSeen(...)0%2100%
GetUnseenMessagesByUser()0%2100%
GetUnseenMessagesByChannel()0%2100%
GetFriends(...)0%2100%
GetFriends(...)0%2100%
LeaveChannel(...)0%2100%
CreateChannel(...)0%2100%
JoinOrCreateChannel(...)0%2100%
GetChannelMessages(...)0%2100%
GetJoinedChannels(...)0%2100%
GetChannels(...)0%2100%
GetChannelInfo(...)0%2100%
GetChannelMembers(...)0%2100%
MuteChannel(...)0%2100%
UpdateMemoryUsage()0%2100%
RequestAudioDevices()0%2100%
SetInputAudioDevice(...)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.Models;
 5using Newtonsoft.Json;
 6using System.Linq;
 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
 52468            public SceneReady(int sceneNumber) : base("SceneReady", new Payload() { sceneNumber = sceneNumber }) { }
 69
 70            [System.Serializable]
 71            public class Payload
 72            {
 73                public int sceneNumber;
 74            }
 75        }
 76
 77        [System.Serializable]
 78        public class ActivateRenderingACK : ControlEvent<object>
 79        {
 080            public ActivateRenderingACK() : base("ActivateRenderingACK", null) { }
 81        }
 82
 83        [System.Serializable]
 84        public class DeactivateRenderingACK : ControlEvent<object>
 85        {
 086            public DeactivateRenderingACK() : base("DeactivateRenderingACK", null) { }
 87        }
 88
 89        [System.Serializable]
 90        public class SceneEvent<T>
 91        {
 92            public int sceneNumber;
 93            public string eventType;
 94            public T payload;
 95        }
 96
 97        [System.Serializable]
 98        public class AllScenesEvent<T>
 99        {
 100            public string eventType;
 101            public T payload;
 102        }
 103
 104        [System.Serializable]
 105        public class UUIDEvent<TPayload>
 106            where TPayload : class, new()
 107        {
 108            public string uuid;
 109            public TPayload payload = new TPayload();
 110        }
 111
 112        private static IEnumerable<ACTION_BUTTON> concreteActionButtons;
 113        public static IEnumerable<ACTION_BUTTON> ConcreteActionButtons =>
 170114            concreteActionButtons ??= Enum.GetValues(typeof(ACTION_BUTTON)).Cast<ACTION_BUTTON>()
 2380115                                          .Where(actionButton => actionButton != ACTION_BUTTON.ANY);
 116
 117        public enum ACTION_BUTTON
 118        {
 119            POINTER = 0,
 120            PRIMARY = 1,
 121            SECONDARY = 2,
 122            ANY = 3,
 123            FORWARD = 4,
 124            BACKWARD = 5,
 125            RIGHT = 6,
 126            LEFT = 7,
 127            JUMP = 8,
 128            WALK = 9,
 129            ACTION_3 = 10,
 130            ACTION_4 = 11,
 131            ACTION_5 = 12,
 132            ACTION_6 = 13
 133        }
 134
 135        [System.Serializable]
 136        public class OnClickEvent : UUIDEvent<OnClickEventPayload> { };
 137
 138        [System.Serializable]
 139        public class CameraModePayload
 140        {
 141            public CameraMode.ModeId cameraMode;
 142        };
 143
 144        [System.Serializable]
 145        public class Web3UseResponsePayload
 146        {
 147            public string id;
 148            public bool result;
 149        };
 150
 151        [System.Serializable]
 152        public class IdleStateChangedPayload
 153        {
 154            public bool isIdle;
 155        };
 156
 157        [System.Serializable]
 158        public class OnPointerDownEvent : UUIDEvent<OnPointerEventPayload> { };
 159
 160        [System.Serializable]
 161        public class OnGlobalPointerEvent
 162        {
 1163            public OnGlobalPointerEventPayload payload = new OnGlobalPointerEventPayload();
 164        };
 165
 166        [System.Serializable]
 167        public class OnPointerUpEvent : UUIDEvent<OnPointerEventPayload> { };
 168
 169        [System.Serializable]
 170        private class OnTextSubmitEvent : UUIDEvent<OnTextSubmitEventPayload> { };
 171
 172        [System.Serializable]
 173        private class OnTextInputChangeEvent : UUIDEvent<OnTextInputChangeEventPayload> { };
 174
 175        [System.Serializable]
 176        private class OnTextInputChangeTextEvent : UUIDEvent<OnTextInputChangeTextEventPayload> { };
 177
 178        [System.Serializable]
 179        private class OnScrollChangeEvent : UUIDEvent<OnScrollChangeEventPayload> { };
 180
 181        [System.Serializable]
 182        private class OnFocusEvent : UUIDEvent<EmptyPayload> { };
 183
 184        [System.Serializable]
 185        private class OnBlurEvent : UUIDEvent<EmptyPayload> { };
 186
 187        [System.Serializable]
 188        public class OnEnterEvent : UUIDEvent<OnEnterEventPayload> { };
 189
 190        [System.Serializable]
 191        public class OnClickEventPayload
 192        {
 193            public ACTION_BUTTON buttonId = ACTION_BUTTON.POINTER;
 194        }
 195
 196        [System.Serializable]
 197        public class SendChatMessageEvent
 198        {
 199            public ChatMessage message;
 200        }
 201
 202        [System.Serializable]
 203        public class RemoveEntityComponentsPayLoad
 204        {
 205            public string entityId;
 206            public string componentId;
 207        };
 208
 209        [System.Serializable]
 210        public class StoreSceneStateEvent
 211        {
 1212            public string type = "StoreSceneState";
 1213            public string payload = "";
 214        };
 215
 216        [System.Serializable]
 217        public class OnPointerEventPayload
 218        {
 219
 220            public ACTION_BUTTON buttonId;
 221            public Vector3 origin;
 222            public Vector3 direction;
 223            public Hit hit;
 224
 225            [System.Serializable]
 226            public class Hit
 227            {
 228                public Vector3 origin;
 229                public float length;
 230                public Vector3 hitPoint;
 231                public Vector3 normal;
 232                public Vector3 worldNormal;
 233                public string meshName;
 234                public string entityId;
 235            }
 236        }
 237
 238        [System.Serializable]
 239        public class OnGlobalPointerEventPayload : OnPointerEventPayload
 240        {
 241            public enum InputEventType
 242            {
 243                DOWN,
 244                UP
 245            }
 246
 247            public InputEventType type;
 248        }
 249
 250        [System.Serializable]
 251        public class OnTextSubmitEventPayload
 252        {
 253            public string id;
 254            public string text;
 255        }
 256
 257        [System.Serializable]
 258        public class OnTextInputChangeEventPayload
 259        {
 260            public string value;
 261        }
 262
 263        [System.Serializable]
 264        public class OnTextInputChangeTextEventPayload
 265        {
 266
 3267            public Payload value = new Payload();
 268
 269            [System.Serializable]
 270            public class Payload
 271            {
 272                public string value;
 273                public bool isSubmit;
 274            }
 275        }
 276
 277        [System.Serializable]
 278        public class OnScrollChangeEventPayload
 279        {
 280            public Vector2 value;
 281            public int pointerId;
 282        }
 283
 284        [System.Serializable]
 285        public class EmptyPayload { }
 286
 287        [System.Serializable]
 288        public class MetricsModel
 289        {
 290            public int meshes;
 291            public int bodies;
 292            public int materials;
 293            public int textures;
 294            public int triangles;
 295            public int entities;
 296
 297            public static MetricsModel operator +(MetricsModel lhs, MetricsModel rhs)
 298            {
 0299                return new MetricsModel()
 300                {
 301                    meshes = lhs.meshes + rhs.meshes,
 302                    bodies = lhs.bodies + rhs.bodies,
 303                    materials = lhs.materials + rhs.materials,
 304                    textures = lhs.textures + rhs.textures,
 305                    triangles = lhs.triangles + rhs.triangles,
 306                    entities = lhs.entities + rhs.entities
 307                };
 308            }
 309        }
 310
 311        [System.Serializable]
 312        private class OnMetricsUpdate
 313        {
 1314            public MetricsModel given = new MetricsModel();
 1315            public MetricsModel limit = new MetricsModel();
 316        }
 317
 318        [System.Serializable]
 319        public class OnEnterEventPayload { }
 320
 321        [System.Serializable]
 322        public class TransformPayload
 323        {
 0324            public Vector3 position = Vector3.zero;
 0325            public Quaternion rotation = Quaternion.identity;
 0326            public Vector3 scale = Vector3.one;
 327        }
 328
 329        public class OnSendScreenshot
 330        {
 331            public string encodedTexture;
 332            public string id;
 333        };
 334
 335        [System.Serializable]
 336        public class GotoEvent
 337        {
 338            public int x;
 339            public int y;
 340        };
 341
 342        [System.Serializable]
 343        public class BaseResolution
 344        {
 345            public int baseResolution;
 346        };
 347
 348        //-----------------------------------------------------
 349        // Raycast
 350        [System.Serializable]
 351        public class RayInfo
 352        {
 353            public Vector3 origin;
 354            public Vector3 direction;
 355            public float distance;
 356        }
 357
 358        [System.Serializable]
 359        public class RaycastHitInfo
 360        {
 361            public bool didHit;
 362            public RayInfo ray;
 363
 364            public Vector3 hitPoint;
 365            public Vector3 hitNormal;
 366        }
 367
 368        [System.Serializable]
 369        public class HitEntityInfo
 370        {
 371            public string entityId;
 372            public string meshName;
 373        }
 374
 375        [System.Serializable]
 376        public class RaycastHitEntity : RaycastHitInfo
 377        {
 378            public HitEntityInfo entity;
 379        }
 380
 381        [System.Serializable]
 382        public class RaycastHitEntities : RaycastHitInfo
 383        {
 384            public RaycastHitEntity[] entities;
 385        }
 386
 387        [System.Serializable]
 388        public class RaycastResponse<T> where T : RaycastHitInfo
 389        {
 390            public string queryId;
 391            public string queryType;
 392            public T payload;
 393        }
 394
 395        // Note (Zak): We need to explicitly define this classes for the JsonUtility to
 396        // be able to serialize them
 397        [System.Serializable]
 398        public class RaycastHitFirstResponse : RaycastResponse<RaycastHitEntity> { }
 399
 400        [System.Serializable]
 401        public class RaycastHitAllResponse : RaycastResponse<RaycastHitEntities> { }
 402
 403        [System.Serializable]
 404        public class UserAcceptedCollectiblesPayload
 405        {
 406            public string id;
 407        }
 408
 409        [System.Serializable]
 410        public class SendBlockPlayerPayload
 411        {
 412            public string userId;
 413        }
 414
 415        [Serializable]
 416        private class SendReportPlayerPayload
 417        {
 418            public string userId;
 419            public string name;
 420        }
 421
 422        [Serializable]
 423        private class SendReportScenePayload
 424        {
 425            public int sceneNumber;
 426        }
 427
 428        [Serializable]
 429        private class SetHomeScenePayload
 430        {
 431            public string sceneCoords;
 432        }
 433
 434        [System.Serializable]
 435        public class SendUnblockPlayerPayload
 436        {
 437            public string userId;
 438        }
 439
 440        [System.Serializable]
 441        public class TutorialStepPayload
 442        {
 443            public int tutorialStep;
 444        }
 445
 446        [System.Serializable]
 447        public class PerformanceReportPayload
 448        {
 449            public string samples;
 450            public bool fpsIsCapped;
 451            public int hiccupsInThousandFrames;
 452            public float hiccupsTime;
 453            public float totalTime;
 454            public int gltfInProgress;
 455            public int gltfFailed;
 456            public int gltfCancelled;
 457            public int gltfLoaded;
 458            public int abInProgress;
 459            public int abFailed;
 460            public int abCancelled;
 461            public int abLoaded;
 462            public int gltfTexturesLoaded;
 463            public int abTexturesLoaded;
 464            public int promiseTexturesLoaded;
 465            public int enqueuedMessages;
 466            public int processedMessages;
 467            public int playerCount;
 468            public int loadRadius;
 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            public Dictionary<int, long> sceneScores;
 474
 475            //* is NULL if SendProfilerMetrics is false
 476        }
 477
 478        [System.Serializable]
 479        public class SystemInfoReportPayload
 480        {
 0481            public string graphicsDeviceName = SystemInfo.graphicsDeviceName;
 0482            public string graphicsDeviceVersion = SystemInfo.graphicsDeviceVersion;
 0483            public int graphicsMemorySize = SystemInfo.graphicsMemorySize;
 0484            public string processorType = SystemInfo.processorType;
 0485            public int processorCount = SystemInfo.processorCount;
 0486            public int systemMemorySize = SystemInfo.systemMemorySize;
 487
 488            // TODO: remove useBinaryTransform after ECS7 is fully in prod
 0489            public bool useBinaryTransform = true;
 490        }
 491
 492        [System.Serializable]
 493        public class GenericAnalyticPayload
 494        {
 495            public string eventName;
 496            public Dictionary<object, object> data;
 497        }
 498
 499        [System.Serializable]
 500        public class PerformanceHiccupPayload
 501        {
 502            public int hiccupsInThousandFrames;
 503            public float hiccupsTime;
 504            public float totalTime;
 505        }
 506
 507        [System.Serializable]
 508        public class TermsOfServiceResponsePayload
 509        {
 510            public int sceneNumber;
 511            public bool dontShowAgain;
 512            public bool accepted;
 513        }
 514
 515        [System.Serializable]
 516        public class OpenURLPayload
 517        {
 518            public string url;
 519        }
 520
 521        [System.Serializable]
 522        public class GIFSetupPayload
 523        {
 524            public string imageSource;
 525            public string id;
 526            public bool isWebGL1;
 527        }
 528
 529        [System.Serializable]
 530        public class RequestScenesInfoAroundParcelPayload
 531        {
 532            public Vector2 parcel;
 533            public int scenesAround;
 534        }
 535
 536        [System.Serializable]
 537        public class AudioStreamingPayload
 538        {
 539            public string url;
 540            public bool play;
 541            public float volume;
 542        }
 543
 544        [System.Serializable]
 545        public class SetScenesLoadRadiusPayload
 546        {
 547            public float newRadius;
 548        }
 549
 550        [System.Serializable]
 551        public class SetVoiceChatRecordingPayload
 552        {
 553            public bool recording;
 554        }
 555
 556        [System.Serializable]
 557        public class ApplySettingsPayload
 558        {
 559            public float voiceChatVolume;
 560            public int voiceChatAllowCategory;
 561        }
 562
 563        [Serializable]
 564        public class UserRealmPayload
 565        {
 566            public string serverName;
 567            public string layer;
 568        }
 569
 570        [System.Serializable]
 571        public class JumpInPayload
 572        {
 1573            public UserRealmPayload realm = new UserRealmPayload();
 574            public Vector2 gridPosition;
 575        }
 576
 577        [System.Serializable]
 578        public class LoadingFeedbackMessage
 579        {
 580            public string message;
 581            public int loadPercentage;
 582        }
 583
 584        [System.Serializable]
 585        public class AnalyticsPayload
 586        {
 587
 588            public string name;
 589            public Property[] properties;
 590
 591            [System.Serializable]
 592            public class Property
 593            {
 594                public string key;
 595                public string value;
 596
 0597                public Property(string key, string value)
 598                {
 0599                    this.key = key;
 0600                    this.value = value;
 0601                }
 602            }
 603        }
 604
 605        [System.Serializable]
 606        public class DelightedSurveyEnabledPayload
 607        {
 608            public bool enabled;
 609        }
 610
 611        [System.Serializable]
 612        public class ExternalActionSceneEventPayload
 613        {
 614            public string type;
 615            public string payload;
 616        }
 617
 618        [System.Serializable]
 619        public class MuteUserPayload
 620        {
 621            public string[] usersId;
 622            public bool mute;
 623        }
 624
 625        [System.Serializable]
 626        public class CloseUserAvatarPayload
 627        {
 628            public bool isSignUpFlow;
 629        }
 630
 631        [System.Serializable]
 632        public class StringPayload
 633        {
 634            public string value;
 635        }
 636
 637        [System.Serializable]
 638        public class KillPortableExperiencePayload
 639        {
 640            public string portableExperienceId;
 641        }
 642
 643        [System.Serializable]
 644        public class SetDisabledPortableExperiencesPayload
 645        {
 646            public string[] idsToDisable;
 647        }
 648
 649        [System.Serializable]
 650        public class WearablesRequestFiltersPayload
 651        {
 652            public string ownedByUser;
 653            public string[] wearableIds;
 654            public string[] collectionIds;
 655            public string thirdPartyId;
 656        }
 657
 658        [System.Serializable]
 659        public class EmotesRequestFiltersPayload
 660        {
 661            public string ownedByUser;
 662            public string[] emoteIds;
 663            public string[] collectionIds;
 664            public string thirdPartyId;
 665        }
 666
 667        [System.Serializable]
 668        public class RequestWearablesPayload
 669        {
 670            public WearablesRequestFiltersPayload filters;
 671            public string context;
 672        }
 673
 674        [System.Serializable]
 675        public class RequestEmotesPayload
 676        {
 677            public EmotesRequestFiltersPayload filters;
 678            public string context;
 679        }
 680
 681        [System.Serializable]
 682        public class HeadersPayload
 683        {
 684            public string method;
 685            public string url;
 1686            public Dictionary<string, object> metadata = new Dictionary<string, object>();
 687        }
 688
 689        [System.Serializable]
 690        public class SearchENSOwnerPayload
 691        {
 692            public string name;
 693            public int maxResults;
 694        }
 695
 696        [System.Serializable]
 697        public class UnpublishScenePayload
 698        {
 699            public string coordinates;
 700        }
 701
 702        [System.Serializable]
 703        public class AvatarStateBase
 704        {
 705            public string type;
 706            public string avatarShapeId;
 707        }
 708
 709        [System.Serializable]
 710        public class AvatarStateSceneChanged : AvatarStateBase
 711        {
 712            public int sceneNumber;
 713        }
 714
 715        [System.Serializable]
 716        public class AvatarOnClickPayload
 717        {
 718            public string userId;
 1719            public RayInfo ray = new RayInfo();
 720        }
 721
 722        [System.Serializable]
 723        public class TimeReportPayload
 724        {
 725            public float timeNormalizationFactor;
 726            public float cycleTime;
 727            public bool isPaused;
 728            public float time;
 729        }
 730
 731        [System.Serializable]
 732        public class GetFriendsWithDirectMessagesPayload
 733        {
 734            public string userNameOrId;
 735            public int limit;
 736            public int skip;
 737        }
 738
 739        [System.Serializable]
 740        public class MarkMessagesAsSeenPayload
 741        {
 742            public string userId;
 743        }
 744
 745        [System.Serializable]
 746        public class MarkChannelMessagesAsSeenPayload
 747        {
 748            public string channelId;
 749        }
 750
 751        [System.Serializable]
 752        public class GetPrivateMessagesPayload
 753        {
 754            public string userId;
 755            public int limit;
 756            public string fromMessageId;
 757        }
 758
 759        [Serializable]
 760        public class FriendshipUpdateStatusMessage
 761        {
 762            public string userId;
 763            public FriendshipAction action;
 764        }
 765
 766        [Serializable]
 767        public class SetInputAudioDevicePayload
 768        {
 769            public string deviceId;
 770        }
 771
 772        public enum FriendshipAction
 773        {
 774            NONE,
 775            APPROVED,
 776            REJECTED,
 777            CANCELLED,
 778            REQUESTED_FROM,
 779            REQUESTED_TO,
 780            DELETED
 781        }
 782
 783        [Serializable]
 784        private class GetFriendsPayload
 785        {
 786            public string userNameOrId;
 787            public int limit;
 788            public int skip;
 789        }
 790
 791        [Serializable]
 792        private class LeaveChannelPayload
 793        {
 794            public string channelId;
 795        }
 796
 797        [Serializable]
 798        private class CreateChannelPayload
 799        {
 800            public string channelId;
 801        }
 802
 803        public struct MuteChannelPayload
 804        {
 805            public string channelId;
 806            public bool muted;
 807        }
 808
 809        [Serializable]
 810        private class JoinOrCreateChannelPayload
 811        {
 812            public string channelId;
 813        }
 814
 815        [Serializable]
 816        private class GetChannelMessagesPayload
 817        {
 818            public string channelId;
 819            public int limit;
 820            public string from;
 821        }
 822
 823        [Serializable]
 824        private class GetJoinedChannelsPayload
 825        {
 826            public int limit;
 827            public int skip;
 828        }
 829
 830        [Serializable]
 831        private class GetChannelsPayload
 832        {
 833            public int limit;
 834            public string since;
 835            public string name;
 836        }
 837
 838        [Serializable]
 839        private class GetChannelInfoPayload
 840        {
 841            public string[] channelIds;
 842        }
 843
 844        [Serializable]
 845        private class GetChannelMembersPayload
 846        {
 847            public string channelId;
 848            public int limit;
 849            public int skip;
 850            public string userName;
 851        }
 852
 853        [Serializable]
 854        private class ErrorPayload
 855        {
 856            public string error;
 857        }
 858
 859        public static event Action<string, byte[]> OnBinaryMessageFromEngine;
 860
 861#if UNITY_WEBGL && !UNITY_EDITOR
 862    /**
 863     * This method is called after the first render. It marks the loading of the
 864     * rest of the JS client.
 865     */
 866    [DllImport("__Internal")] public static extern void StartDecentraland();
 867    [DllImport("__Internal")] public static extern void MessageFromEngine(string type, string message);
 868    [DllImport("__Internal")] public static extern string GetGraphicCard();
 869
 870    public static System.Action<string, string> OnMessageFromEngine;
 871#else
 872        public static Action<string, string> OnMessageFromEngine
 873        {
 874            set
 875            {
 64876                OnMessage = value;
 64877                if (OnMessage != null)
 878                {
 32879                    ProcessQueuedMessages();
 880                }
 64881            }
 3868882            get => OnMessage;
 883        }
 884        private static Action<string, string> OnMessage;
 885
 1886        private static bool hasQueuedMessages = false;
 1887        private static List<(string, string)> queuedMessages = new List<(string, string)>();
 0888        public static void StartDecentraland() { }
 0889        public static bool CheckURLParam(string targetParam) { return false; }
 0890        public static string GetURLParam(string targetParam) { return String.Empty; }
 891
 892        public static void MessageFromEngine(string type, string message)
 893        {
 2526894            if (OnMessageFromEngine != null)
 895            {
 1278896                if (hasQueuedMessages)
 897                {
 0898                    ProcessQueuedMessages();
 899                }
 900
 1278901                OnMessageFromEngine.Invoke(type, message);
 1278902                if (VERBOSE)
 903                {
 0904                    Debug.Log("MessageFromEngine called with: " + type + ", " + message);
 905                }
 906            }
 907            else
 908            {
 1248909                lock (queuedMessages)
 910                {
 1248911                    queuedMessages.Add((type, message));
 1248912                }
 913
 1248914                hasQueuedMessages = true;
 915            }
 2526916        }
 917
 918        private static void ProcessQueuedMessages()
 919        {
 32920            hasQueuedMessages = false;
 32921            lock (queuedMessages)
 922            {
 2506923                foreach ((string type, string payload) in queuedMessages)
 924                {
 1221925                    MessageFromEngine(type, payload);
 926                }
 927
 32928                queuedMessages.Clear();
 32929            }
 32930        }
 931
 1932        public static string GetGraphicCard() => "In Editor Graphic Card";
 933#endif
 934
 935        public static void SendMessage(string type)
 936        {
 937            // sending an empty JSON object to be compatible with other messages
 3938            MessageFromEngine(type, "{}");
 3939        }
 940
 941        public static void SendMessage<T>(string type, T message)
 942        {
 1302943            string messageJson = JsonUtility.ToJson(message);
 1302944            SendJson(type, messageJson);
 1302945        }
 946
 947        public static void SendJson(string type, string json)
 948        {
 1302949            if (VERBOSE)
 950            {
 0951                Debug.Log($"Sending message: " + json);
 952            }
 953
 1302954            MessageFromEngine(type, json);
 1302955        }
 956
 1957        private static ReportPositionPayload positionPayload = new ReportPositionPayload();
 1958        private static CameraModePayload cameraModePayload = new CameraModePayload();
 1959        private static Web3UseResponsePayload web3UseResponsePayload = new Web3UseResponsePayload();
 1960        private static IdleStateChangedPayload idleStateChangedPayload = new IdleStateChangedPayload();
 1961        private static OnMetricsUpdate onMetricsUpdate = new OnMetricsUpdate();
 1962        private static OnClickEvent onClickEvent = new OnClickEvent();
 1963        private static OnPointerDownEvent onPointerDownEvent = new OnPointerDownEvent();
 1964        private static OnPointerUpEvent onPointerUpEvent = new OnPointerUpEvent();
 1965        private static OnTextSubmitEvent onTextSubmitEvent = new OnTextSubmitEvent();
 1966        private static OnTextInputChangeEvent onTextInputChangeEvent = new OnTextInputChangeEvent();
 1967        private static OnTextInputChangeTextEvent onTextInputChangeTextEvent = new OnTextInputChangeTextEvent();
 1968        private static OnScrollChangeEvent onScrollChangeEvent = new OnScrollChangeEvent();
 1969        private static OnFocusEvent onFocusEvent = new OnFocusEvent();
 1970        private static OnBlurEvent onBlurEvent = new OnBlurEvent();
 1971        private static OnEnterEvent onEnterEvent = new OnEnterEvent();
 1972        private static OnSendScreenshot onSendScreenshot = new OnSendScreenshot();
 1973        private static OnPointerEventPayload onPointerEventPayload = new OnPointerEventPayload();
 1974        private static OnGlobalPointerEventPayload onGlobalPointerEventPayload = new OnGlobalPointerEventPayload();
 1975        private static OnGlobalPointerEvent onGlobalPointerEvent = new OnGlobalPointerEvent();
 1976        private static AudioStreamingPayload onAudioStreamingEvent = new AudioStreamingPayload();
 1977        private static SetVoiceChatRecordingPayload setVoiceChatRecordingPayload = new SetVoiceChatRecordingPayload();
 1978        private static SetScenesLoadRadiusPayload setScenesLoadRadiusPayload = new SetScenesLoadRadiusPayload();
 1979        private static ApplySettingsPayload applySettingsPayload = new ApplySettingsPayload();
 1980        private static GIFSetupPayload gifSetupPayload = new GIFSetupPayload();
 1981        private static JumpInPayload jumpInPayload = new JumpInPayload();
 1982        private static GotoEvent gotoEvent = new GotoEvent();
 1983        private static SendChatMessageEvent sendChatMessageEvent = new SendChatMessageEvent();
 1984        private static BaseResolution baseResEvent = new BaseResolution();
 1985        private static AnalyticsPayload analyticsEvent = new AnalyticsPayload();
 1986        private static DelightedSurveyEnabledPayload delightedSurveyEnabled = new DelightedSurveyEnabledPayload();
 1987        private static ExternalActionSceneEventPayload sceneExternalActionEvent = new ExternalActionSceneEventPayload();
 1988        private static MuteUserPayload muteUserEvent = new MuteUserPayload();
 1989        private static StoreSceneStateEvent storeSceneState = new StoreSceneStateEvent();
 1990        private static CloseUserAvatarPayload closeUserAvatarPayload = new CloseUserAvatarPayload();
 1991        private static StringPayload stringPayload = new StringPayload();
 1992        private static KillPortableExperiencePayload killPortableExperiencePayload = new KillPortableExperiencePayload()
 1993        private static SetDisabledPortableExperiencesPayload setDisabledPortableExperiencesPayload = new SetDisabledPort
 1994        private static RequestWearablesPayload requestWearablesPayload = new RequestWearablesPayload();
 1995        private static RequestEmotesPayload requestEmotesPayload = new RequestEmotesPayload();
 1996        private static SearchENSOwnerPayload searchEnsOwnerPayload = new SearchENSOwnerPayload();
 1997        private static HeadersPayload headersPayload = new HeadersPayload();
 1998        private static AvatarStateBase avatarStatePayload = new AvatarStateBase();
 1999        private static AvatarStateSceneChanged avatarSceneChangedPayload = new AvatarStateSceneChanged();
 11000        public static AvatarOnClickPayload avatarOnClickPayload = new AvatarOnClickPayload();
 11001        private static UUIDEvent<EmptyPayload> onPointerHoverEnterEvent = new UUIDEvent<EmptyPayload>();
 11002        private static UUIDEvent<EmptyPayload> onPointerHoverExitEvent = new UUIDEvent<EmptyPayload>();
 11003        private static TimeReportPayload timeReportPayload = new TimeReportPayload();
 11004        private static GetFriendsWithDirectMessagesPayload getFriendsWithDirectMessagesPayload = new GetFriendsWithDirec
 11005        private static MarkMessagesAsSeenPayload markMessagesAsSeenPayload = new MarkMessagesAsSeenPayload();
 11006        private static MarkChannelMessagesAsSeenPayload markChannelMessagesAsSeenPayload = new MarkChannelMessagesAsSeen
 11007        private static GetPrivateMessagesPayload getPrivateMessagesPayload = new GetPrivateMessagesPayload();
 1008
 1009        public static void SendSceneEvent<T> (int sceneNumber, string eventType, T payload)
 1010        {
 4741011            SceneEvent<T> sceneEvent = new SceneEvent<T>();
 4741012            sceneEvent.sceneNumber = sceneNumber;
 4741013            sceneEvent.eventType = eventType;
 4741014            sceneEvent.payload = payload;
 1015
 4741016            SendMessage("SceneEvent", sceneEvent);
 4741017        }
 1018
 1019        private static void SendAllScenesEvent<T>(string eventType, T payload)
 1020        {
 4141021            AllScenesEvent<T> allScenesEvent = new AllScenesEvent<T>();
 4141022            allScenesEvent.eventType = eventType;
 4141023            allScenesEvent.payload = payload;
 1024
 4141025            SendMessage("AllScenesEvent", allScenesEvent);
 4141026        }
 1027
 1028        public static void ReportPosition(Vector3 position, Quaternion rotation, float playerHeight, Quaternion cameraRo
 1029        {
 411030            positionPayload.position = position;
 411031            positionPayload.rotation = rotation;
 411032            positionPayload.playerHeight = playerHeight;
 411033            positionPayload.cameraRotation = cameraRotation;
 1034
 411035            SendMessage("ReportPosition", positionPayload);
 411036        }
 1037
 8261038        public static void ReportCameraChanged(CameraMode.ModeId cameraMode) { ReportCameraChanged(cameraMode, -1); }
 1039
 1040        public static void ReportCameraChanged(CameraMode.ModeId cameraMode, int targetSceneNumber)
 1041        {
 6751042            cameraModePayload.cameraMode = cameraMode;
 6751043            if (targetSceneNumber > 0)
 1044            {
 2621045                SendSceneEvent(targetSceneNumber, "cameraModeChanged", cameraModePayload);
 1046            }
 1047            else
 1048            {
 4131049                SendAllScenesEvent("cameraModeChanged", cameraModePayload);
 1050            }
 4131051        }
 1052
 1053        public static void Web3UseResponse(string id, bool result)
 1054        {
 01055            web3UseResponsePayload.id = id;
 01056            web3UseResponsePayload.result = result;
 01057            SendMessage("Web3UseResponse", web3UseResponsePayload);
 01058        }
 1059
 1060        public static void ReportIdleStateChanged(bool isIdle)
 1061        {
 11062            idleStateChangedPayload.isIdle = isIdle;
 11063            SendAllScenesEvent("idleStateChanged", idleStateChangedPayload);
 11064        }
 1065
 5241066        public static void ReportControlEvent<T>(T controlEvent) where T : ControlEvent { SendMessage("ControlEvent", co
 1067
 1068        public static void SendRequestHeadersForUrl(string eventName, string method, string url, Dictionary<string, obje
 1069        {
 01070            headersPayload.method = method;
 01071            headersPayload.url = url;
 01072            if (metadata != null)
 01073                headersPayload.metadata = metadata;
 01074            SendMessage(eventName, headersPayload);
 01075        }
 1076
 01077        public static void BuilderInWorldMessage(string type, string message) { MessageFromEngine(type, message); }
 1078
 1079        public static void ReportOnClickEvent(int sceneNumber, string uuid)
 1080        {
 61081            if (string.IsNullOrEmpty(uuid))
 1082            {
 01083                return;
 1084            }
 1085
 61086            onClickEvent.uuid = uuid;
 1087
 61088            SendSceneEvent(sceneNumber, "uuidEvent", onClickEvent);
 61089        }
 1090
 1091        // TODO: Add sceneNumber to this response
 1092        private static void ReportRaycastResult<T, P>(int sceneNumber, string queryId, string queryType, P payload) wher
 1093        {
 01094            T response = new T();
 01095            response.queryId = queryId;
 01096            response.queryType = queryType;
 01097            response.payload = payload;
 1098
 01099            SendSceneEvent<T>(sceneNumber, "raycastResponse", response);
 01100        }
 1101
 01102        public static void ReportRaycastHitFirstResult(int sceneNumber, string queryId, RaycastType raycastType, Raycast
 1103
 01104        public static void ReportRaycastHitAllResult(int sceneNumber, string queryId, RaycastType raycastType, RaycastHi
 1105
 1106        private static OnPointerEventPayload.Hit CreateHitObject(string entityId, string meshName, Vector3 point,
 1107            Vector3 normal, float distance)
 1108        {
 191109            OnPointerEventPayload.Hit hit = new OnPointerEventPayload.Hit();
 1110
 191111            hit.hitPoint = point;
 191112            hit.length = distance;
 191113            hit.normal = normal;
 191114            hit.worldNormal = normal;
 191115            hit.meshName = meshName;
 191116            hit.entityId = entityId;
 1117
 191118            return hit;
 1119        }
 1120
 1121        private static void SetPointerEventPayload(OnPointerEventPayload pointerEventPayload, ACTION_BUTTON buttonId,
 1122            string entityId, string meshName, Ray ray, Vector3 point, Vector3 normal, float distance,
 1123            bool isHitInfoValid)
 1124        {
 201125            pointerEventPayload.origin = ray.origin;
 201126            pointerEventPayload.direction = ray.direction;
 201127            pointerEventPayload.buttonId = buttonId;
 1128
 201129            if (isHitInfoValid)
 191130                pointerEventPayload.hit = CreateHitObject(entityId, meshName, point, normal, distance);
 1131            else
 11132                pointerEventPayload.hit = null;
 11133        }
 1134
 1135
 1136        public static void ReportGlobalPointerEvent(OnGlobalPointerEventPayload.InputEventType pointerDirection, ACTION_
 1137            float distance, int sceneNumber, string entityId = "0", string meshName = null, bool isHitInfoValid = false)
 1138        {
 141139            SetPointerEventPayload(onGlobalPointerEventPayload, buttonId, entityId, meshName, ray, point, normal, distan
 141140            onGlobalPointerEventPayload.type = pointerDirection;
 1141
 141142            onGlobalPointerEvent.payload = onGlobalPointerEventPayload;
 1143
 141144            SendSceneEvent(sceneNumber, "actionButtonEvent", onGlobalPointerEvent);
 141145        }
 1146
 1147        public static void ReportOnPointerDownEvent(ACTION_BUTTON buttonId, int sceneNumber, string uuid,
 1148            string entityId, string meshName, Ray ray, Vector3 point, Vector3 normal, float distance)
 1149        {
 41150            if (string.IsNullOrEmpty(uuid))
 1151            {
 01152                return;
 1153            }
 1154
 41155            onPointerDownEvent.uuid = uuid;
 41156            SetPointerEventPayload(onPointerEventPayload, buttonId, entityId, meshName, ray, point,
 1157                normal, distance, isHitInfoValid: true);
 41158            onPointerDownEvent.payload = onPointerEventPayload;
 1159
 41160            SendSceneEvent(sceneNumber, "uuidEvent", onPointerDownEvent);
 41161        }
 1162
 1163        public static void ReportOnPointerUpEvent(ACTION_BUTTON buttonId, int sceneNumber, string uuid, string entityId,
 1164            string meshName, Ray ray, Vector3 point, Vector3 normal, float distance)
 1165        {
 21166            if (string.IsNullOrEmpty(uuid))
 1167            {
 01168                return;
 1169            }
 1170
 21171            onPointerUpEvent.uuid = uuid;
 21172            SetPointerEventPayload(onPointerEventPayload, buttonId, entityId, meshName, ray, point,
 1173                normal, distance, isHitInfoValid: true);
 21174            onPointerUpEvent.payload = onPointerEventPayload;
 1175
 21176            SendSceneEvent(sceneNumber, "uuidEvent", onPointerUpEvent);
 21177        }
 1178
 1179        public static void ReportOnTextSubmitEvent(int sceneNumber, string uuid, string text)
 1180        {
 21181            if (string.IsNullOrEmpty(uuid))
 1182            {
 01183                return;
 1184            }
 1185
 21186            onTextSubmitEvent.uuid = uuid;
 21187            onTextSubmitEvent.payload.text = text;
 1188
 21189            SendSceneEvent(sceneNumber, "uuidEvent", onTextSubmitEvent);
 21190        }
 1191
 1192        public static void ReportOnTextInputChangedEvent(int sceneNumber, string uuid, string text)
 1193        {
 171194            if (string.IsNullOrEmpty(uuid))
 1195            {
 171196                return;
 1197            }
 1198
 01199            onTextInputChangeEvent.uuid = uuid;
 01200            onTextInputChangeEvent.payload.value = text;
 1201
 01202            SendSceneEvent(sceneNumber, "uuidEvent", onTextInputChangeEvent);
 01203        }
 1204
 1205        public static void ReportOnTextInputChangedTextEvent(int sceneNumber, string uuid, string text, bool isSubmit)
 1206        {
 191207            if (string.IsNullOrEmpty(uuid))
 1208            {
 161209                return;
 1210            }
 1211
 31212            onTextInputChangeTextEvent.uuid = uuid;
 31213            onTextInputChangeTextEvent.payload.value.value = text;
 31214            onTextInputChangeTextEvent.payload.value.isSubmit = isSubmit;
 1215
 31216            SendSceneEvent(sceneNumber, "uuidEvent", onTextInputChangeTextEvent);
 31217        }
 1218
 1219        public static void ReportOnFocusEvent(int sceneNumber, string uuid)
 1220        {
 21221            if (string.IsNullOrEmpty(uuid))
 1222            {
 21223                return;
 1224            }
 1225
 01226            onFocusEvent.uuid = uuid;
 01227            SendSceneEvent(sceneNumber, "uuidEvent", onFocusEvent);
 01228        }
 1229
 1230        public static void ReportOnBlurEvent(int sceneNumber, string uuid)
 1231        {
 21232            if (string.IsNullOrEmpty(uuid))
 1233            {
 21234                return;
 1235            }
 1236
 01237            onBlurEvent.uuid = uuid;
 01238            SendSceneEvent(sceneNumber, "uuidEvent", onBlurEvent);
 01239        }
 1240
 1241        public static void ReportOnScrollChange(int sceneNumber, string uuid, Vector2 value, int pointerId)
 1242        {
 151243            if (string.IsNullOrEmpty(uuid))
 1244            {
 131245                return;
 1246            }
 1247
 21248            onScrollChangeEvent.uuid = uuid;
 21249            onScrollChangeEvent.payload.value = value;
 21250            onScrollChangeEvent.payload.pointerId = pointerId;
 1251
 21252            SendSceneEvent(sceneNumber, "uuidEvent", onScrollChangeEvent);
 21253        }
 1254
 01255        public static void ReportEvent<T>(int sceneNumber, T @event) { SendSceneEvent(sceneNumber, "uuidEvent", @event);
 1256
 1257        public static void ReportOnMetricsUpdate(int sceneNumber, MetricsModel current,
 1258            MetricsModel limit)
 1259        {
 1741260            onMetricsUpdate.given = current;
 1741261            onMetricsUpdate.limit = limit;
 1262
 1741263            SendSceneEvent(sceneNumber, "metricsUpdate", onMetricsUpdate);
 1741264        }
 1265
 1266        public static void ReportOnEnterEvent(int sceneNumber, string uuid)
 1267        {
 01268            if (string.IsNullOrEmpty(uuid))
 01269                return;
 1270
 01271            onEnterEvent.uuid = uuid;
 1272
 01273            SendSceneEvent(sceneNumber, "uuidEvent", onEnterEvent);
 01274        }
 1275
 01276        public static void LogOut() { SendMessage("LogOut"); }
 1277
 01278        public static void RedirectToSignUp() { SendMessage("RedirectToSignUp"); }
 1279
 01280        public static void PreloadFinished(int sceneNumber) { SendMessage("PreloadFinished", sceneNumber); }
 1281
 1282        public static void ReportMousePosition(Vector3 mousePosition, string id)
 1283        {
 01284            positionPayload.mousePosition = mousePosition;
 01285            positionPayload.id = id;
 01286            SendMessage("ReportMousePosition", positionPayload);
 01287        }
 1288
 1289        public static void SendScreenshot(string encodedTexture, string id)
 1290        {
 01291            onSendScreenshot.encodedTexture = encodedTexture;
 01292            onSendScreenshot.id = id;
 01293            SendMessage("SendScreenshot", onSendScreenshot);
 01294        }
 1295
 1296        public static void SetDelightedSurveyEnabled(bool enabled)
 1297        {
 01298            delightedSurveyEnabled.enabled = enabled;
 01299            SendMessage("SetDelightedSurveyEnabled", delightedSurveyEnabled);
 01300        }
 1301
 1302        public static void SetScenesLoadRadius(float newRadius)
 1303        {
 11304            setScenesLoadRadiusPayload.newRadius = newRadius;
 11305            SendMessage("SetScenesLoadRadius", setScenesLoadRadiusPayload);
 11306        }
 1307
 1308        [System.Serializable]
 1309        public class SaveAvatarPayload
 1310        {
 1311            public string face256;
 1312            public string body;
 1313            public bool isSignUpFlow;
 1314            public AvatarModel avatar;
 1315        }
 1316
 1317        public static class RendererAuthenticationType
 1318        {
 01319            public static string Guest => "guest";
 01320            public static string WalletConnect => "wallet_connect";
 1321        }
 1322
 1323        [System.Serializable]
 1324        public class SendAuthenticationPayload
 1325        {
 1326            public string rendererAuthenticationType;
 1327        }
 1328
 1329        [System.Serializable]
 1330        public class SendPassportPayload
 1331        {
 1332            public string name;
 1333            public string email;
 1334        }
 1335
 1336        [System.Serializable]
 1337        public class SendSaveUserUnverifiedNamePayload
 1338        {
 1339            public string newUnverifiedName;
 1340        }
 1341
 1342        [System.Serializable]
 1343        public class SendSaveUserDescriptionPayload
 1344        {
 1345            public string description;
 1346
 01347            public SendSaveUserDescriptionPayload(string description) { this.description = description; }
 1348        }
 1349
 1350        [System.Serializable]
 1351        public class SendRequestUserProfilePayload
 1352        {
 1353            public string value;
 1354        }
 1355
 1356        [Serializable]
 1357        public class SendVideoProgressEvent
 1358        {
 1359            public string componentId;
 1360            public int sceneNumber;
 1361            public string videoTextureId;
 1362            public int status;
 1363            public float currentOffset;
 1364            public float videoLength;
 1365        }
 1366
 01367        public static void RequestOwnProfileUpdate() { SendMessage("RequestOwnProfileUpdate"); }
 1368
 1369        public static void SendSaveAvatar(AvatarModel avatar, Texture2D face256Snapshot, Texture2D bodySnapshot, bool is
 1370        {
 11371            var payload = new SaveAvatarPayload()
 1372            {
 1373                avatar = avatar,
 1374                face256 = System.Convert.ToBase64String(face256Snapshot.EncodeToPNG()),
 1375                body = System.Convert.ToBase64String(bodySnapshot.EncodeToPNG()),
 1376                isSignUpFlow = isSignUpFlow
 1377            };
 11378            SendMessage("SaveUserAvatar", payload);
 11379        }
 1380
 01381        public static void SendAuthentication(string rendererAuthenticationType) { SendMessage("SendAuthentication", new
 1382
 21383        public static void SendPassport(string name, string email) { SendMessage("SendPassport", new SendPassportPayload
 1384
 1385        public static void SendSaveUserUnverifiedName(string newName)
 1386        {
 01387            var payload = new SendSaveUserUnverifiedNamePayload()
 1388            {
 1389                newUnverifiedName = newName
 1390            };
 1391
 01392            SendMessage("SaveUserUnverifiedName", payload);
 01393        }
 1394
 01395        public static void SendSaveUserDescription(string about) { SendMessage("SaveUserDescription", new SendSaveUserDe
 1396
 01397        public static void SendRequestUserProfile(string userId) { SendMessage("RequestUserProfile", new SendRequestUser
 1398
 21399        public static void SendUserAcceptedCollectibles(string airdropId) { SendMessage("UserAcceptedCollectibles", new 
 1400
 01401        public static void SaveUserTutorialStep(int newTutorialStep) { SendMessage("SaveUserTutorialStep", new TutorialS
 1402
 01403        public static void SendPerformanceReport(string performanceReportPayload) { SendJson("PerformanceReport", perfor
 1404
 01405        public static void SendSystemInfoReport() { SendMessage("SystemInfoReport", new SystemInfoReportPayload()); }
 1406
 1407        public static void SendTermsOfServiceResponse(int sceneNumber, bool accepted, bool dontShowAgain)
 1408        {
 21409            var payload = new TermsOfServiceResponsePayload()
 1410            {
 1411                sceneNumber = sceneNumber,
 1412                accepted = accepted,
 1413                dontShowAgain = dontShowAgain
 1414            };
 21415            SendMessage("TermsOfServiceResponse", payload);
 21416        }
 1417
 1418        public static void OpenURL(string url)
 1419        {
 1420#if UNITY_WEBGL
 31421            SendMessage("OpenWebURL", new OpenURLPayload { url = url });
 1422#else
 1423            Application.OpenURL(url);
 1424#endif
 31425        }
 1426
 01427        public static void PublishStatefulScene(ProtocolV2.PublishPayload payload) { MessageFromEngine("PublishSceneStat
 1428
 1429        public static void SendReportScene(int sceneNumber)
 1430        {
 11431            SendMessage("ReportScene", new SendReportScenePayload
 1432            {
 1433                sceneNumber = sceneNumber
 1434            });
 11435        }
 1436
 1437        public static void SetHomeScene(string sceneCoords)
 1438        {
 01439            SendMessage("SetHomeScene", new SetHomeScenePayload
 1440            {
 1441                sceneCoords = sceneCoords
 1442            });
 01443        }
 1444
 1445        public static void SendReportPlayer(string playerId, string playerName)
 1446        {
 11447            SendMessage("ReportPlayer", new SendReportPlayerPayload
 1448            {
 1449                userId = playerId,
 1450                name = playerName
 1451            });
 11452        }
 1453
 1454        public static void SendBlockPlayer(string userId)
 1455        {
 11456            SendMessage("BlockPlayer", new SendBlockPlayerPayload()
 1457            {
 1458                userId = userId
 1459            });
 11460        }
 1461
 1462        public static void SendUnblockPlayer(string userId)
 1463        {
 01464            SendMessage("UnblockPlayer", new SendUnblockPlayerPayload()
 1465            {
 1466                userId = userId
 1467            });
 01468        }
 1469
 1470        public static void RequestScenesInfoAroundParcel(Vector2 parcel, int maxScenesArea)
 1471        {
 51472            SendMessage("RequestScenesInfoInArea", new RequestScenesInfoAroundParcelPayload()
 1473            {
 1474                parcel = parcel,
 1475                scenesAround = maxScenesArea
 1476            });
 51477        }
 1478
 1479        public static void SendAudioStreamEvent(string url, bool play, float volume)
 1480        {
 201481            onAudioStreamingEvent.url = url;
 201482            onAudioStreamingEvent.play = play;
 201483            onAudioStreamingEvent.volume = volume;
 201484            SendMessage("SetAudioStream", onAudioStreamingEvent);
 201485        }
 1486
 21487        public static void JoinVoiceChat() { SendMessage("JoinVoiceChat"); }
 1488
 21489        public static void LeaveVoiceChat() { SendMessage("LeaveVoiceChat"); }
 1490
 1491        public static void SendSetVoiceChatRecording(bool recording)
 1492        {
 01493            setVoiceChatRecordingPayload.recording = recording;
 01494            SendMessage("SetVoiceChatRecording", setVoiceChatRecordingPayload);
 01495        }
 1496
 01497        public static void ToggleVoiceChatRecording() { SendMessage("ToggleVoiceChatRecording"); }
 1498
 1499        public static void ApplySettings(float voiceChatVolume, int voiceChatAllowCategory)
 1500        {
 61501            applySettingsPayload.voiceChatVolume = voiceChatVolume;
 61502            applySettingsPayload.voiceChatAllowCategory = voiceChatAllowCategory;
 61503            SendMessage("ApplySettings", applySettingsPayload);
 61504        }
 1505
 1506        public static void RequestGIFProcessor(string gifURL, string gifId, bool isWebGL1)
 1507        {
 01508            gifSetupPayload.imageSource = gifURL;
 01509            gifSetupPayload.id = gifId;
 01510            gifSetupPayload.isWebGL1 = isWebGL1;
 1511
 01512            SendMessage("RequestGIFProcessor", gifSetupPayload);
 01513        }
 1514
 1515        public static void DeleteGIF(string id)
 1516        {
 01517            stringPayload.value = id;
 01518            SendMessage("DeleteGIF", stringPayload);
 01519        }
 1520
 1521        public static void GoTo(int x, int y)
 1522        {
 01523            gotoEvent.x = x;
 01524            gotoEvent.y = y;
 01525            SendMessage("GoTo", gotoEvent);
 01526        }
 1527
 1528        public static void GoToCrowd()
 1529        {
 01530            SendMessage("GoToCrowd");
 01531        }
 1532
 1533        public static void GoToMagic()
 1534        {
 01535            SendMessage("GoToMagic");
 01536        }
 1537
 1538        public static void LoadingHUDReadyForTeleport(int x, int y)
 1539        {
 01540            gotoEvent.x = x;
 01541            gotoEvent.y = y;
 01542            SendMessage("LoadingHUDReadyForTeleport", gotoEvent);
 01543        }
 1544
 1545        public static void JumpIn(int x, int y, string serverName, string layerName)
 1546        {
 01547            jumpInPayload.realm.serverName = serverName;
 01548            jumpInPayload.realm.layer = layerName;
 1549
 01550            jumpInPayload.gridPosition.x = x;
 01551            jumpInPayload.gridPosition.y = y;
 1552
 01553            SendMessage("JumpIn", jumpInPayload);
 01554        }
 1555
 1556        public static void JumpInHome(string mostPopulatedRealm)
 1557        {
 01558            jumpInPayload.realm.serverName = mostPopulatedRealm;
 01559            SendMessage("JumpInHome", jumpInPayload);
 01560        }
 1561
 1562        public static void SendChatMessage(ChatMessage message)
 1563        {
 01564            sendChatMessageEvent.message = message;
 01565            SendMessage("SendChatMessage", sendChatMessageEvent);
 01566        }
 1567
 01568        public static void UpdateFriendshipStatus(FriendshipUpdateStatusMessage message) { SendMessage("UpdateFriendship
 1569
 01570        public static void ScenesLoadingFeedback(LoadingFeedbackMessage message) { SendMessage("ScenesLoadingFeedback", 
 1571
 01572        public static void FetchHotScenes() { SendMessage("FetchHotScenes"); }
 1573
 1574        public static void SetBaseResolution(int resolution)
 1575        {
 21576            baseResEvent.baseResolution = resolution;
 21577            SendMessage("SetBaseResolution", baseResEvent);
 21578        }
 1579
 01580        public static void ReportAnalyticsEvent(string eventName) { ReportAnalyticsEvent(eventName, null); }
 1581
 1582        public static void ReportAnalyticsEvent(string eventName, AnalyticsPayload.Property[] eventProperties)
 1583        {
 01584            analyticsEvent.name = eventName;
 01585            analyticsEvent.properties = eventProperties;
 01586            SendMessage("Track", analyticsEvent);
 01587        }
 1588
 21589        public static void FetchBalanceOfMANA() { SendMessage("FetchBalanceOfMANA"); }
 1590
 1591        public static void SendSceneExternalActionEvent(int sceneNumber, string type, string payload)
 1592        {
 01593            sceneExternalActionEvent.type = type;
 01594            sceneExternalActionEvent.payload = payload;
 01595            SendSceneEvent(sceneNumber, "externalAction", sceneExternalActionEvent);
 01596        }
 1597
 1598        public static void SetMuteUsers(string[] usersId, bool mute)
 1599        {
 41600            muteUserEvent.usersId = usersId;
 41601            muteUserEvent.mute = mute;
 41602            SendMessage("SetMuteUsers", muteUserEvent);
 41603        }
 1604
 1605        public static void SendCloseUserAvatar(bool isSignUpFlow)
 1606        {
 01607            closeUserAvatarPayload.isSignUpFlow = isSignUpFlow;
 01608            SendMessage("CloseUserAvatar", closeUserAvatarPayload);
 01609        }
 1610
 1611        // Warning: Use this method only for PEXs non-associated to smart wearables.
 1612        //          For PEX associated to smart wearables use 'SetDisabledPortableExperiences'.
 1613        public static void KillPortableExperience(string portableExperienceId)
 1614        {
 01615            killPortableExperiencePayload.portableExperienceId = portableExperienceId;
 01616            SendMessage("KillPortableExperience", killPortableExperiencePayload);
 01617        }
 1618
 1619        public static void RequestThirdPartyWearables(
 1620            string ownedByUser,
 1621            string thirdPartyCollectionId,
 1622            string context)
 1623        {
 11624            requestWearablesPayload.filters = new WearablesRequestFiltersPayload
 1625            {
 1626                ownedByUser = ownedByUser,
 1627                thirdPartyId = thirdPartyCollectionId,
 1628                collectionIds = null,
 1629                wearableIds = null
 1630            };
 1631
 11632            requestWearablesPayload.context = context;
 1633
 11634            SendMessage("RequestWearables", requestWearablesPayload);
 11635        }
 1636
 1637        public static void SetDisabledPortableExperiences(string[] idsToDisable)
 1638        {
 71639            setDisabledPortableExperiencesPayload.idsToDisable = idsToDisable;
 71640            SendMessage("SetDisabledPortableExperiences", setDisabledPortableExperiencesPayload);
 71641        }
 1642
 1643        public static void RequestWearables(
 1644            string ownedByUser,
 1645            string[] wearableIds,
 1646            string[] collectionIds,
 1647            string context)
 1648        {
 01649            requestWearablesPayload.filters = new WearablesRequestFiltersPayload
 1650            {
 1651                ownedByUser = ownedByUser,
 1652                wearableIds = wearableIds,
 1653                collectionIds = collectionIds,
 1654                thirdPartyId = null
 1655            };
 1656
 01657            requestWearablesPayload.context = context;
 1658
 01659            SendMessage("RequestWearables", requestWearablesPayload);
 01660        }
 1661
 1662        public static void RequestEmotes(
 1663            string ownedByUser,
 1664            string[] emoteIds,
 1665            string[] collectionIds,
 1666            string context)
 1667        {
 01668            requestEmotesPayload.filters = new EmotesRequestFiltersPayload()
 1669            {
 1670                ownedByUser = ownedByUser,
 1671                emoteIds = emoteIds,
 1672                collectionIds = collectionIds,
 1673                thirdPartyId = null
 1674            };
 1675
 01676            requestEmotesPayload.context = context;
 1677
 01678            SendMessage("RequestEmotes", requestEmotesPayload);
 01679        }
 1680
 1681        public static void SearchENSOwner(string name, int maxResults)
 1682        {
 41683            searchEnsOwnerPayload.name = name;
 41684            searchEnsOwnerPayload.maxResults = maxResults;
 1685
 41686            SendMessage("SearchENSOwner", searchEnsOwnerPayload);
 41687        }
 1688
 01689        public static void RequestHomeCoordinates() { SendMessage("RequestHomeCoordinates"); }
 1690
 1691        public static void RequestUserProfile(string userId)
 1692        {
 01693            stringPayload.value = userId;
 01694            SendMessage("RequestUserProfile", stringPayload);
 01695        }
 1696
 1697        public static void ReportAvatarFatalError(string payload)
 1698        {
 01699            ErrorPayload errorPayload = new ErrorPayload() { error = payload };
 01700            SendMessage("ReportAvatarFatalError", errorPayload);
 01701        }
 1702
 1703        public static void UnpublishScene(Vector2Int sceneCoordinates)
 1704        {
 01705            var payload = new UnpublishScenePayload() { coordinates = $"{sceneCoordinates.x},{sceneCoordinates.y}" };
 01706            SendMessage("UnpublishScene", payload);
 01707        }
 1708
 1709        public static void NotifyStatusThroughChat(string message)
 1710        {
 01711            stringPayload.value = message;
 01712            SendMessage("NotifyStatusThroughChat", stringPayload);
 01713        }
 1714
 1715        public static void ReportVideoProgressEvent(
 1716            string componentId,
 1717            int sceneNumber,
 1718            string videoClipId,
 1719            int videoStatus,
 1720            float currentOffset,
 1721            float length)
 1722        {
 441723            SendVideoProgressEvent progressEvent = new SendVideoProgressEvent()
 1724            {
 1725                componentId = componentId,
 1726                sceneNumber = sceneNumber,
 1727                videoTextureId = videoClipId,
 1728                status = videoStatus,
 1729                currentOffset = currentOffset,
 1730                videoLength = float.IsInfinity(length) ? float.MaxValue : length
 1731            };
 1732
 441733            SendMessage("VideoProgressEvent", progressEvent);
 441734        }
 1735
 1736        public static void ReportAvatarRemoved(string avatarId)
 1737        {
 01738            avatarStatePayload.type = "Removed";
 01739            avatarStatePayload.avatarShapeId = avatarId;
 01740            SendMessage("ReportAvatarState", avatarStatePayload);
 01741        }
 1742
 1743        public static void ReportAvatarSceneChanged(string avatarId, int sceneNumber)
 1744        {
 01745            avatarSceneChangedPayload.type = "SceneChanged";
 01746            avatarSceneChangedPayload.avatarShapeId = avatarId;
 01747            avatarSceneChangedPayload.sceneNumber = sceneNumber;
 01748            SendMessage("ReportAvatarState", avatarSceneChangedPayload);
 01749        }
 1750
 1751        public static void ReportAvatarClick(int sceneNumber, string userId, Vector3 rayOrigin, Vector3 rayDirection, fl
 1752        {
 01753            avatarOnClickPayload.userId = userId;
 01754            avatarOnClickPayload.ray.origin = rayOrigin;
 01755            avatarOnClickPayload.ray.direction = rayDirection;
 01756            avatarOnClickPayload.ray.distance = distance;
 1757
 01758            SendSceneEvent(sceneNumber, "playerClicked", avatarOnClickPayload);
 01759        }
 1760
 1761        public static void ReportOnPointerHoverEnterEvent(int sceneNumber, string uuid)
 1762        {
 41763            onPointerHoverEnterEvent.uuid = uuid;
 41764            SendSceneEvent(sceneNumber, "uuidEvent", onPointerHoverEnterEvent);
 41765        }
 1766
 1767        public static void ReportOnPointerHoverExitEvent(int sceneNumber, string uuid)
 1768        {
 11769            onPointerHoverExitEvent.uuid = uuid;
 11770            SendSceneEvent(sceneNumber, "uuidEvent", onPointerHoverExitEvent);
 11771        }
 1772
 1773        public static void ReportTime(float time, bool isPaused, float timeNormalizationFactor, float cycleTime)
 1774        {
 61775            timeReportPayload.time = time;
 61776            timeReportPayload.isPaused = isPaused;
 61777            timeReportPayload.timeNormalizationFactor = timeNormalizationFactor;
 61778            timeReportPayload.cycleTime = cycleTime;
 61779            SendMessage("ReportDecentralandTime", timeReportPayload);
 61780        }
 1781
 1782        public static void GetFriendsWithDirectMessages(string userNameOrId, int limit, int skip)
 1783        {
 01784            getFriendsWithDirectMessagesPayload.userNameOrId = userNameOrId;
 01785            getFriendsWithDirectMessagesPayload.limit = limit;
 01786            getFriendsWithDirectMessagesPayload.skip = skip;
 01787            SendMessage("GetFriendsWithDirectMessages", getFriendsWithDirectMessagesPayload);
 01788        }
 1789
 1790        public static void MarkMessagesAsSeen(string userId)
 1791        {
 01792            markMessagesAsSeenPayload.userId = userId;
 01793            SendMessage("MarkMessagesAsSeen", markMessagesAsSeenPayload);
 01794        }
 1795
 1796        public static void GetPrivateMessages(string userId, int limit, string fromMessageId)
 1797        {
 01798            getPrivateMessagesPayload.userId = userId;
 01799            getPrivateMessagesPayload.limit = limit;
 01800            getPrivateMessagesPayload.fromMessageId = fromMessageId;
 01801            SendMessage("GetPrivateMessages", getPrivateMessagesPayload);
 01802        }
 1803
 1804        public static void MarkChannelMessagesAsSeen(string channelId)
 1805        {
 01806            markChannelMessagesAsSeenPayload.channelId = channelId;
 01807            SendMessage("MarkChannelMessagesAsSeen", markChannelMessagesAsSeenPayload);
 01808        }
 1809
 01810        public static void GetUnseenMessagesByUser() { SendMessage("GetUnseenMessagesByUser"); }
 1811
 1812        public static void GetUnseenMessagesByChannel()
 1813        {
 01814            SendMessage("GetUnseenMessagesByChannel");
 01815        }
 1816
 1817        public static void GetFriends(int limit, int skip)
 1818        {
 01819            SendMessage("GetFriends", new GetFriendsPayload
 1820            {
 1821                limit = limit,
 1822                skip = skip
 1823            });
 01824        }
 1825
 1826        public static void GetFriends(string usernameOrId, int limit)
 1827        {
 01828            SendMessage("GetFriends", new GetFriendsPayload
 1829            {
 1830                userNameOrId = usernameOrId,
 1831                limit = limit
 1832            });
 01833        }
 1834
 1835        public static void LeaveChannel(string channelId)
 1836        {
 01837            SendMessage("LeaveChannel", new LeaveChannelPayload
 1838            {
 1839                channelId = channelId
 1840            });
 01841        }
 1842
 1843        public static void CreateChannel(string channelId)
 1844        {
 01845            SendMessage("CreateChannel", new CreateChannelPayload
 1846            {
 1847                channelId = channelId
 1848            });
 01849        }
 1850
 1851        public static void JoinOrCreateChannel(string channelId)
 1852        {
 01853            SendMessage("JoinOrCreateChannel", new JoinOrCreateChannelPayload
 1854            {
 1855                channelId = channelId
 1856            });
 01857        }
 1858
 1859        public static void GetChannelMessages(string channelId, int limit, string fromMessageId)
 1860        {
 01861            SendMessage("GetChannelMessages", new GetChannelMessagesPayload
 1862            {
 1863                channelId = channelId,
 1864                limit = limit,
 1865                from = fromMessageId
 1866            });
 01867        }
 1868
 1869        public static void GetJoinedChannels(int limit, int skip)
 1870        {
 01871            SendMessage("GetJoinedChannels", new GetJoinedChannelsPayload
 1872            {
 1873                limit = limit,
 1874                skip = skip
 1875            });
 01876        }
 1877
 1878        public static void GetChannels(int limit, string since, string name)
 1879        {
 01880            SendMessage("GetChannels", new GetChannelsPayload
 1881            {
 1882                limit = limit,
 1883                since = since,
 1884                name = name
 1885            });
 01886        }
 1887
 1888        public static void GetChannelInfo(string[] channelIds)
 1889        {
 01890            SendMessage("GetChannelInfo", new GetChannelInfoPayload
 1891            {
 1892                channelIds = channelIds
 1893            });
 01894        }
 1895
 1896        public static void GetChannelMembers(string channelId, int limit, int skip, string name)
 1897        {
 01898            SendMessage("GetChannelMembers", new GetChannelMembersPayload
 1899            {
 1900                channelId = channelId,
 1901                limit = limit,
 1902                skip = skip,
 1903                userName = name
 1904            });
 01905        }
 1906
 1907        public static void MuteChannel(string channelId, bool muted)
 1908        {
 01909            SendMessage("MuteChannel", new MuteChannelPayload
 1910            {
 1911                channelId = channelId,
 1912                muted = muted
 1913            });
 01914        }
 1915
 1916        public static void UpdateMemoryUsage()
 1917        {
 01918            SendMessage("UpdateMemoryUsage");
 01919        }
 1920
 01921        public static void RequestAudioDevices() => SendMessage("RequestAudioDevices");
 1922
 1923        public static void SetInputAudioDevice(string inputDeviceId)
 1924        {
 01925            SendMessage(nameof(SetInputAudioDevice), new SetInputAudioDevicePayload()
 1926            {
 1927                deviceId = inputDeviceId
 1928            });
 01929        }
 1930    }
 1931}

Methods/Properties

WebInterface()
SceneReady(System.Int32)
ActivateRenderingACK()
DeactivateRenderingACK()
ConcreteActionButtons()
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.Int32, 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.Int32)
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.Int32, System.String)
ReportRaycastResult[T, P](System.Int32, System.String, System.String, P)
ReportRaycastHitFirstResult(System.Int32, System.String, DCL.Models.RaycastType, DCL.Interface.WebInterface/RaycastHitEntity)
ReportRaycastHitAllResult(System.Int32, 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)
ReportGlobalPointerEvent(DCL.Interface.WebInterface/OnGlobalPointerEventPayload/InputEventType, DCL.Interface.WebInterface/ACTION_BUTTON, UnityEngine.Ray, UnityEngine.Vector3, UnityEngine.Vector3, System.Single, System.Int32, System.String, System.String, System.Boolean)
ReportOnPointerDownEvent(DCL.Interface.WebInterface/ACTION_BUTTON, System.Int32, System.String, System.String, System.String, UnityEngine.Ray, UnityEngine.Vector3, UnityEngine.Vector3, System.Single)
ReportOnPointerUpEvent(DCL.Interface.WebInterface/ACTION_BUTTON, System.Int32, System.String, System.String, System.String, UnityEngine.Ray, UnityEngine.Vector3, UnityEngine.Vector3, System.Single)
ReportOnTextSubmitEvent(System.Int32, System.String, System.String)
ReportOnTextInputChangedEvent(System.Int32, System.String, System.String)
ReportOnTextInputChangedTextEvent(System.Int32, System.String, System.String, System.Boolean)
ReportOnFocusEvent(System.Int32, System.String)
ReportOnBlurEvent(System.Int32, System.String)
ReportOnScrollChange(System.Int32, System.String, UnityEngine.Vector2, System.Int32)
ReportEvent[T](System.Int32, T)
ReportOnMetricsUpdate(System.Int32, DCL.Interface.WebInterface/MetricsModel, DCL.Interface.WebInterface/MetricsModel)
ReportOnEnterEvent(System.Int32, System.String)
LogOut()
RedirectToSignUp()
PreloadFinished(System.Int32)
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)
SendRequestUserProfile(System.String)
SendUserAcceptedCollectibles(System.String)
SaveUserTutorialStep(System.Int32)
SendPerformanceReport(System.String)
SendSystemInfoReport()
SendTermsOfServiceResponse(System.Int32, System.Boolean, System.Boolean)
OpenURL(System.String)
PublishStatefulScene(ProtocolV2/PublishPayload)
SendReportScene(System.Int32)
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()
LoadingHUDReadyForTeleport(System.Int32, System.Int32)
JumpIn(System.Int32, System.Int32, System.String, System.String)
JumpInHome(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.Int32, 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(System.String)
UnpublishScene(UnityEngine.Vector2Int)
NotifyStatusThroughChat(System.String)
ReportVideoProgressEvent(System.String, System.Int32, System.String, System.Int32, System.Single, System.Single)
ReportAvatarRemoved(System.String)
ReportAvatarSceneChanged(System.String, System.Int32)
ReportAvatarClick(System.Int32, System.String, UnityEngine.Vector3, UnityEngine.Vector3, System.Single)
ReportOnPointerHoverEnterEvent(System.Int32, System.String)
ReportOnPointerHoverExitEvent(System.Int32, 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)
MarkChannelMessagesAsSeen(System.String)
GetUnseenMessagesByUser()
GetUnseenMessagesByChannel()
GetFriends(System.Int32, System.Int32)
GetFriends(System.String, System.Int32)
LeaveChannel(System.String)
CreateChannel(System.String)
JoinOrCreateChannel(System.String)
GetChannelMessages(System.String, System.Int32, System.String)
GetJoinedChannels(System.Int32, System.Int32)
GetChannels(System.Int32, System.String, System.String)
GetChannelInfo(System.String[])
GetChannelMembers(System.String, System.Int32, System.Int32, System.String)
MuteChannel(System.String, System.Boolean)
UpdateMemoryUsage()
RequestAudioDevices()
SetInputAudioDevice(System.String)