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(); }
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); }
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(); }