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); }
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)); }
private async static void InitPVE() { await PveSystem.ClientAwaitPvEModeFromServer(); IsPVE = PveSystem.ClientIsPve(false); }