예제 #1
0
        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);
        }
예제 #2
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();
        }