From 7c2d05fa985dbfd642fb1abab49656b8721b671e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arley=20P=C3=A1dua?= Date: Fri, 6 Dec 2024 21:01:54 +0100 Subject: [PATCH] fix: small bugs --- src/PKHeX.Facade/Repositories/FormRepository.cs | 15 ++++++++++++--- src/PKHeX.Facade/Repositories/ItemRepository.cs | 6 ++++-- src/PKHeX.Web/_js/lib/files/files.ts | 2 +- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/PKHeX.Facade/Repositories/FormRepository.cs b/src/PKHeX.Facade/Repositories/FormRepository.cs index 76cf97e..b8bc808 100644 --- a/src/PKHeX.Facade/Repositories/FormRepository.cs +++ b/src/PKHeX.Facade/Repositories/FormRepository.cs @@ -5,9 +5,18 @@ namespace PKHeX.Facade.Repositories; public static class FormRepository { - public static IEnumerable GetFor(Species species, EntityContext context) => - FormConverter.GetFormList((ushort)species, GameInfo.Strings.types, GameInfo.Strings.forms, [], context) - .Select((form, index) => new FormDefinition((ushort)index, form)); + public static IEnumerable GetFor(Species species, EntityContext context) + { + try + { + return FormConverter.GetFormList((ushort)species, GameInfo.Strings.types, GameInfo.Strings.forms, [], context) + .Select((form, index) => new FormDefinition((ushort)index, form)); + } + catch (ArgumentOutOfRangeException) + { + return Array.Empty(); + } + } public static IEnumerable GetFor(PKM pokemon) => GetFor((Species)pokemon.Species, pokemon.Context); diff --git a/src/PKHeX.Facade/Repositories/ItemRepository.cs b/src/PKHeX.Facade/Repositories/ItemRepository.cs index 55d5c69..fa3e866 100644 --- a/src/PKHeX.Facade/Repositories/ItemRepository.cs +++ b/src/PKHeX.Facade/Repositories/ItemRepository.cs @@ -30,11 +30,11 @@ public ItemRepository(SaveFile saveFile) } public ISet GameItems => _gameItems.Values.ToHashSet(); - public ItemDefinition GetGameItem(ushort id) => _gameItems[id]; + public ItemDefinition GetGameItem(ushort id) => _gameItems.GetValueOrDefault(id) ?? ItemDefinition.Unknown(id); public ItemDefinition? GetGameItemByName(string name) => _gameItems.Values .FirstOrDefault(i => i.Name.Equals(name, StringComparison.InvariantCultureIgnoreCase)); - public static ItemDefinition GetItem(ushort id) => AllItemsById[id]; + public static ItemDefinition GetItem(ushort id) => AllItemsById.GetValueOrDefault(id) ?? ItemDefinition.Unknown(id); public static ItemDefinition? GetItemByName(string name) => AllItemsById.Values .FirstOrDefault(i => i.Name.Equals(name, StringComparison.InvariantCultureIgnoreCase)); public static ISet AllBalls() => AllBallsById.Values.ToHashSet(); @@ -46,4 +46,6 @@ public record ItemDefinition(ushort Id, string Name) public static readonly int None = 0; public bool IsNone => Id == None; + + public static ItemDefinition Unknown(ushort id) => new(id, $"Unknown Item {id}"); } \ No newline at end of file diff --git a/src/PKHeX.Web/_js/lib/files/files.ts b/src/PKHeX.Web/_js/lib/files/files.ts index c3fd547..46302e0 100644 --- a/src/PKHeX.Web/_js/lib/files/files.ts +++ b/src/PKHeX.Web/_js/lib/files/files.ts @@ -2,7 +2,7 @@ import {ContentStreamReference} from "../blazor/types.ts"; export async function downloadFileFromStream(fileName: string, contentStreamReference: ContentStreamReference) { const arrayBuffer = await contentStreamReference.arrayBuffer(); - const blob = new Blob([arrayBuffer]); + const blob = new Blob([arrayBuffer], {type: 'application/octet-stream'}); const url = URL.createObjectURL(blob); const anchorElement = document.createElement('a'); anchorElement.href = url;