Skip to content

Commit

Permalink
fix neoforge mod & jumplist launch
Browse files Browse the repository at this point in the history
  • Loading branch information
natsurainko committed Sep 10, 2023
1 parent 46621bb commit 4844805
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 17 deletions.
2 changes: 1 addition & 1 deletion Natsurainko.FluentCore
41 changes: 25 additions & 16 deletions Natsurainko.FluentLauncher/Services/Launch/LaunchService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -399,32 +399,41 @@ private IEnumerable<string> GetExtraGameParameters(GameSpecialConfig specialConf
}
}

private static async void UpdateJumpList(GameInfo gameInfo)
private static void UpdateJumpList(GameInfo gameInfo) => Task.Run(async () =>
{
var jumpList = await JumpList.LoadCurrentAsync();
var args = JsonSerializer.Serialize(gameInfo).ConvertToBase64();
var latest = jumpList.Items.Where(x => x.GroupName.Equals("Latest")).ToList();
var latest = jumpList.Items.Where(x =>
{
var gameInfo = JsonSerializer.Deserialize<GameInfo>(x.Arguments.Replace("/quick-launch ", string.Empty).ConvertFromBase64());
return x.GroupName.Equals("Latest") &&
Path.Exists(Path.Combine(gameInfo.MinecraftFolderPath, "versions", gameInfo.AbsoluteId, $"{gameInfo.AbsoluteId}.json"));
}).Take(6).ToList();
var jumpListItem = JumpListItem.CreateWithArguments($"/quick-launch {args}", gameInfo.Name);
if (!latest.Where(x => x.DisplayName.Equals(gameInfo.Name)).Any())
jumpListItem.Logo = new Uri(string.Format("ms-appx:///Assets/Icons/{0}.png", !gameInfo.IsVanilla ? "furnace_front" : gameInfo.Type switch
{
var jumpListItem = JumpListItem.CreateWithArguments($"/quick-launch {args}", gameInfo.Name);
"release" => "grass_block_side",
"snapshot" => "crafting_table_front",
"old_beta" => "dirt_path_side",
"old_alpha" => "dirt_path_side",
_ => "grass_block_side"
}), UriKind.RelativeOrAbsolute);
jumpListItem.Logo = new Uri(string.Format("ms-appx:///Assets/Icons/{0}.png", !gameInfo.IsVanilla ? "furnace_front" : gameInfo.Type switch
{
"release" => "grass_block_side",
"snapshot" => "crafting_table_front",
"old_beta" => "dirt_path_side",
"old_alpha" => "dirt_path_side",
_ => "grass_block_side"
}), UriKind.RelativeOrAbsolute);
jumpListItem.GroupName = "Latest";
jumpListItem.GroupName = "Latest";
if (latest.Where(x => x.DisplayName.Equals(gameInfo.Name)).FirstOrDefault() is JumpListItem equalsItem)
latest.Remove(equalsItem);
jumpList.Items.Add(jumpListItem);
latest.Insert(0, jumpListItem);
jumpList.Items.Clear();
}
foreach (var item in latest)
jumpList.Items.Add(item);
await jumpList.SaveAsync();
}
});
}
1 change: 1 addition & 0 deletions Natsurainko.FluentLauncher/Utils/GameInfoExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ public static bool IsSupportMod(this GameInfo gameInfo)

if (!(loaders.Contains(ModLoaderType.Forge) ||
loaders.Contains(ModLoaderType.Fabric) ||
loaders.Contains(ModLoaderType.NeoForge) ||
loaders.Contains(ModLoaderType.Quilt) ||
loaders.Contains(ModLoaderType.LiteLoader)))
return false;
Expand Down

0 comments on commit 4844805

Please sign in to comment.