From 3379379a4574d19509d2dd36c51bafb8dae6cbca Mon Sep 17 00:00:00 2001 From: Assistant Date: Sat, 9 May 2020 10:28:39 -0600 Subject: [PATCH 01/18] Playlist logic --- .../Classes/External Interfaces/BeatSaver.cs | 16 ++-- .../Classes/External Interfaces/Playlists.cs | 83 +++++++++++++++++++ .../Classes/External Interfaces/Utils.cs | 23 +++-- ModAssistant/Classes/OneClickInstaller.cs | 10 ++- ModAssistant/ModAssistant.csproj | 1 + 5 files changed, 120 insertions(+), 13 deletions(-) create mode 100644 ModAssistant/Classes/External Interfaces/Playlists.cs diff --git a/ModAssistant/Classes/External Interfaces/BeatSaver.cs b/ModAssistant/Classes/External Interfaces/BeatSaver.cs index 4842a77..ed67cf7 100644 --- a/ModAssistant/Classes/External Interfaces/BeatSaver.cs +++ b/ModAssistant/Classes/External Interfaces/BeatSaver.cs @@ -13,16 +13,16 @@ namespace ModAssistant.API private static readonly string CustomSongsFolder = Path.Combine("Beat Saber_Data", "CustomLevels"); private const bool BypassDownloadCounter = false; - public static async Task GetFromKey(string Key) + public static async Task GetFromKey(string Key, bool showNotification = true) { BeatSaverApiResponse Map = await GetResponse(BeatSaverURLPrefix + "/api/maps/detail/" + Key); - await InstallMap(Map); + await InstallMap(Map, showNotification); } - public static async Task GetFromHash(string Hash) + public static async Task GetFromHash(string Hash, bool showNotification = true) { BeatSaverApiResponse Map = await GetResponse(BeatSaverURLPrefix + "/api/maps/by-hash/" + Hash); - await InstallMap(Map); + await InstallMap(Map, showNotification); } private static async Task GetResponse(string url) @@ -41,21 +41,23 @@ namespace ModAssistant.API } } - public static async Task InstallMap(BeatSaverApiResponse Map) + public static async Task InstallMap(BeatSaverApiResponse Map, bool showNotification = true) { string zip = Path.Combine(Utils.BeatSaberPath, CustomSongsFolder, Map.hash) + ".zip"; string mapName = string.Concat(($"{Map.key} ({Map.metadata.songName} - {Map.metadata.levelAuthorName})") .Split(ModAssistant.Utils.Constants.IllegalCharacters)); string directory = Path.Combine(Utils.BeatSaberPath, CustomSongsFolder, mapName); +#pragma warning disable CS0162 // Unreachable code detected if (BypassDownloadCounter) { - await Utils.DownloadAsset(BeatSaverURLPrefix + Map.directDownload, CustomSongsFolder, Map.hash + ".zip", mapName); + await Utils.DownloadAsset(BeatSaverURLPrefix + Map.directDownload, CustomSongsFolder, Map.hash + ".zip", mapName, showNotification); } else { - await Utils.DownloadAsset(BeatSaverURLPrefix + Map.downloadURL, CustomSongsFolder, Map.hash + ".zip", mapName); + await Utils.DownloadAsset(BeatSaverURLPrefix + Map.downloadURL, CustomSongsFolder, Map.hash + ".zip", mapName, showNotification); } +#pragma warning restore CS0162 // Unreachable code detected if (File.Exists(zip)) { diff --git a/ModAssistant/Classes/External Interfaces/Playlists.cs b/ModAssistant/Classes/External Interfaces/Playlists.cs new file mode 100644 index 0000000..a1f79dc --- /dev/null +++ b/ModAssistant/Classes/External Interfaces/Playlists.cs @@ -0,0 +1,83 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Net; +using System.Threading.Tasks; +using static ModAssistant.Http; +using System.Windows; + +namespace ModAssistant.API +{ + public class Playlists + { + private const string BSaberURLPrefix = "https://bsaber.com/PlaylistAPI/"; + private const string PlaylistsFolder = "Playlists"; + private static readonly string BeatSaberPath = Utils.BeatSaberPath; + + public static async Task DownloadAll(Uri uri) + { + switch (uri.Host) + { + case "playlist": + Uri url = new Uri($"{uri.LocalPath.Trim('/')}"); + string filename = await Get(url); + await DownloadFrom(filename); + break; + + } + } + + public static async Task Get(Uri url) + { + string filename = url.Segments.Last(); + string absolutePath = Path.Combine(BeatSaberPath, PlaylistsFolder, filename); + try + { + await Utils.DownloadAsset(url.ToString(), PlaylistsFolder, filename); + return absolutePath; + } + catch + { + return null; + } + } + + public static async Task DownloadFrom(string file) + { + Playlist playlist = JsonSerializer.Deserialize(File.ReadAllText(file)); + int songCount = playlist.songs.Length; + int processedSongs = 0; + foreach (Playlist.Song song in playlist.songs) + { + if (!string.IsNullOrEmpty(song.hash)) + { + await BeatSaver.GetFromHash(song.hash, false); + } + else if (!string.IsNullOrEmpty(song.key)) + { + await BeatSaver.GetFromKey(song.key, false); + } + processedSongs++; + } + } + + + class Playlist + { + public string playlistTitle { get; set; } + public string playlistAuthor { get; set; } + public string image { get; set; } + public Song[] songs { get; set; } + + public class Song + { + public string key { get; set; } + public string hash { get; set; } + public string songName { get; set; } + public string uploader { get; set; } + } + } + } +} diff --git a/ModAssistant/Classes/External Interfaces/Utils.cs b/ModAssistant/Classes/External Interfaces/Utils.cs index 282481b..4588a47 100644 --- a/ModAssistant/Classes/External Interfaces/Utils.cs +++ b/ModAssistant/Classes/External Interfaces/Utils.cs @@ -11,12 +11,18 @@ namespace ModAssistant.API { public static readonly string BeatSaberPath = App.BeatSaberInstallDirectory; + public static async Task DownloadAsset(string link, string folder, bool showNotifcation, string fileName = null) + { + await DownloadAsset(link, folder, fileName, null, showNotifcation); + } + public static async Task DownloadAsset(string link, string folder, string fileName = null, string displayName = null) { - if (string.IsNullOrEmpty(displayName)) - { - displayName = Path.GetFileNameWithoutExtension(fileName); - } + await DownloadAsset(link, folder, fileName, displayName, true); + } + + public static async Task DownloadAsset(string link, string folder, string fileName, string displayName, bool showNotification) + { if (string.IsNullOrEmpty(BeatSaberPath)) { ModAssistant.Utils.SendNotify((string)Application.Current.FindResource("OneClick:InstallDirNotFound")); @@ -32,9 +38,16 @@ namespace ModAssistant.API { fileName = WebUtility.UrlDecode(Path.Combine(BeatSaberPath, folder, fileName)); } + if (string.IsNullOrEmpty(displayName)) + { + displayName = Path.GetFileNameWithoutExtension(fileName); + } await ModAssistant.Utils.Download(link, fileName); - ModAssistant.Utils.SendNotify(string.Format((string)Application.Current.FindResource("OneClick:InstalledAsset"), displayName)); + if (showNotification) + { + ModAssistant.Utils.SendNotify(string.Format((string)Application.Current.FindResource("OneClick:InstalledAsset"), displayName)); + } } catch { diff --git a/ModAssistant/Classes/OneClickInstaller.cs b/ModAssistant/Classes/OneClickInstaller.cs index 9c34a6b..9d0206d 100644 --- a/ModAssistant/Classes/OneClickInstaller.cs +++ b/ModAssistant/Classes/OneClickInstaller.cs @@ -8,7 +8,7 @@ namespace ModAssistant { class OneClickInstaller { - private static readonly string[] Protocols = new[] { "modelsaber", "beatsaver" }; + private static readonly string[] Protocols = new[] { "modelsaber", "beatsaver", "bsplaylist" }; public static async Task InstallAsset(string link) { @@ -23,6 +23,9 @@ namespace ModAssistant case "beatsaver": await BeatSaver(uri); break; + case "bsplaylist": + await Playlist(uri); + break; } } @@ -37,6 +40,11 @@ namespace ModAssistant await API.ModelSaber.GetModel(uri); } + private static async Task Playlist(Uri uri) + { + await API.Playlists.DownloadAll(uri); + } + public static void Register(string Protocol, bool Background = false) { if (IsRegistered(Protocol) == true) diff --git a/ModAssistant/ModAssistant.csproj b/ModAssistant/ModAssistant.csproj index ec0f7cb..c3a3b40 100644 --- a/ModAssistant/ModAssistant.csproj +++ b/ModAssistant/ModAssistant.csproj @@ -67,6 +67,7 @@ + From 11551bfcd545a8cb0ff4e9646c075603b6a19f61 Mon Sep 17 00:00:00 2001 From: Awagi Date: Thu, 14 May 2020 01:23:30 +0200 Subject: [PATCH 02/18] French localisation Translated terms in French Also Wiki links redirect to French pages --- ModAssistant/Localisation/fr.xaml | 238 ++++++++++++++++++++++++++++++ 1 file changed, 238 insertions(+) create mode 100644 ModAssistant/Localisation/fr.xaml diff --git a/ModAssistant/Localisation/fr.xaml b/ModAssistant/Localisation/fr.xaml new file mode 100644 index 0000000..facb55d --- /dev/null +++ b/ModAssistant/Localisation/fr.xaml @@ -0,0 +1,238 @@ + + i18n:fr-FR + + + Impossible de trouver le dossier d'installation de Beat Saber ! + Appuyez sur OK pour réessayer, ou Annuler pour fermer l'application. + Argument invalide ! '{0}' nécessite une option. + Argument non reconnu. Fermeture de Mod Assistant. + Une exception non gérée est survenue + Exception + + + ModAssistant + Intro + Mods + À propos + Options + Version du jeu + Version + Info sur le mod + Installer + ou Mettre à jour + Impossible de charger les versions du jeu, l'onglet Mods sera indisponible. + Nouvelle version du jeu détectée ! + Il semble que le jeu a été mis à jour. + Veuillez vous assurer que la bonne version soit sélectionnée en bas à gauche ! + Aucun mod sélectionné ! + {0} n'a pas de page informative. + + + Intro + Bienvenue sur Mod Assistant + Veuillez lire cette page entièrement et avec attention + + En utilisant ce programme, vous attestez que vous avez lu et accepté les modalités suivantes : + + + Beat Saber + ne supporte + pas nativement les mods. Cela signifie que : + + + Les mods + dysfonctionneront à chaque mise à jour. C'est normal, et ce + n'est + pas la faute de Beat Games. + + + Les mods + causeront des bugs et des problèmes de performance. Ce + n'est + pas la faute de Beat Games. + + + Les mods sont créés + gratuitement par des gens gens sur leur + temps libre. Veuillez être patient et compréhensif. + + + NE laissez + PAS de commentaires négatifs parce que les mods ne fonctionnent plus. Ce + n'est + pas la faute de Beat Games. + Ils n'essaient pas de tuer les mods. + + + Si je continue de voir des gens laisser des commentaires négatifs + parce que les mods ne fonctionnent plus, + + Je vais tuer personnellement les mods avec une cuillère rouillée + + + Veuillez lire le Guide du Débutant sur le + + Wiki + . + + J'accepte + Je refuse + Fermeture de l'application : Vous n'avez pas accepté les modalités et conditions. + Impossible de télécharger la liste des versions + Onglet Mods désactivé. Veuillez relancer pour réessayer. + Vous pouvez désormais l'onglet Mods ! + + + Mods + Nom + Installé + Dernier + Description + Désinstaller + Désinstaller + Impossible de charger la liste des mods + Vérification des mods installés + Chargement des mods + Fin: mods chargés + Installation de {0} + {0} installé + Fin: mods installés + Impossible de trouver le lien de téléchargement de {0} + Désinstaller {0}? + Êtes-vous sûr de vouloir supprimer {0} ? + Cela pourrait faire dysfonctionner d'autres mods installés + Échec de l'extraction de {0}, nouvelle tentative dans {1} secondes. ({2}/{3}) + Échec de l'extraction de {0} après le max de tentatives ({1}), skipping. Ce mod pourrait ne pas fonctionner correctement, continuez à vos propres risques + + + À propos + À propos de Mod Assistant + Je suis Assistant, et je réalise Mod Assistant pour l'assistance aux mods, avec quelques principes en tête : + Simplicité + Portabilité + Exécutable unique + Utilisation responsable + + Si vous aimez ce programme et souhaitez me soutenir, veuillez visiter ma + + page de don + + ou mon + + Patreon + + + Remerciements particuliers ♥ + Faire un don + Caresses-tête + Calins + + + Options + Paramètres + Dossier d'installation + Sélectionner un dossier + Ouvrir le dossier + Sauvegarder les mods sélectionnés + Détecter les mods installés + Sélectionner les mods installés + Réinstaller les mods installés + Activer les installations OneClick™ + BeatSaver + ModelSaber + Type du jeu + Steam + Oculus + Diagnostic + Ouvrir les Logs + Ouvrir AppData + Désinstaller BSIPA + Supprimer tous les mods + Thème de l'application + Exporter le modèle + Envoi des logs + URL des logs copié dans le presse-papier ! + L'envoi des logs a échoué + L'envoi des logs a échoué ! + Impossible d'envoyer le fichier de logs à Teknik, veuillez réessayer ou envoyer le fichier manuellement. + Récupération de la liste des mods + Découverte de la version de BSIPA + BSIPA désinstallé + Désinstaller les mods ? + Êtes-vous sûr de vouloir supprimer TOUS les mods ? + Cela ne peut pas être annulé. + Tous les mods ont été désinstallés + Le thème actuel a été supprimé, passage en thème par défaut... + Dossier Themes non trouvé ! Essayez d'exporter le modèle... + Dossier AppData non trouvé ! Essayez de lancer votre jeu. + + + Chargement des mods + + + Invalide + Installation invalide détectée + Votre installation du jeu est corrompue sinon invalide + Cela peut survenir si votre copie du jeu est piratée, ou si vous copiez une copie piratée sur votre installation légitime + + Si votre copie du jeu est piratée, + veuillez acheter le jeu + + ICI + + . + + + Si votre copie du jeu + n'est + pas piratée, veuillez + + faire une installation propre + . + + + Si cela n'aide pas, demandez de l'aide au support dans le canal textuel + #support dans + + BSMG + . + + Si vous utilisiez une version piratée mais avez acheté le jeu depuis + Sélectionner un dossier + Vous devez relancer Mod Assistant après avoir choisi l'installation légitime + + + Impossible de récupérer les détails de la map. + Impossible de télécharger la musique. + Impossible de télécharger la musique. + Il pourrait y avoir des problèmes avec BeatSaver ou votre connexion Internet. + Échec du téléchargement du ZIP de la musique + Chemin de l'installation de Beat Saber non trouvé. + Installé: {0} + Échec de l'installation. + {0} : gestionnaires d'installation OneClick™ inscrits ! + {0} : gestionnaires d'installation OneClick™ désinscrits ! + + + Thème non trouvé, passage en thème par défaut... + Thème défini sur {0}. + {0} n'existe pas. + Modèle du thème "{0}" sauvegardé dans le dossier Themes. + Le modèle du thème existe déjà ! + Échec du chargement du fichier .xaml pour le thème {0} : {1} + + + Impossible de vérifier les mises à jour. + Impossible de télécharger la mise à jour. + + + Mod Assistant + Impossible de détecter le dossier d'installation de Beat Saber. Veuillez le sélectionner manuellement. + Mod Assistant a besoin de lancer cette tâche en administrateur. Veuillez réessayer. + Sélectionnez le dossier d'installation de Beat Saber + Impossible d'ouvrir le dossier : {0} + From 601031483586ac016f544078a1802d16dc12a68a Mon Sep 17 00:00:00 2001 From: Awagi Date: Thu, 14 May 2020 11:55:36 +0200 Subject: [PATCH 03/18] Fixed typos and reviewed --- ModAssistant/Localisation/fr.xaml | 34 +++++++++++++++---------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/ModAssistant/Localisation/fr.xaml b/ModAssistant/Localisation/fr.xaml index facb55d..aa2523c 100644 --- a/ModAssistant/Localisation/fr.xaml +++ b/ModAssistant/Localisation/fr.xaml @@ -57,7 +57,7 @@ Les mods sont créés - gratuitement par des gens gens sur leur + gratuitement par des gens sur leur temps libre. Veuillez être patient et compréhensif. @@ -65,13 +65,13 @@ PAS de commentaires négatifs parce que les mods ne fonctionnent plus. Ce n'est pas la faute de Beat Games. - Ils n'essaient pas de tuer les mods. + Ils n'essaient pas de faire disparaître les mods. Si je continue de voir des gens laisser des commentaires négatifs parce que les mods ne fonctionnent plus, - Je vais tuer personnellement les mods avec une cuillère rouillée + J'irai personnellement liquider les mods avec une cuillère rouillée Veuillez lire le Guide du Débutant sur le @@ -81,32 +81,32 @@ J'accepte Je refuse - Fermeture de l'application : Vous n'avez pas accepté les modalités et conditions. + Fermeture de l'application : vous n'avez pas accepté les modalités et conditions. Impossible de télécharger la liste des versions Onglet Mods désactivé. Veuillez relancer pour réessayer. - Vous pouvez désormais l'onglet Mods ! + Vous pouvez désormais utiliser l'onglet Mods ! Mods Nom Installé - Dernier + Récent Description Désinstaller Désinstaller Impossible de charger la liste des mods Vérification des mods installés Chargement des mods - Fin: mods chargés + Fin : mods chargés Installation de {0} {0} installé - Fin: mods installés + Fin : mods installés Impossible de trouver le lien de téléchargement de {0} - Désinstaller {0}? + Désinstaller {0} ? Êtes-vous sûr de vouloir supprimer {0} ? Cela pourrait faire dysfonctionner d'autres mods installés Échec de l'extraction de {0}, nouvelle tentative dans {1} secondes. ({2}/{3}) - Échec de l'extraction de {0} après le max de tentatives ({1}), skipping. Ce mod pourrait ne pas fonctionner correctement, continuez à vos propres risques + Échec de l'extraction de {0} après le maximum de tentatives ({1}), abandon. Ce mod pourrait ne pas fonctionner correctement, continuez à vos propres risques À propos @@ -129,7 +129,7 @@ Remerciements particuliers ♥ Faire un don Caresses-tête - Calins + Câlins Options @@ -148,14 +148,14 @@ Steam Oculus Diagnostic - Ouvrir les Logs + Ouvrir les logs Ouvrir AppData Désinstaller BSIPA Supprimer tous les mods Thème de l'application Exporter le modèle Envoi des logs - URL des logs copié dans le presse-papier ! + URL des logs copiée dans le presse-papier ! L'envoi des logs a échoué L'envoi des logs a échoué ! Impossible d'envoyer le fichier de logs à Teknik, veuillez réessayer ou envoyer le fichier manuellement. @@ -166,7 +166,7 @@ Êtes-vous sûr de vouloir supprimer TOUS les mods ? Cela ne peut pas être annulé. Tous les mods ont été désinstallés - Le thème actuel a été supprimé, passage en thème par défaut... + Le thème actuel a été supprimé, passage au thème par défaut... Dossier Themes non trouvé ! Essayez d'exporter le modèle... Dossier AppData non trouvé ! Essayez de lancer votre jeu. @@ -195,7 +195,7 @@ . - Si cela n'aide pas, demandez de l'aide au support dans le canal textuel + Si cela n'a pas fonctionné, demandez de l'aide au support dans le canal textuel #support dans BSMG @@ -212,13 +212,13 @@ Il pourrait y avoir des problèmes avec BeatSaver ou votre connexion Internet. Échec du téléchargement du ZIP de la musique Chemin de l'installation de Beat Saber non trouvé. - Installé: {0} + Installé : {0} Échec de l'installation. {0} : gestionnaires d'installation OneClick™ inscrits ! {0} : gestionnaires d'installation OneClick™ désinscrits ! - Thème non trouvé, passage en thème par défaut... + Thème non trouvé, passage au thème par défaut... Thème défini sur {0}. {0} n'existe pas. Modèle du thème "{0}" sauvegardé dans le dossier Themes. From 2fb34aac5d4196d638f0c38558819adca99364b8 Mon Sep 17 00:00:00 2001 From: Kariko <38972920+mischiminator@users.noreply.github.com> Date: Fri, 15 May 2020 08:55:23 +0200 Subject: [PATCH 04/18] Created de.xaml German translation for Mod Assisstant --- ModAssistant/Localisation/de.xaml | 232 ++++++++++++++++++++++++++++++ 1 file changed, 232 insertions(+) create mode 100644 ModAssistant/Localisation/de.xaml diff --git a/ModAssistant/Localisation/de.xaml b/ModAssistant/Localisation/de.xaml new file mode 100644 index 0000000..3f5fc96 --- /dev/null +++ b/ModAssistant/Localisation/de.xaml @@ -0,0 +1,232 @@ + + i18n:en-US + + + Der Beat Saber Installationsordner konnte nicht gefunden werden! + Drücke OK um es erneut zu versuchen, oder Abbrechen um das Programm zu beenden. + Ungültiges Argument! '{0}' benötigt eine Option. + Unbekanntes Argument. Beende Mod Assistant. + Eine nicht behandelte Ausnahme ist aufgetreten + Ausnahme + + + ModAssistant + Intro + Mods + Über + Optionen + Spiel Version + Version + Mod Info + Installieren/ + Aktualisieren + Spielversion konnte nicht geladen werden, der Mods Tab wird nicht verfügbar sein. + Neue Spielversion gefunden! + Es scheint ein Spiel Update gegeben zu haben. + Bitte prüfe ob unten links die richtige Version ausgewählt ist! + Kein Mod ausgewählt! + {0} hat keine Informationsseite. + + + Intro + Willkommen bei Mod Assistant + Bitte lies diese Seite vollständig und aufmerksam! + + Durch Nutzung des Programms wird bestätigt, dass folgende Bedinungen gelesen und akzeptiert wurden: + + + Beat Saber + unterstützt normalerweise keine Mods. Das heißt: + + + Mods + werden nach jedem Update nicht mehr funktionieren. Dies ist normal, und + die Schuld liegt nicht bei Beat Games. + + + Mods + werden Fehler und Leistungsprobleme verursachen. Die Schuld + liegt nicht bei Beat Games. + + + Mods werden + kostenlos von Leuten in deren + Freizeit erstellt. Bitte sei geduldig und verständnissvoll. + + + Bitte gib KEINE schlechten Bewertungen weil die Mods nicht funktionieren. Die Schuld + liegt nicht bei Beat Games. + Sie versuchen nicht die Mods zu unterbinden. + + + Wenn ich weiterhin schlecht Bewertungen + wegen nicht funktionierenden Mods sehe, + + Werde ich persönlich die Mods mit einem rostigen Löffel töten + + + Bitte lies den Einsteiger Leitfaden im + + Wiki + . + + Annehmen + Ablehnen + Programm wird beendet: Du hast den Bedingunen nicht zugestimmt. + Versionsliste konnte nicht geladen werden + Mods Tab deaktiviert. Bitte Programm neu starten um es nochmal zu versuchen. + Du kannst jetzt den Mods Tab benutzen! + + + Mods + Name + Installiert + Neuste + Beschreibung + Entfernen + Entfernen + Modliste konnte nicht geladen werden + Prüfe installierte Mods + Lade Mods + Laden der Mods abgeschlossen + Installiere {0} + {0} installiert + Mod Installation abgeschlossen + Downloadlink für {0} konnte nicht gefunden werden + {0} entfernen? + Bist du dir sicher das du {0} entfernen möchtest? + Dies kann die anderen Mods unbrauchbar machen + Fehler beim Extrahieren von {0}, neuer Versuch in {1} Sekunden. ({2}/{3}) + Fehler beim Extrahieren von {0} nach {1} Versuchen, wird übersprungen. Dieser Mod funktioniert möglicherweise nicht richtig, also gehe auf eigenes Risiko vor + + + Über + Über Mod Assistant + Ich bin Assistant und ich habe Mod Assistant als Assistent für Mods mit ein paar Prinzipen im Auge gemacht: + Einfachheit + Portabilität + Nur eine Datei + Verantwortungsbewusster Umgang + + Wenn dir das Programm gefällt und du mich unterstützen möchtest, dann besuche meine + + Spendenseite + + oder mein + + Patreon + + + Besonder Dank ♥ + Spenden + Kopftätscheln + Umarmungen + + + Optionen + Einstellungen + Installations Ordner + Ordner wählen + Order öffnen + Ausgewählte Mods speichern + Installierte Mods prüfen + Installierte Mods auswählen + Installierte Mods neu installieren + OneClick™ Installation aktivieren + BeatSaver + ModelSaber + Spiel Typ + Steam + Oculus + Diagnose + Log öffnen + AppData öffnen + BSIPA entfernen + Mods entfernen + Design + Exportieren + Log wird hochgeladen + Log URL in die Zwischenablage kopiert! + Log Hochladen fehlgeschlagen! + Log Hochladen fehlgeschlagen! + Log Datei konnte nicht zu Teknik hochgeladen werden, bitte nochmal versuchen oder die Datei manuell senden. + Lade Liste der Mods + Suche BSIPA Version + BSIPA entfernt + Alle Mods entfernen? + Bist du dir sicher das du ALLE Mods entfernen möchtest? + Dies kann nicht rückgängig gemacht werden. + Alle Mods entfernt + Aktuelles Design wurde entfernt, gehe zurück zum Standart... + Designs Ordner nicht gefunden! Versuche die Vorlage zu exportieren... + AppData Ordner nicht gefunden! Versuche dein Spiel zu starten. + + + Lade Mods + + + Ungültig + Ungültige Installation erkannt + Die SPielinstallation ist beschädigt oder anderwärtig ungültig + Dies kann passieren wenn dein Spiel eine Raubkopie ist oder eine Raubkopie über eine legitime Version kopiert wurde + + Falls dein Spiel eine Raubkopie ist, + bitte kaufe das Spiel + + HIER + + . + + + Wenn dein Spiel + keine Raubkopie ist, bitte + + mach eine saubere Neuinstallation + . + + + Falls das nicht hilft, frage im + #support Kanal in der + + BSMG + . + + Falls du eine Raubkopie hattest aber das Spiel jetzt gekauft hast + Select Folder + Muss Mod Assisstant neu gestartet werden wenn eine legitime Version installiert wurde + + + Map Details konnten nicht geladen werden. + Titel konnte nicht geladen werden. + Titel konnte nicht geladen werden. + Möglicherweise gibt es Probleme mit BeatSaver oder deiner Internetverbindung. + Herunterladen der Titel ZIP fehlgeschlagen + Beat Saber Installations Pfad nicht gefunden. + Installiert: {0} + Installation fehlgeschlagen. + {0} OneClick™ Installion Handler registriert! + {0} OneClick™ Installion Handler entfernt! + + + Design nicht gefunden, gehe zurück zum Standart Design... + Design gesetzt auf: {0}. + {0} existiert nicht. + Designvorlage "{0}" in Design Ordner gespeichert. + Designvorlage existiert bereits! + Fehler beim Laden der .xaml Datei von Design {0}: {1} + + + Konnte nicht auf Aktualisierungen prüfen. + Konnte Aktualisierung nicht herunterladen. + + + Mod Assistant + Beat Saber Installationsordner konnte nicht erkannt werden. Bitte manuell auswählen. + Mod Assistant muss diese Aufgabe mit Administrator Rechten ausführen. Bitte nochmal versuchen. + Wähle den Beat Saber Installationsordner aus + Ordner konnte nicht geöffnet werden: {0} + From 39843e706c5e15566032b4a60af716d3fea54228 Mon Sep 17 00:00:00 2001 From: Assistant Date: Sat, 16 May 2020 05:31:38 -0600 Subject: [PATCH 05/18] Search bar --- ModAssistant/Localisation/en-DEBUG.xaml | 1 + ModAssistant/Localisation/en.xaml | 1 + ModAssistant/Pages/Mods.xaml | 36 ++++++++++++++++ ModAssistant/Pages/Mods.xaml.cs | 56 +++++++++++++++++++++++++ 4 files changed, 94 insertions(+) diff --git a/ModAssistant/Localisation/en-DEBUG.xaml b/ModAssistant/Localisation/en-DEBUG.xaml index d9dc848..0393e9a 100644 --- a/ModAssistant/Localisation/en-DEBUG.xaml +++ b/ModAssistant/Localisation/en-DEBUG.xaml @@ -71,6 +71,7 @@ Mods:UninstallBox:Body2 {0} {1} {2} {3} Mods:FailedExtract {0} {1} Mods:FailedExtractMaxReached + Mods:SearchLabel About:Title diff --git a/ModAssistant/Localisation/en.xaml b/ModAssistant/Localisation/en.xaml index ef57045..de625d2 100644 --- a/ModAssistant/Localisation/en.xaml +++ b/ModAssistant/Localisation/en.xaml @@ -102,6 +102,7 @@ This could break your other mods Failed to extract {0}, trying again in {1} seconds. ({2}/{3}) Failed to extract {0} after max attempts ({1}), skipping. This mod might not work properly so proceed at your own risk + Search... About diff --git a/ModAssistant/Pages/Mods.xaml b/ModAssistant/Pages/Mods.xaml index ddc8caf..bda6daf 100644 --- a/ModAssistant/Pages/Mods.xaml +++ b/ModAssistant/Pages/Mods.xaml @@ -12,15 +12,51 @@ mc:Ignorable="d"> + + + + + + + +