From 1db640d29557c8574e6442ad9824988358929e24 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Mon, 31 Dec 2018 13:03:59 -0500 Subject: add mod page link to 'missing dependency' errors for the most common dependencies --- .../wwwroot/StardewModdingAPI.metadata.json | 79 ++++++++++++++++++---- 1 file changed, 64 insertions(+), 15 deletions(-) (limited to 'src/SMAPI.Web/wwwroot') diff --git a/src/SMAPI.Web/wwwroot/StardewModdingAPI.metadata.json b/src/SMAPI.Web/wwwroot/StardewModdingAPI.metadata.json index b16cb99f..c0e48150 100644 --- a/src/SMAPI.Web/wwwroot/StardewModdingAPI.metadata.json +++ b/src/SMAPI.Web/wwwroot/StardewModdingAPI.metadata.json @@ -51,6 +51,70 @@ * mod is no longer compatible. */ "ModData": { + /********* + ** Common dependencies for friendly errors + *********/ + "Advanced Location Loader": { + "ID": "Entoarox.AdvancedLocationLoader", + "Default | UpdateKey": "Nexus:2270" + }, + + "Content Patcher": { + "ID": "Pathoschild.ContentPatcher", + "Default | UpdateKey": "Nexus:1915" + }, + + "Custom Farming Redux": { + "ID": "Platonymous.CustomFarming", + "Default | UpdateKey": "Nexus:991" + }, + + "Custom Shirts": { + "ID": "Platonymous.CustomShirts", + "Default | UpdateKey": "Nexus:2416" + }, + + "Entoarox Framework": { + "ID": "Entoarox.EntoaroxFramework", + "Default | UpdateKey": "Nexus:2269" + }, + + "JSON Assets": { + "ID": "spacechase0.JsonAssets", + "Default | UpdateKey": "Nexus:1720" + }, + + "Mail Framework": { + "ID": "DIGUS.MailFrameworkMod", + "Default | UpdateKey": "Nexus:1536" + }, + + "MTN": { + "ID": "SgtPickles.MTN", + "Default | UpdateKey": "Nexus:2256", + "~1.2.5 | Status": "AssumeBroken" // replaces Game1.multiplayer, which breaks SMAPI's multiplayer API. + }, + + "PyTK": { + "ID": "Platonymous.Toolkit", + "Default | UpdateKey": "Nexus:1726" + }, + + "SpaceCore": { + "ID": "spacechase0.SpaceCore", + "Default | UpdateKey": "Nexus:1348" + }, + + "Stardust Core": { + "ID": "Omegasis.StardustCore", + "Default | UpdateKey": "Nexus:2341" + }, + + "TMX Loader": { + "ID": "Platonymous.TMXLoader", + "Default | UpdateKey": "Nexus:1820" + }, + /********* ** Content packs *********/ @@ -172,11 +236,6 @@ "MapRemoteVersions": { "1.1": "1.0" } // manifest not updated }, - "Custom Shirts": { - "ID": "Platonymous.CustomShirts", - "Default | UpdateKey": "Nexus:2416" // keep for dependencies - }, - "Dynamic Horses": { "ID": "Bpendragon-DynamicHorses", "MapRemoteVersions": { "1.2": "1.1-release" } // manifest not updated @@ -258,11 +317,6 @@ "~1.0.1 | Status": "AssumeBroken" // doesn't do anything as of SDV 1.2.33 (bad Harmony patch?) }, - "MTN": { - "ID": "SgtPickles.MTN", - "~1.2.5 | Status": "AssumeBroken" // replaces Game1.multiplayer, which breaks SMAPI's multiplayer API. - }, - "Multiple Sprites and Portraits On Rotation (File Loading)": { "ID": "FileLoading", "MapLocalVersions": { "1.1": "1.12" } @@ -290,11 +344,6 @@ "Default | UpdateKey": "GitHub:lambui/StardewValleyMod_OmniFarm" }, - "PyTK - Platonymous Toolkit": { - "ID": "Platonymous.Toolkit", - "Default | UpdateKey": "Nexus:1726" - }, - "Point-and-Plant": { "ID": "jwdred.PointAndPlant", "MapRemoteVersions": { "1.0.3": "1.0.2" } // manifest not updated -- cgit From 60cca13d5322061a38067f91cbd28116096c4bb0 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sat, 5 Jan 2019 17:59:24 -0500 Subject: update compatibility list --- .../wwwroot/StardewModdingAPI.metadata.json | 42 +++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) (limited to 'src/SMAPI.Web/wwwroot') diff --git a/src/SMAPI.Web/wwwroot/StardewModdingAPI.metadata.json b/src/SMAPI.Web/wwwroot/StardewModdingAPI.metadata.json index c0e48150..44edf0ca 100644 --- a/src/SMAPI.Web/wwwroot/StardewModdingAPI.metadata.json +++ b/src/SMAPI.Web/wwwroot/StardewModdingAPI.metadata.json @@ -146,6 +146,11 @@ } }, + "Always Scroll Map": { + "ID": "bcmpinc.AlwaysScrollMap", + "~0.6 | Status": "AssumeBroken" // breaks newer versions of bcmpinc mods (per bcmpinc's request) + }, + "Animal Mood Fix": { "ID": "GPeters-AnimalMoodFix", "~ | Status": "Obsolete", @@ -215,6 +220,11 @@ "MapLocalVersions": { "1.2-beta": "1.2" } }, + "Craft Counter": { + "ID": "bcmpinc.CraftCounter", + "~0.6 | Status": "AssumeBroken" // breaks newer versions of bcmpinc mods (per bcmpinc's request) + }, + "Crafting Counter": { "ID": "lolpcgaming.CraftingCounter", "MapRemoteVersions": { "1.1": "1.0" } // not updated in manifest @@ -266,6 +276,11 @@ "~1.1 | Status": "AssumeBroken" // runtime errors with Harmony 1.2.0.1 in SMAPI 2.8+ }, + "Fix Animal Tools": { + "ID": "bcmpinc.FixAnimalTools", + "~0.6 | Status": "AssumeBroken" // breaks newer versions of bcmpinc mods (per bcmpinc's request) + }, + "Fix Scythe Exp": { "ID": "bcmpinc.FixScytheExp", "~0.3 | Status": "AssumeBroken" // broke in 1.3: Exception from HarmonyInstance "bcmpinc.FixScytheExp" [...] Bad label content in ILGenerator. @@ -278,7 +293,7 @@ "Grass Growth": { "ID": "bcmpinc.GrassGrowth", - "~0.3 | Status": "AssumeBroken" // broke in 1.3.29 (runtime errors: System.IndexOutOfRangeException: Could not find instruction sequence) + "~0.6 | Status": "AssumeBroken" // breaks newer versions of bcmpinc mods (per bcmpinc's request) }, "Hunger Mod (skn)": { @@ -317,6 +332,11 @@ "~1.0.1 | Status": "AssumeBroken" // doesn't do anything as of SDV 1.2.33 (bad Harmony patch?) }, + "Movement Speed": { + "ID": "bcmpinc.MovementSpeed", + "~0.6 | Status": "AssumeBroken" // breaks newer versions of bcmpinc mods (per bcmpinc's request) + }, + "Multiple Sprites and Portraits On Rotation (File Loading)": { "ID": "FileLoading", "MapLocalVersions": { "1.1": "1.12" } @@ -413,6 +433,11 @@ "~3.0.1 | Status": "AssumeBroken" // broke in SMAPI 2.6-beta.16 due to reflection into SMAPI internals }, + "Stardew Hack": { + "ID": "bcmpinc.StardewHack", + "~0.6 | Status": "AssumeBroken" // breaks newer versions of bcmpinc mods (per bcmpinc's request) + }, + "Stardew Notification": { "ID": "stardewnotification", "Default | UpdateKey": "GitHub:monopandora/StardewNotification" @@ -430,6 +455,11 @@ "~1.0.2 | Status": "AssumeBroken" // broke in SDV 1.3 (runtime errors) }, + "Tilled Soil Decay": { + "ID": "bcmpinc.TilledSoilDecay", + "~0.6 | Status": "AssumeBroken" // breaks newer versions of bcmpinc mods (per bcmpinc's request) + }, + "Time Reminder": { "ID": "KoihimeNakamura.TimeReminder", "MapLocalVersions": { "1.0-20170314": "1.0.2" } @@ -440,11 +470,21 @@ "Default | UpdateKey": "GitHub:mralbobo/stardew-tool-charging" }, + "Tree Spread": { + "ID": "bcmpinc.TreeSpread", + "~0.6 | Status": "AssumeBroken" // breaks newer versions of bcmpinc mods (per bcmpinc's request) + }, + "Variable Grass": { "ID": "dantheman999.VariableGrass", "Default | UpdateKey": "GitHub:dantheman999301/StardewMods" }, + "Yet Another Harvest With Scythe Mod": { + "ID": "bcmpinc.HarvestWithScythe", + "~0.6 | Status": "AssumeBroken" // breaks newer versions of bcmpinc mods (per bcmpinc's request) + }, + "Zoom Out Extreme": { "ID": "RockinMods.ZoomMod", "FormerIDs": "ZoomMod", // changed circa 1.2.1 -- cgit From ce55c988d1a7e7e5b622b2437e1249726536a367 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Mon, 14 Jan 2019 22:02:19 -0500 Subject: update mod compatibility list to recognise SMAPI 3.0 URLs for non-soon statuses --- src/SMAPI.Web/wwwroot/Content/js/mods.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/SMAPI.Web/wwwroot') diff --git a/src/SMAPI.Web/wwwroot/Content/js/mods.js b/src/SMAPI.Web/wwwroot/Content/js/mods.js index 28992908..b0352d36 100644 --- a/src/SMAPI.Web/wwwroot/Content/js/mods.js +++ b/src/SMAPI.Web/wwwroot/Content/js/mods.js @@ -127,6 +127,21 @@ smapi.modList = function (mods) { // set overall compatibility mod.LatestCompatibility = mod.BetaCompatibility || mod.Compatibility; + // set SMAPI 3.0 display text + switch (mod.Smapi3Status) { + case "ok": + mod.Smapi3DisplayText = "✓"; + break; + + case "broken": + mod.Smapi3DisplayText = "✖"; + break; + + default: + mod.Smapi3DisplayText = "↻ " + mod.Smapi3Status; + break; + } + // concatenate searchable text mod.SearchableText = [mod.Name, mod.AlternateNames, mod.Author, mod.AlternateAuthors, mod.Compatibility.Summary, mod.BrokeIn]; if (mod.Compatibility.UnofficialVersion) -- cgit From 1556a04a5470d520970bdf0c19f786d02e51bc7f Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Fri, 25 Jan 2019 15:12:14 -0500 Subject: add beta status filter to compatibility list --- src/SMAPI.Web/wwwroot/Content/js/mods.js | 163 ++++++++++++++----------------- 1 file changed, 71 insertions(+), 92 deletions(-) (limited to 'src/SMAPI.Web/wwwroot') diff --git a/src/SMAPI.Web/wwwroot/Content/js/mods.js b/src/SMAPI.Web/wwwroot/Content/js/mods.js index b0352d36..05114b00 100644 --- a/src/SMAPI.Web/wwwroot/Content/js/mods.js +++ b/src/SMAPI.Web/wwwroot/Content/js/mods.js @@ -2,7 +2,7 @@ var smapi = smapi || {}; var app; -smapi.modList = function (mods) { +smapi.modList = function (mods, enableBeta) { // init data var defaultStats = { total: 0, @@ -23,101 +23,73 @@ smapi.modList = function (mods) { visibleStats: $.extend({}, defaultStats), filters: { source: { - open: { - label: "open", - id: "show-open-source", - value: true - }, - closed: { - label: "closed", - id: "show-closed-source", - value: true + value: { + open: { value: true }, + closed: { value: true } } }, status: { - ok: { - label: "ok", - id: "show-status-ok", - value: true - }, - optional: { - label: "optional", - id: "show-status-optional", - value: true - }, - unofficial: { - label: "unofficial", - id: "show-status-unofficial", - value: true - }, - workaround: { - label: "workaround", - id: "show-status-workaround", - value: true - }, - broken: { - label: "broken", - id: "show-status-broken", - value: true - }, - abandoned: { - label: "abandoned", - id: "show-status-abandoned", - value: true - }, - obsolete: { - label: "obsolete", - id: "show-status-obsolete", - value: true + label: enableBeta ? "main status" : "status", + value: { + // note: keys must match status returned by the API + ok: { value: true }, + optional: { value: true }, + unofficial: { value: true }, + workaround: { value: true }, + broken: { value: true }, + abandoned: { value: true }, + obsolete: { value: true } } }, + betaStatus: { + label: "beta status", + value: {} // cloned from status field if needed + }, download: { - chucklefish: { - label: "Chucklefish", - id: "show-chucklefish", - value: true - }, - moddrop: { - label: "ModDrop", - id: "show-moddrop", - value: true - }, - nexus: { - label: "Nexus", - id: "show-nexus", - value: true - }, - custom: { - label: "custom", - id: "show-custom", - value: true + value: { + chucklefish: { value: true, label: "Chucklefish" }, + moddrop: { value: true, label: "ModDrop" }, + nexus: { value: true, label: "Nexus" }, + custom: { value: true } } }, - "SMAPI 3.0": { - ok: { - label: "ready", - id: "show-smapi-3-ready", - value: true - }, - soon: { - label: "soon", - id: "show-smapi-3-soon", - value: true - }, - broken: { - label: "broken", - id: "show-smapi-3-broken", - value: true - }, - unknown: { - label: "unknown", - id: "show-smapi-3-unknown", - value: true + smapi3: { + label: "SMAPI 3.0", + value: { + // note: keys must match status returned by the API + ok: { value: true, label: "ready" }, + soon: { value: true }, + broken: { value: true }, + unknown: { value: true } } } }, search: "" }; + + // init filters + Object.entries(data.filters).forEach(([groupKey, filterGroup]) => { + filterGroup.label = filterGroup.label || groupKey; + Object.entries(filterGroup.value).forEach(([filterKey, filter]) => { + filter.id = ("filter_" + groupKey + "_" + filterKey).replace(/[^a-zA-Z0-9]/g, "_"); + filter.label = filter.label || filterKey; + }); + }); + + // init beta filters + if (enableBeta) { + var filterGroup = data.filters.betaStatus; + $.extend(true, filterGroup.value, data.filters.status.value); + Object.entries(filterGroup.value).forEach(([filterKey, filter]) => { + filter.id = "beta_" + filter.id; + }); + } + else + delete data.filters.betaStatus; + + window.boop = data.filters; + + // init mods for (var i = 0; i < data.mods.length; i++) { var mod = mods[i]; @@ -214,30 +186,37 @@ smapi.modList = function (mods) { var filters = data.filters; // check source - if (!filters.source.open.value && mod.SourceUrl) + if (!filters.source.value.open.value && mod.SourceUrl) return false; - if (!filters.source.closed.value && !mod.SourceUrl) + if (!filters.source.value.closed.value && !mod.SourceUrl) return false; // check status - var status = mod.LatestCompatibility.Status; - if (filters.status[status] && !filters.status[status].value) + var mainStatus = mod.Compatibility.Status; + if (filters.status.value[mainStatus] && !filters.status.value[mainStatus].value) return false; + // check beta status + if (enableBeta) { + var betaStatus = mod.LatestCompatibility.Status; + if (filters.betaStatus.value[betaStatus] && !filters.betaStatus.value[betaStatus].value) + return false; + } + // check SMAPI 3.0 compatibility - if (filters["SMAPI 3.0"][mod.Smapi3Status] && !filters["SMAPI 3.0"][mod.Smapi3Status].value) + if (filters.smapi3.value[mod.Smapi3Status] && !filters.smapi3.value[mod.Smapi3Status].value) return false; // check download sites var ignoreSites = []; - if (!filters.download.chucklefish.value) + if (!filters.download.value.chucklefish.value) ignoreSites.push("Chucklefish"); - if (!filters.download.moddrop.value) + if (!filters.download.value.moddrop.value) ignoreSites.push("ModDrop"); - if (!filters.download.nexus.value) + if (!filters.download.value.nexus.value) ignoreSites.push("Nexus"); - if (!filters.download.custom.value) + if (!filters.download.value.custom.value) ignoreSites.push("custom"); if (ignoreSites.length) { -- cgit From 63d146b27114d3176411d102667e9300fe87c512 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Fri, 8 Feb 2019 18:18:44 -0500 Subject: update compatibility list --- src/SMAPI.Web/wwwroot/StardewModdingAPI.metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/SMAPI.Web/wwwroot') diff --git a/src/SMAPI.Web/wwwroot/StardewModdingAPI.metadata.json b/src/SMAPI.Web/wwwroot/StardewModdingAPI.metadata.json index 44edf0ca..45a4959d 100644 --- a/src/SMAPI.Web/wwwroot/StardewModdingAPI.metadata.json +++ b/src/SMAPI.Web/wwwroot/StardewModdingAPI.metadata.json @@ -92,7 +92,7 @@ "MTN": { "ID": "SgtPickles.MTN", "Default | UpdateKey": "Nexus:2256", - "~1.2.5 | Status": "AssumeBroken" // replaces Game1.multiplayer, which breaks SMAPI's multiplayer API. + "~1.2.6 | Status": "AssumeBroken" // replaces Game1.multiplayer, which breaks SMAPI's multiplayer API. }, "PyTK": { -- cgit