示例#1
0
        private static async UniTaskVoid DisplayMotdAndOrCreatePlayer()
        {
            await UniTask.WaitUntil(() => clientReceivedConfig);

            //If the server has an MOTD, display it before creating a player object
            if (netManager.serverConfig.motdMode != Server.ServerMOTDMode.Disabled && ClientMotdMode != ClientMOTDMode.Disable)
            {
                if (netManager.serverConfig.motdMode == Server.ServerMOTDMode.WebOnly && ClientMotdMode == ClientMOTDMode.TextOnly)
                {
                    RequestPlayerObject();
                    return;
                }

                try
                {
                    MOTDUI motdUILogic = Object.Instantiate(netManager.motdUIPrefab).GetComponent <MOTDUI>();
                    motdUILogic.Setup(netManager.serverConfig, RequestPlayerObject);
                    return;
                }
                catch (InvalidMOTDSettings ex)
                {
                    Logger.Error(ex, "Something was wrong with the server's MOTD settings!");
                    netManager.StopHost();
                    return;
                }
            }

            RequestPlayerObject();
        }
示例#2
0
        private async UniTaskVoid SendJs()
        {
            await UniTask.WaitUntil(() => webBrowserUI.browserClient.IsRunning);

            string javaScriptCode =
                $"class UserDetails {{ constructor(username) {{ this.UserName = username; }} }}" +
                $"let userDetails = new UserDetails(\"{User.DefaultAccount.AccountName}\");";

            webBrowserUI.ExecuteJs(javaScriptCode);
        }
示例#3
0
        private static async UniTaskVoid WaitForServerOneFileAndConnect(string serverOnlinePath,
                                                                        Action onSuccessFullCompletion = null,
                                                                        Action onFailToStart           = null)
        {
            float timeUntilCancel = Time.time + TimeOutServerTime;

            //Wait until the server online file exist
            while (!File.Exists(serverOnlinePath))
            {
                //If we hit the timeout time, then fail it
                if (Time.time >= timeUntilCancel)
                {
                    Logger.Error("Server process did not start for some reason! Not connecting.");
                    onFailToStart?.Invoke();
                    return;
                }

                await UniTask.Delay(100);
            }

            onSuccessFullCompletion?.Invoke();
        }