diff --git a/OshimaServers/AnonymousServer.cs b/OshimaServers/AnonymousServer.cs index 6f8dd4c..6cbc90e 100644 --- a/OshimaServers/AnonymousServer.cs +++ b/OshimaServers/AnonymousServer.cs @@ -144,50 +144,60 @@ namespace Oshima.FunGame.OshimaServers }, true); TaskScheduler.Shared.AddTask("刷新每日任务", new TimeSpan(4, 0, 0), () => { - string directoryPath = $@"{AppDomain.CurrentDomain.BaseDirectory}configs/quests"; - if (Directory.Exists(directoryPath)) + // 刷新每日任务 + Task.Run(() => { - string[] filePaths = Directory.GetFiles(directoryPath); - foreach (string filePath in filePaths) + string directoryPath = $@"{AppDomain.CurrentDomain.BaseDirectory}configs/quests"; + if (Directory.Exists(directoryPath)) { - string fileName = Path.GetFileNameWithoutExtension(filePath); - EntityModuleConfig quests = new("quests", fileName); - quests.Clear(); - FunGameService.CheckQuestList(quests); - quests.SaveConfig(); + string[] filePaths = Directory.GetFiles(directoryPath); + foreach (string filePath in filePaths) + { + string fileName = Path.GetFileNameWithoutExtension(filePath); + EntityModuleConfig quests = new("quests", fileName); + quests.Clear(); + FunGameService.CheckQuestList(quests); + quests.SaveConfig(); + } + Controller.WriteLine("刷新每日任务"); } - Controller.WriteLine("刷新每日任务"); - } - // 刷新签到 - directoryPath = $@"{AppDomain.CurrentDomain.BaseDirectory}configs/saved"; - if (Directory.Exists(directoryPath)) + }); + Task.Run(() => { - string[] filePaths = Directory.GetFiles(directoryPath); - foreach (string filePath in filePaths) + // 刷新签到 + string directoryPath = $@"{AppDomain.CurrentDomain.BaseDirectory}configs/saved"; + if (Directory.Exists(directoryPath)) { - string fileName = Path.GetFileNameWithoutExtension(filePath); - PluginConfig pc = new("saved", fileName); - pc.LoadConfig(); - pc.Add("signed", false); - pc.SaveConfig(); + string[] filePaths = Directory.GetFiles(directoryPath); + foreach (string filePath in filePaths) + { + string fileName = Path.GetFileNameWithoutExtension(filePath); + PluginConfig pc = new("saved", fileName); + pc.LoadConfig(); + pc.Add("signed", false); + pc.SaveConfig(); + } + Controller.WriteLine("刷新签到"); } - Controller.WriteLine("刷新签到"); - } - // 刷新商店 - directoryPath = $@"{AppDomain.CurrentDomain.BaseDirectory}configs/stores"; - if (Directory.Exists(directoryPath)) + }); + Task.Run(() => { - string[] filePaths = Directory.GetFiles(directoryPath); - foreach (string filePath in filePaths) + // 刷新商店 + string directoryPath = $@"{AppDomain.CurrentDomain.BaseDirectory}configs/stores"; + if (Directory.Exists(directoryPath)) { - string fileName = Path.GetFileNameWithoutExtension(filePath); - EntityModuleConfig store = new("stores", fileName); - store.Clear(); - FunGameService.CheckDailyStore(store); - store.SaveConfig(); + string[] filePaths = Directory.GetFiles(directoryPath); + foreach (string filePath in filePaths) + { + string fileName = Path.GetFileNameWithoutExtension(filePath); + EntityModuleConfig store = new("stores", fileName); + store.Clear(); + FunGameService.CheckDailyStore(store); + store.SaveConfig(); + } + Controller.WriteLine("刷新签到"); } - Controller.WriteLine("刷新签到"); - } + }); }); TaskScheduler.Shared.AddRecurringTask("刷新boss", TimeSpan.FromHours(1), () => { diff --git a/OshimaServers/Service/FunGameService.cs b/OshimaServers/Service/FunGameService.cs index c41c7fa..2c1eb22 100644 --- a/OshimaServers/Service/FunGameService.cs +++ b/OshimaServers/Service/FunGameService.cs @@ -1148,7 +1148,7 @@ namespace Oshima.FunGame.OshimaServers.Service magic.Guid = magicCard.Guid; msg = $"此魔法卡的技能已经添加到未满三个魔法的卡包上。\r\n"; } - return $"魔法【{magic.Name}】在此魔法卡包中不存在或是已经升至满级!"; + else return $"魔法【{magic.Name}】在此魔法卡包中不存在或是已经升至满级!"; } string containMagics = magicCardPack.Description.Split("增加角色属性")[0]; magicCardPack.Description = $"包含魔法:{string.Join(",", magicCardPack.Skills.Magics.Select(m => m.Name + (m.Level > 1 ? $" +{m.Level - 1}" : "")))}\r\n" + magicCardPack.Description.Replace(containMagics, ""); @@ -1567,7 +1567,8 @@ namespace Oshima.FunGame.OshimaServers.Service CreditsAward = maxProgress * 80, MaterialsAward = maxProgress / 2 * 1, Awards = items, - AwardsCount = itemsCount + AwardsCount = itemsCount, + Status = QuestState.InProgress }; } diff --git a/OshimaWebAPI/Controllers/FunGameController.cs b/OshimaWebAPI/Controllers/FunGameController.cs index dbf097c..8c56183 100644 --- a/OshimaWebAPI/Controllers/FunGameController.cs +++ b/OshimaWebAPI/Controllers/FunGameController.cs @@ -3846,9 +3846,10 @@ namespace Oshima.FunGame.WebAPI.Controllers quests.LoadConfig(); if (quests.Count > 0 && quests.Values.FirstOrDefault(q => q.Id == questid) is Quest quest) { - if (quest.Status == QuestState.InProgress) + IEnumerable workingQuests = quests.Values.Where(q => q.QuestType != QuestType.Progressive && q.Status == QuestState.InProgress); + if (workingQuests.Any()) { - msgs.Add($"你正在进行任务【{quest.Name}】,无法开始新任务!\r\n{quest}"); + msgs.Add($"你正在进行任务【{string.Join(",【", workingQuests.Select(q => q.Name))}】,无法开始新任务!\r\n{quest}"); } else if (quest.Status == QuestState.Completed) {