コード例 #1
0
        private static async Task <string> ClientOnWelcomeMessageReceivedFromServer(Task <string> t)
        {
            var message = t.Result;
            await PveSystem.ClientAwaitPvEModeFromServer();

            if (string.IsNullOrWhiteSpace(message))
            {
                // no welcome message
                if (!Client.CurrentGame.IsConnectedToOfficialServer)
                {
                    // don't have any welcome message
                    return(string.Empty);
                }

                // use official server welcome message
                message = GetOfficialServerWelcomeMessage();
            }
            else if (Client.CurrentGame.IsConnectedToOfficialServer)
            {
                // append official welcome message to the custom welcome message
                // ReSharper disable once CanExtractXamlLocalizableStringCSharp
                message += "[br][br]─────────────────────────────────────[br]" + GetOfficialServerWelcomeMessage();
            }

            return(message);
        }
コード例 #2
0
        private static async Task <WelcomeMessageRemoteData> ClientOnWelcomeMessageReceivedFromServer(
            Task <WelcomeMessageRemoteData> t)
        {
            const string h1s  = "[h1]",
                         h1c  = "[/h1]",
                         br   = "[br]",
                         brbr = br + br;

            var data = t.Result;
            var sb   = new StringBuilder();

            var welcomeMessage = data.WelcomeMessage;
            await PveSystem.ClientAwaitPvEModeFromServer();

            // Header 0 - Community server
            if (!Client.CurrentGame.IsConnectedToOfficialServer)
            {
                sb.AppendLine(h1s + HeaderDescriptionCommunity + h1c)
                .AppendLine(br)
                .AppendLine(DescriptionCommunity)
                .AppendLine(brbr);
            }

            // Header 1 - Server welcome message (section displayed only when available)
            if (!string.IsNullOrWhiteSpace(welcomeMessage))
            {
                sb.AppendLine(h1s + HeaderWelcomeMessage + h1c)
                .AppendLine(br)
                .AppendLine(welcomeMessage)
                .AppendLine(brbr);
            }

            // Header 2 - PvP or PvE server description
            var isPveServer = PveSystem.ClientIsPve(logErrorIfDataIsNotYetAvailable: true);

            if (isPveServer)
            {
                sb.AppendLine(h1s + HeaderDescriptionPvE + h1c)
                .AppendLine(br)
                .AppendLine(DescriptionPvE)
                .AppendLine(brbr);
            }
            else // PvP server
            {
                sb.AppendLine(h1s + HeaderDescriptionPvP + h1c)
                .AppendLine(br)
                .AppendLine(DescriptionPvP)
                .AppendLine(brbr);
            }

            // Header 3 - Modded server (if the server is modded)
            if (Client.CurrentGame.ServerInfo.ModsOnServer.Count > 0)
            {
                sb.AppendLine(h1s + HeaderModded + h1c)
                .AppendLine(br)
                .AppendLine(DescriptionModded)
                .AppendLine(brbr);
            }

            // Header 4 - Server wipe information
            sb.AppendLine(h1s + HeaderWipeInformation + h1c)
            .AppendLine(br);

            if (data.ScheduledWipeDateUtc.HasValue)
            {
                sb.AppendLine(string.Format(CoreStrings.ServerWipeInfoStartedDate_Format,
                                            FormatDate(Client.CurrentGame.ServerInfo.CreationDateUtc.ToLocalTime())))
                .AppendLine(br)
                .AppendLine(string.Format(CoreStrings.ServerWipeInfoNextWipeDate_Format,
                                          FormatDate(data.ScheduledWipeDateUtc.Value.ToLocalTime())))
                .AppendLine(br)
                .AppendLine(ClientLocalTimeZoneHelper.GetTextTimeAlreadyConvertedToLocalTimeZone());
            }
            else if (Client.CurrentGame.IsConnectedToOfficialServer &&
                     isPveServer)
            {
                sb.AppendLine(CoreStrings.ServerWipeInfoOnMajorUpdatesOnly);
            }
            else
            {
                sb.AppendLine(CoreStrings.ServerWipeInfoNotSpecified
                              + " "
                              + CoreStrings.ConsultServerAdministrator);
            }

            return(new WelcomeMessageRemoteData(sb.ToString(), data.ScheduledWipeDateUtc));
        }
コード例 #3
0
        private async static void InitPVE()
        {
            await PveSystem.ClientAwaitPvEModeFromServer();

            IsPVE = PveSystem.ClientIsPve(false);
        }