private static void OnReceivedServerConfig(NetworkConnection conn, ServerConfig config) { //Server has sent config twice in the same scene session? Probs a modified server if (clientHasPlayer) { Logger.Error("The server has sent it's config twice in the same scene session!"); return; } //Set the game name netManager.serverConfig = config; ClientMotdMode = GameSettings.MultiplayerSettings.MOTDMode; //If the server has an MOTD, display it before creating a player object if (config.motdMode != Server.ServerMOTDMode.Disabled && ClientMotdMode != ClientMOTDMode.Disable) { try { MOTDUI motdUILogic = Object.Instantiate(netManager.motdUIPrefab).GetComponent <MOTDUI>(); motdUILogic.Setup(config, () => RequestPlayerObject(conn)); return; } catch (InvalidMOTDSettings ex) { Logger.Error(ex, "Something was wrong with the server's MOTD settings!"); netManager.StopHost(); return; } } RequestPlayerObject(conn); }
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(); }