summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/StardewModdingAPI.Tests/Core/ModResolverTests.cs2
-rw-r--r--src/StardewModdingAPI/Framework/ModLoading/ModResolver.cs29
-rw-r--r--src/StardewModdingAPI/Framework/Models/ModDataDefaults.cs18
-rw-r--r--src/StardewModdingAPI/Framework/Models/ModDataRecord.cs7
-rw-r--r--src/StardewModdingAPI/StardewModdingAPI.config.json335
-rw-r--r--src/StardewModdingAPI/StardewModdingAPI.csproj1
6 files changed, 253 insertions, 139 deletions
diff --git a/src/StardewModdingAPI.Tests/Core/ModResolverTests.cs b/src/StardewModdingAPI.Tests/Core/ModResolverTests.cs
index 2d65eee9..6a3fded6 100644
--- a/src/StardewModdingAPI.Tests/Core/ModResolverTests.cs
+++ b/src/StardewModdingAPI.Tests/Core/ModResolverTests.cs
@@ -144,7 +144,7 @@ namespace StardewModdingAPI.Tests.Core
this.SetupMetadataForValidation(mock, new ModDataRecord
{
Compatibility = new[] { new ModCompatibility("~1.0", ModStatus.AssumeBroken, null) },
- UpdateUrls = new[] { "http://example.org" }
+ AlternativeUrl = "http://example.org"
});
// act
diff --git a/src/StardewModdingAPI/Framework/ModLoading/ModResolver.cs b/src/StardewModdingAPI/Framework/ModLoading/ModResolver.cs
index 31ba5bc5..4d20e7c8 100644
--- a/src/StardewModdingAPI/Framework/ModLoading/ModResolver.cs
+++ b/src/StardewModdingAPI/Framework/ModLoading/ModResolver.cs
@@ -53,17 +53,22 @@ namespace StardewModdingAPI.Framework.ModLoading
error = $"parsing its manifest failed:\n{ex.GetLogSummary()}";
}
- // validate metadata
+ // get internal data record (if any)
ModDataRecord dataRecord = null;
if (manifest != null)
{
- // get unique key for lookups
string key = !string.IsNullOrWhiteSpace(manifest.UniqueID) ? manifest.UniqueID : manifest.EntryDll;
-
- // get data record
dataRecord = dataRecords.FirstOrDefault(record => record.ID.Matches(key, manifest));
}
+ // apply defaults
+ if (dataRecord?.Defaults != null)
+ {
+ manifest.ChucklefishID = manifest.ChucklefishID ?? dataRecord.Defaults.ChucklefishID;
+ manifest.GitHubProject = manifest.GitHubProject ?? dataRecord.Defaults.GitHubProject;
+ manifest.NexusID = manifest.NexusID ?? dataRecord.Defaults.NexusID;
+ }
+
// build metadata
string displayName = !string.IsNullOrWhiteSpace(manifest?.Name)
? manifest.Name
@@ -100,13 +105,27 @@ namespace StardewModdingAPI.Framework.ModLoading
case ModStatus.AssumeBroken:
{
+ // get reason
string reasonPhrase = compatibility.ReasonPhrase ?? "it's no longer compatible";
+
+ // get update URLs
+ List<string> updateUrls = new List<string>();
+ if (!string.IsNullOrWhiteSpace(mod.Manifest.ChucklefishID))
+ updateUrls.Add($"https://community.playstarbound.com/resources/{mod.Manifest.ChucklefishID}");
+ if (!string.IsNullOrWhiteSpace(mod.Manifest.NexusID))
+ updateUrls.Add($"http://nexusmods.com/stardewvalley/mods/{mod.Manifest.NexusID}");
+ if (!string.IsNullOrWhiteSpace(mod.Manifest.GitHubProject))
+ updateUrls.Add($"https://github.com/{mod.Manifest.GitHubProject}/releases");
+ if (mod.DataRecord.AlternativeUrl != null)
+ updateUrls.Add(mod.DataRecord.AlternativeUrl);
+
+ // build error
string error = $"{reasonPhrase}. Please check for a ";
if (mod.Manifest.Version.Equals(compatibility.UpperVersion))
error += "newer version";
else
error += $"version newer than {compatibility.UpperVersion}";
- error += " at " + string.Join(" or ", mod.DataRecord.UpdateUrls);
+ error += " at " + string.Join(" or ", updateUrls);
mod.SetStatus(ModMetadataStatus.Failed, error);
}
diff --git a/src/StardewModdingAPI/Framework/Models/ModDataDefaults.cs b/src/StardewModdingAPI/Framework/Models/ModDataDefaults.cs
new file mode 100644
index 00000000..e0ab94b8
--- /dev/null
+++ b/src/StardewModdingAPI/Framework/Models/ModDataDefaults.cs
@@ -0,0 +1,18 @@
+namespace StardewModdingAPI.Framework.Models
+{
+ /// <summary>Default values for support fields to inject into the manifest.</summary>
+ internal class ModDataDefaults
+ {
+ /*********
+ ** Accessors
+ *********/
+ /// <summary>The mod's unique ID in the Chucklefish mod site (if any), used for update checks.</summary>
+ public string ChucklefishID { get; set; }
+
+ /// <summary>The mod's unique ID in Nexus Mods (if any), used for update checks.</summary>
+ public string NexusID { get; set; }
+
+ /// <summary>The mod's organisation and project name on GitHub (if any), used for update checks.</summary>
+ public string GitHubProject { get; set; }
+ }
+}
diff --git a/src/StardewModdingAPI/Framework/Models/ModDataRecord.cs b/src/StardewModdingAPI/Framework/Models/ModDataRecord.cs
index de219076..9f19d5f0 100644
--- a/src/StardewModdingAPI/Framework/Models/ModDataRecord.cs
+++ b/src/StardewModdingAPI/Framework/Models/ModDataRecord.cs
@@ -17,8 +17,11 @@ namespace StardewModdingAPI.Framework.Models
/// <summary>The mod name.</summary>
public string Name { get; set; }
- /// <summary>The URLs the user can check for a newer version.</summary>
- public string[] UpdateUrls { get; set; }
+ /// <summary>Default values for support fields to inject into the manifest.</summary>
+ public ModDataDefaults Defaults { get; set; }
+
+ /// <summary>The URL where the player can get an unofficial or alternative version of the mod if the official version isn't compatible.</summary>
+ public string AlternativeUrl { get; set; }
/// <summary>The compatibility of given mod versions (if any).</summary>
[JsonConverter(typeof(SFieldConverter))]
diff --git a/src/StardewModdingAPI/StardewModdingAPI.config.json b/src/StardewModdingAPI/StardewModdingAPI.config.json
index 75b884f5..d2d28625 100644
--- a/src/StardewModdingAPI/StardewModdingAPI.config.json
+++ b/src/StardewModdingAPI/StardewModdingAPI.config.json
@@ -48,7 +48,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "AccessChestAnywhere",
"ID": "AccessChestAnywhere",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/257", "http://www.nexusmods.com/stardewvalley/mods/518" ],
+ "Defaults": { "NexusID": 257 },
+ "AlternativeUrl": "https://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.1": { "Status": "AssumeBroken" } // broke in SDV 1.1
}
@@ -56,7 +57,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "AdjustArtisanPrices",
"ID": "1e36d4ca-c7ef-4dfb-9927-d27a6c3c8bdc",
- "UpdateUrls": [ "http://community.playstarbound.com/resources/3532", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "ChucklefishID": 3532 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~0.1": { "Status": "AssumeBroken" } // broke in SMAPI 1.9
}
@@ -64,7 +66,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Advanced Location Loader",
"ID": "Entoarox.AdvancedLocationLoader",
- "UpdateUrls": [ "http://community.playstarbound.com/resources/3619" ],
+ "Defaults": { "ChucklefishID": 3619 },
"Compatibility": {
"~1.2.10": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -72,7 +74,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "AgingMod",
"ID": "skn.AgingMod",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/1129", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 1129 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -80,7 +83,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Almighty Tool",
"ID": "AlmightyTool.dll",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/439" ],
+ "Defaults": { "NexusID": 439 },
"Compatibility": {
"~1.1.1": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -95,7 +98,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Animal Sitter",
"ID": "AnimalSitter.dll",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/581", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 581 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0.8": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -103,7 +107,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "A Tapper's Dream",
"ID": "ddde5195-8f85-4061-90cc-0d4fd5459358",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/260", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 260 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.4": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -111,7 +116,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Better Sprinklers",
"ID": "SPDSprinklersMod | Speeder.BetterSprinklers", // changed in 2.3
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/41", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 41 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~2.3.1-pathoschild-update": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -119,7 +125,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Birthday Mail",
"ID": "005e02dc-d900-425c-9c68-1ff55c5a295d",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/276", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 276 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.2.2": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -127,7 +134,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Build Endurance",
"ID": "{ID:'4be88c18-b6f3-49b0-ba96-f94b1a5be890', Name:'BuildEndurance'}", // disambiguate from other Alpha_Omegasis mods
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/445", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 445 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.3": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -135,7 +143,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Build Health",
"ID": "{ID:'4be88c18-b6f3-49b0-ba96-f94b1a5be890', Name:'BuildHealth'}", // disambiguate from other Alpha_Omegasis mods
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/446", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 446 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.3": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -143,7 +152,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Buy Cooking Recipes",
"ID": "Denifia.BuyRecipes",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/1126", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 1126 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -151,7 +161,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Buy Back Collectables",
"ID": "BuyBackCollectables",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/507", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 507 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.3": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -159,7 +170,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Chest Label System",
"ID": "SPDChestLabel",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/242", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 242 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.6": { "Status": "AssumeBroken" } // broke in SDV 1.1
}
@@ -167,7 +179,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Chest Pooling",
"ID": "ChestPooling.dll",
- "UpdateUrls": [ "http://community.playstarbound.com/threads/111988" ],
+ "Defaults": { "GitHubProject": "mralbobo/stardew-chest-pooling" },
"Compatibility": {
"~1.2": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -175,7 +187,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Chests Anywhere",
"ID": "ChestsAnywhere | Pathoschild.ChestsAnywhere", // changed in 1.9
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/518" ],
+ "Defaults": { "NexusID": 518 },
"Compatibility": {
"~1.9-beta": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -183,7 +195,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Choose Baby Gender",
"ID": "ChooseBabyGender.dll",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/590", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 590 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0.2": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -191,7 +204,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "CJB Automation",
"ID": "CJBAutomation",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/211", "http://www.nexusmods.com/stardewvalley/mods/1063" ],
+ "Defaults": { "NexusID": 211 },
+ "AlternativeUrl": "http://www.nexusmods.com/stardewvalley/mods/1063",
"Compatibility": {
"~1.4": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -199,7 +213,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "CJB Cheats Menu",
"ID": "CJBCheatsMenu",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/4" ],
+ "Defaults": { "NexusID": 4 },
"Compatibility": {
"~1.12": { "Status": "AssumeBroken" } // broke in SDV 1.1
}
@@ -207,7 +221,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "CJB Item Spawner",
"ID": "CJBItemSpawner",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/93" ],
+ "Defaults": { "NexusID": 93 },
"Compatibility": {
"~1.5": { "Status": "AssumeBroken" } // broke in SDV 1.1
}
@@ -215,7 +229,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "CJB Show Item Sell Price",
"ID": "CJBShowItemSellPrice",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/93" ],
+ "Defaults": { "NexusID": 5 },
"Compatibility": {
"~1.6": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -223,7 +237,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Climates of Ferngill",
"ID": "KoihimeNakamura.ClimatesOfFerngill",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/604", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 604 },
"Compatibility": {
"~1.0": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -231,7 +245,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Cold Weather Haley",
"ID": "LordXamon.ColdWeatherHaleyPRO",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/1169", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 1169 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -246,7 +261,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Combat with Farm Implements",
"ID": "SPDFarmingImplementsInCombat",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/313", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 313 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -254,7 +270,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Configurable Shipping Dates",
"ID": "ConfigurableShippingDates",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/675", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 675 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.1.1": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -262,7 +279,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Cooking Skill",
"ID": "CookingSkill | spacechase0.CookingSkill", // changed in 1.0.4–6
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/522" ],
+ "Defaults": { "NexusID": 522 },
"Compatibility": {
"~1.0.6": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -270,7 +287,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "CrabNet",
"ID": "CrabNet.dll",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/584", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 584 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0.4": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -278,7 +296,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Customize Exterior",
"ID": "CustomizeExterior",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/1099" ],
+ "Defaults": { "NexusID": 1099 },
"Compatibility": {
"~1.0.2": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -286,7 +304,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Customizable Traveling Cart Days",
"ID": "TravelingCartYyeahdude",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/567", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 567 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -294,7 +313,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Daily News",
"ID": "bashNinja.DailyNews",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/1141", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 1141 },
"Compatibility": {
"~1.1": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -302,7 +321,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Dynamic Checklist",
"ID": "gunnargolf.DynamicChecklist",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/1145", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 1145 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -310,7 +330,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Dynamic Machines",
"ID": "DynamicMachines",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/374", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 374 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.1": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -318,7 +339,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Empty Hands",
"ID": "QuicksilverFox.EmptyHands",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/1176", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 1176 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -326,7 +348,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Enemy Health Bars",
"ID": "SPDHealthBar",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/193", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 193 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.7": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -334,7 +357,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Entoarox Framework",
"ID": "eacdb74b-4080-4452-b16b-93773cda5cf9 | Entoarox.EntoaroxFramework", // changed in ???
- "UpdateUrls": [ "http://community.playstarbound.com/resources/4228" ],
+ "Defaults": { "ChucklefishID": 4228 },
"Compatibility": {
"~1.7.9": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -342,7 +365,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Extended Fridge",
"ID": "Mystra007ExtendedFridge",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/485", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 485 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -350,7 +374,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Extended Greenhouse",
"ID": "ExtendedGreenhouse",
- "UpdateUrls": [ "http://community.playstarbound.com/resources/4303", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "ChucklefishID": 4303 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0.2": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -358,7 +383,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Fall 28 Snow Day",
"ID": "{ID:'7ad4f6f7-c3de-4729-a40f-7a11d2b2a358', Name:'Fall28 Snow Day'}", // disambiguate from other mods by Alpha_Omegasis
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/486", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 486 },
"Compatibility": {
"~1.3": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -366,7 +391,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Farm Automation: Barn Door Automation",
"ID": "FarmAutomation.BarnDoorAutomation.dll",
- "UpdateUrls": [ "http://community.playstarbound.com/threads/111931", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -374,7 +399,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Farm Automation: Item Collector",
"ID": "FarmAutomation.ItemCollector.dll",
- "UpdateUrls": [ "http://community.playstarbound.com/threads/111931", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -382,7 +407,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Farm Automation Unofficial: Item Collector",
"ID": "Maddy99.FarmAutomation.ItemCollector",
- "UpdateUrls": [ "http://community.playstarbound.com/threads/125172", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~0.5": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -390,7 +415,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Farm Expansion",
"ID": "3888bdfd-73f6-4776-8bb7-8ad45aea1915 | AdvizeFarmExpansionMod-2-0 | AdvizeFarmExpansionMod-2-0-5", // changed in 2.0 and 2.0.5
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/130", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 130 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~2.0.5": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -398,7 +424,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Farm Resource Generator",
"ID": "FarmResourceGenerator.dll",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/647", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 647 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0.4": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -406,7 +433,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Faster Run",
"ID": "FasterRun.dll",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/733", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 733 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.1": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -414,7 +442,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "FlorenceMod",
"ID": "FlorenceMod.dll",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/591", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 591 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.1": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -422,7 +451,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Forage at the Farm",
"ID": "ForageAtTheFarm",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/673", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 673 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.5.1": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -430,7 +460,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Instant Geode",
"ID": "InstantGeode",
- "UpdateUrls": [ "http://community.playstarbound.com/threads/109038", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.12": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -438,7 +468,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Gate Opener",
"ID": "GateOpener.dll | mralbobo.GateOpener", // changed in 1.1
- "UpdateUrls": [ "http://community.playstarbound.com/threads/111988" ],
+ "Defaults": { "GitHubProject": "mralbobo/stardew-gate-opener" },
"Compatibility": {
"~1.0.1": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -446,7 +476,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "GenericShopExtender",
"ID": "GenericShopExtender",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/814", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 814 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~0.1.2": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -454,7 +485,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Get Dressed",
"ID": "GetDressed.dll | Advize.GetDressed", // changed in 3.3
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/331" ],
+ "Defaults": { "NexusID": 331 },
"Compatibility": {
"~3.3": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -462,7 +493,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Gift Taste Helper",
"ID": "8008db57-fa67-4730-978e-34b37ef191d6",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/229" ],
+ "Defaults": { "NexusID": 229 },
"Compatibility": {
"~2.3.1": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -470,7 +501,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Happy Animals",
"ID": "HappyAnimals",
- "UpdateUrls": [ "https://community.playstarbound.com/threads/126655", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0.3": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -478,7 +509,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Happy Birthday",
"ID": "{ID:'HappyBirthday', Author:'Alpha_Omegasis'}", // disambiguate from Oxyligen's fork
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/520", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 520 },
"Compatibility": {
"~1.3": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -486,7 +517,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Harvest With Scythe",
"ID": "965169fd-e1ed-47d0-9f12-b104535fb4bc",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/236", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 236 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0.6": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -494,7 +526,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Hunger for Food",
"ID": "HungerForFoodByTigerle",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/810", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 810 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~0.1.2": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -502,7 +535,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Improved Quality of Life",
"ID": "Demiacle.ImprovedQualityOfLife",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/1025", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 1025 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.1": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -510,7 +544,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Less Strict Over-Exertion (AntiExhaustion)",
"ID": "BALANCEMOD_AntiExhaustion",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/637", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 637 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.1": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -518,7 +553,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Lookup Anything",
"ID": "LookupAnything | Pathoschild.LookupAnything", // changed in 1.10.1
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/541" ],
+ "Defaults": { "NexusID": 541 },
"Compatibility": {
"~1.10.1": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -526,7 +561,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Loved Labels",
"ID": "LovedLabels.dll",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/279" ],
+ "Defaults": { "NexusID": 279 },
"Compatibility": {
"~2.0": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -534,7 +569,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Luck Skill",
"ID": "LuckSkill | spacechase0.LuckSkill", // changed in 0.1.4
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/521" ],
+ "Defaults": { "NexusID": 521 },
"Compatibility": {
"~0.1.4": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -542,7 +577,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "MailOrderPigs",
"ID": "MailOrderPigs.dll",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/632", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 632 },
"Compatibility": {
"~1.0.1": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -550,7 +585,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Makeshift Multiplayer",
"ID": "StardewValleyMP | spacechase0.StardewValleyMP", // changed in 0.3
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/501", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 501 },
"Compatibility": {
"~0.3.6": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -558,7 +593,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Message Box [API]? (ChatMod)",
"ID": "Kithio:ChatMod",
- "UpdateUrls": [ "http://community.playstarbound.com/resources/message-box-api.4296", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "ChucklefishID": 4296 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -573,7 +609,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "More Artifact Spots",
"ID": "451",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/451", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 451 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0.1": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -581,7 +618,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "More Pets",
"ID": "821ce8f6-e629-41ad-9fde-03b54f68b0b6MOREPETS | Entoarox.MorePets", // changed in 1.3
- "UpdateUrls": [ "http://community.playstarbound.com/resources/4288" ],
+ "Defaults": { "ChucklefishID": 4288 },
"Compatibility": {
"~1.3.2": { "Status": "AssumeBroken" } // overhauled for SMAPI 1.11+ compatibility
}
@@ -589,7 +626,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "More Rain",
"ID": "{ID:'4108e859-333c-4fec-a1a7-d2e18c1019fe', Name:'More_Rain'}", // disambiguate from other mods by Alpha_Omegasis
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/441", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 441 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.4": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -597,7 +635,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Multiple Sprites and Portraits On Rotation (File Loading)",
"ID": "FileLoading",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/1094", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 1094 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.12": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -605,7 +644,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Museum Rearranger",
"ID": "{ID:'7ad4f6f7-c3de-4729-a40f-7a11d2b2a358', Name:'Museum Rearranger'}", // disambiguate from other mods by Alpha_Omegasis
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/428", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 428 },
"Compatibility": {
"~1.3": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -613,15 +652,16 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "New Machines",
"ID": "F70D4FAB-0AB2-4B78-9F1B-AF2CA2236A59",
- "UpdateUrls": [ "http://community.playstarbound.com/resources/3683", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "ChucklefishID": 3683 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~4.2.1343": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
},
{
"Name": "Night Owl",
+ "Defaults": { "NexusID": 433 },
"ID": "{ID:'SaveAnywhere', Name:'Stardew_NightOwl'}", // disambiguate from Save Anywhere
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/433", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
"Compatibility": {
"~2.1": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -636,7 +676,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "NoSoilDecay",
"ID": "289dee03-5f38-4d8e-8ffc-e440198e8610",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/237", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 237 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~0.5": { "Status": "AssumeBroken" } // broke in SDV 1.2, and uses Assembly.GetExecutingAssembly().Location
}
@@ -644,7 +685,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "NPC Map Locations",
"ID": "NPCMapLocationsMod",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/239" ],
+ "Defaults": { "NexusID": 239 },
"Compatibility": {
"1.42~1.43": { "Status": "AssumeBroken", "ReasonPhrase": "this version has an update check error which crashes the game." }
}
@@ -652,7 +693,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "NPC Speak",
"ID": "NpcEcho.dll",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/694", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 694 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -660,7 +702,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "OmniFarm",
"ID": "BlueMod_OmniFarm",
- "UpdateUrls": [ "http://community.playstarbound.com/threads/127299", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "GitHubProject": "lambui/StardewValleyMod_OmniFarm" },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~2.0.1": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -668,7 +711,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Part of the Community",
"ID": "SB_PotC",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/923" ],
+ "Defaults": { "NexusID": 923 },
"Compatibility": {
"~1.0.8": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -676,7 +719,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "PelicanFiber",
"ID": "PelicanFiber.dll",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/631", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 631 },
"Compatibility": {
"~3.0": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -684,7 +727,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "PelicanTTS",
"ID": "Platonymous.PelicanTTS",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/1079", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 1079 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.6": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -692,7 +736,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Persival's BundleMod",
"ID": "BundleMod.dll",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/438", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 438 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0": { "Status": "AssumeBroken" } // broke in SDV 1.1
}
@@ -700,7 +745,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Point-and-Plant",
"ID": "PointAndPlant.dll",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/572", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 572 },
"Compatibility": {
"~1.0.2": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -708,7 +753,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "PrairieKingMadeEasy",
"ID": "PrairieKingMadeEasy.dll",
- "UpdateUrls": [ "http://community.playstarbound.com/resources/3594", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "ChucklefishID": 3594 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -716,7 +762,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "RainRandomizer",
"ID": "RainRandomizer.dll",
- "UpdateUrls": [ "http://community.playstarbound.com/threads/111526", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0.3": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -724,7 +770,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "RelationshipsEnhanced",
"ID": "relationshipsenhanced",
- "UpdateUrls": [ "http://community.playstarbound.com/resources/4435", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "ChucklefishID": 4435 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -732,7 +779,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "RelationShipStatus",
"ID": "relationshipstatus",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/751", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 751 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0.5": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -740,7 +788,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Replanter",
"ID": "Replanter.dll",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/589", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 589 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0.4": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -748,7 +797,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Reusable Wallpapers and Floors (Wallpaper Retain)",
"ID": "dae1b553-2e39-43e7-8400-c7c5c836134b",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/356", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 356 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.5": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -756,7 +806,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Rush Orders",
"ID": "RushOrders | spacechase0.RushOrders", // changed in 1.1
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/605" ],
+ "Defaults": { "NexusID": 605 },
"Compatibility": {
"~1.1": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -764,7 +814,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Save Anywhere",
"ID": "{ID:'SaveAnywhere', Name:'Save Anywhere'}", // disambiguate from Night Owl
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/444", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 444 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~2.4": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -772,7 +823,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Seasonal Immersion",
"ID": "EntoaroxSeasonalHouse | EntoaroxSeasonalBuildings | EntoaroxSeasonalImmersion | Entoarox.SeasonalImmersion", // changed in 1.1, 1.6 or earlier, and 1.7
- "UpdateUrls": [ "http://community.playstarbound.com/resources/4262", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "ChucklefishID": 4262 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.8.2": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -780,7 +832,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Send Items",
"ID": "Denifia.SendItems",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/1087", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 1087 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0.2": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -788,7 +841,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Shed Notifications (BuildingsNotifications)",
"ID": "TheCroak.BuildingsNotifications",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/620", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 620 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~0.4.1": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -796,7 +850,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Shenandoah Project",
"ID": "Shenandoah Project",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/756", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 756 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.1.1": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -804,7 +859,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Shipment Tracker",
"ID": "7e474181-e1a0-40f9-9c11-d08a3dcefaf3",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/321", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 321 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.1": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -812,7 +868,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Shop Expander",
"ID": "821ce8f6-e629-41ad-9fde-03b54f68b0b6 | EntoaroxShopExpander | Entoarox.ShopExpander", // changed in 1.5 and 1.5.2
- "UpdateUrls": [ "http://community.playstarbound.com/resources/4381", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "ChucklefishID": 4381 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.5.3": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -820,7 +877,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Showcase Mod",
"ID": "Igorious.Showcase",
- "UpdateUrls": [ "http://community.playstarbound.com/resources/4487", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "ChucklefishID": 4487 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~0.9": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -828,7 +886,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Simple Sprinklers",
"ID": "SimpleSprinkler.dll",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/76", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 76 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.4": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -836,7 +895,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Siv's Marriage Mod",
"ID": "6266959802",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/366", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 366 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.2.2": { "Status": "AssumeBroken" } // broke in SMAPI 1.9 (has multiple Mod instances)
}
@@ -844,7 +904,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Skill Prestige",
"ID": "6b843e60-c8fc-4a25-a67b-4a38ac8dcf9b",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/569", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 569 },
"Compatibility": {
"~1.0.9": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -852,7 +912,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Skill Prestige: Cooking Adapter",
"ID": "20d6b8a3-b6e7-460b-a6e4-07c2b0cb6c63",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/569", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 569 },
"Compatibility": {
"~1.0.9": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -860,7 +920,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Slower Fence Decay",
"ID": "SPDSlowFenceDecay",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/252", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 252 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~0.5.1": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -868,7 +929,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Smart Mod",
"ID": "KuroBear.SmartMod",
- "UpdateUrls": [ "http://community.playstarbound.com/threads/108104", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~2.2": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -876,7 +937,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Solar Eclipse Event",
"ID": "KoihimeNakamura.SolarEclipseEvent",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/897", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 897 },
"Compatibility": {
"~1.1": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -884,7 +945,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Sprinkles",
"ID": "Platonymous.Sprinkles",
- "UpdateUrls": [ "http://community.playstarbound.com/resources/4592", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "ChucklefishID": 4592 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.1.3": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -892,7 +954,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Sprint and Dash",
"ID": "SPDSprintAndDash",
- "UpdateUrls": [ "http://community.playstarbound.com/resources/3531", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "ChucklefishID": 3531 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -900,7 +963,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Sprint and Dash Redux",
"ID": "SPDSprintAndDash",
- "UpdateUrls": [ "http://community.playstarbound.com/resources/4201" ],
+ "Defaults": { "ChucklefishID": 4201 },
"Compatibility": {
"~1.2": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -908,7 +971,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Sprinting Mod",
"ID": "a10d3097-b073-4185-98ba-76b586cba00c",
- "UpdateUrls": [ "http://community.playstarbound.com/threads/108313", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "GitHubProject": "oliverpl/SprintingMod" },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~2.1": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -916,7 +980,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "StackSplitX",
"ID": "StackSplitX.dll",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/798" ],
+ "Defaults": { "NexusID": 798 },
"Compatibility": {
"~1.2": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -924,7 +988,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "StaminaRegen",
"ID": "StaminaRegen.dll",
- "UpdateUrls": [ "http://community.playstarbound.com/threads/111526", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0.3": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -932,7 +996,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Stardew Auto Backup",
"ID": "{ID:'4be88c18-b6f3-49b0-ba96-f94b1a5be890', Name:'Stardew_Save_Backup'}", // disambiguate from other Alpha_Omegasis mods
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/435", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 435 },
"Compatibility": {
"~1.2": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -940,7 +1004,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Stardew Notification",
"ID": "stardewnotification",
- "UpdateUrls": [ "http://community.playstarbound.com/threads/127979", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "GitHubProject": "monopandora/StardewNotification" },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.7": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -948,7 +1013,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Stardew Symphony",
"ID": "{ID:'4108e859-333c-4fec-a1a7-d2e18c1019fe', Name:'Stardew_Symphony'}", // disambiguate other mods by Alpha_Omegasis
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/425", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 425 },
"Compatibility": {
"~1.3": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -963,7 +1028,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "StashItemsToChest",
"ID": "BlueMod_StashItemsToChest",
- "UpdateUrls": [ "http://community.playstarbound.com/threads/126906", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "GitHubProject": "lambui/StardewValleyMod_StashItemsToChest" },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0.1": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -971,7 +1037,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Stone Bridge Over Pond (PondWithBridge)",
"ID": "PondWithBridge.dll",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/316", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 316 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -979,7 +1046,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Super Greenhouse Warp Modifier",
"ID": "SuperGreenhouse",
- "UpdateUrls": [ "http://community.playstarbound.com/resources/4334", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "ChucklefishID": 4334 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -987,7 +1055,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Tainted Cellar",
"ID": "TaintedCellar.dll",
- "UpdateUrls": [ "http://community.playstarbound.com/threads/115735", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0": { "Status": "AssumeBroken" } // broke in SDV 1.1 or 1.11
}
@@ -995,7 +1063,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Teleporter",
"ID": "Teleporter",
- "UpdateUrls": [ "http://community.playstarbound.com/resources/4374", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "ChucklefishID": 4374 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0.2": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -1003,7 +1072,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Three-heart Dance Partner",
"ID": "ThreeHeartDancePartner",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/500", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 500 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0.1": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -1011,7 +1081,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "TimeSpeed",
"ID": "TimeSpeed.dll | {ID:'4108e859-333c-4fec-a1a7-d2e18c1019fe', Name:'TimeSpeed'} | {ID:'4108e859-333c-4fec-a1a7-d2e18c1019fe', Name:'TimeSpeed Mod (unofficial)'} | community.TimeSpeed", // changed in 2.0.3 and 2.1; disambiguate other mods by Alpha_Omegasis
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/169" ],
+ "Defaults": { "NexusID": 169 },
"Compatibility": {
"~2.2": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -1019,7 +1089,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "UiModSuite",
"ID": "Demiacle.UiModSuite",
- "UpdateUrls": [ "http://www.nexusmods.com/stardewvalley/mods/1023", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "NexusID": 1023 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -1027,7 +1098,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "WakeUp",
"ID": "WakeUp.dll",
- "UpdateUrls": [ "http://community.playstarbound.com/threads/111526", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0.2": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -1035,7 +1106,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Wallpaper Fix",
"ID": "WallpaperFix.dll",
- "UpdateUrls": [ "http://community.playstarbound.com/resources/4211", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "ChucklefishID": 4211 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.1": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -1043,7 +1115,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Weather Controller",
"ID": "WeatherController.dll",
- "UpdateUrls": [ "http://community.playstarbound.com/threads/111526", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0.2": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -1051,7 +1123,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Wonderful Farm Life",
"ID": "WonderfulFarmLife.dll",
- "UpdateUrls": [ "http://community.playstarbound.com/threads/115384", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0": { "Status": "AssumeBroken" } // broke in SDV 1.1 or 1.11
}
@@ -1066,7 +1138,8 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Xnb Loader",
"ID": "Entoarox.XnbLoader",
- "UpdateUrls": [ "http://community.playstarbound.com/resources/4506", "http://stardewvalleywiki.com/Modding:SMAPI_2.0" ],
+ "Defaults": { "ChucklefishID": 4506 },
+ "AlternativeUrl": "http://stardewvalleywiki.com/Modding:SMAPI_2.0",
"Compatibility": {
"~1.0.6": { "Status": "AssumeBroken" } // broke in SMAPI 2.0
}
@@ -1074,7 +1147,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "zDailyIncrease",
"ID": "zdailyincrease",
- "UpdateUrls": [ "http://community.playstarbound.com/resources/4247" ],
+ "Defaults": { "ChucklefishID": 4247 },
"Compatibility": {
"~1.2": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -1082,7 +1155,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Zoom Out Extreme",
"ID": "ZoomMod",
- "UpdateUrls": [ "http://community.playstarbound.com/threads/115028" ],
+ "AlternativeUrl": "http://community.playstarbound.com/threads/115028",
"Compatibility": {
"~0.1": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -1090,7 +1163,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Zoryn's Better RNG",
"ID": "76b6d1e1-f7ba-4d72-8c32-5a1e6d2716f6 | Zoryn.BetterRNG", // changed in 1.6
- "UpdateUrls": [ "https://github.com/Zoryn4163/SMAPI-Mods/releases" ],
+ "Defaults": { "GitHubProject": "Zoryn4163/SMAPI-Mods" },
"Compatibility": {
"~1.6": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -1098,7 +1171,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Zoryn's Calendar Anywhere",
"ID": "a41c01cd-0437-43eb-944f-78cb5a53002a | Zoryn.CalendarAnywhere", // changed in 1.6
- "UpdateUrls": [ "https://github.com/Zoryn4163/SMAPI-Mods/releases" ],
+ "Defaults": { "GitHubProject": "Zoryn4163/SMAPI-Mods" },
"Compatibility": {
"~1.6": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -1106,7 +1179,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Zoryn's Health Bars",
"ID": "HealthBars.dll | Zoryn.HealthBars", // changed in 1.6
- "UpdateUrls": [ "https://github.com/Zoryn4163/SMAPI-Mods/releases" ],
+ "Defaults": { "GitHubProject": "Zoryn4163/SMAPI-Mods" },
"Compatibility": {
"~1.6": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -1114,7 +1187,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Zoryn's Junimo Deposit Anywhere",
"ID": "f93a4fe8-cade-4146-9335-b5f82fbbf7bc | Zoryn.JunimoDepositAnywhere", // changed in 1.6
- "UpdateUrls": [ "https://github.com/Zoryn4163/SMAPI-Mods/releases" ],
+ "Defaults": { "GitHubProject": "Zoryn4163/SMAPI-Mods" },
"Compatibility": {
"~1.7": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -1122,7 +1195,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Zoryn's Movement Mod",
"ID": "8a632929-8335-484f-87dd-c29d2ba3215d | Zoryn.MovementModifier", // changed in 1.6
- "UpdateUrls": [ "https://github.com/Zoryn4163/SMAPI-Mods/releases" ],
+ "Defaults": { "GitHubProject": "Zoryn4163/SMAPI-Mods" },
"Compatibility": {
"~1.6": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
@@ -1130,7 +1203,7 @@ This file contains advanced configuration for SMAPI. You generally shouldn't cha
{
"Name": "Zoryn's Regen Mod",
"ID": "dfac4383-1b6b-4f33-ae4e-37fc23e5252e | Zoryn.RegenMod", // changed in 1.6
- "UpdateUrls": [ "https://github.com/Zoryn4163/SMAPI-Mods/releases" ],
+ "Defaults": { "GitHubProject": "Zoryn4163/SMAPI-Mods" },
"Compatibility": {
"~1.6": { "Status": "AssumeBroken" } // broke in SDV 1.2
}
diff --git a/src/StardewModdingAPI/StardewModdingAPI.csproj b/src/StardewModdingAPI/StardewModdingAPI.csproj
index 8863590b..5bf46ac6 100644
--- a/src/StardewModdingAPI/StardewModdingAPI.csproj
+++ b/src/StardewModdingAPI/StardewModdingAPI.csproj
@@ -91,6 +91,7 @@
<Link>Properties\GlobalAssemblyInfo.cs</Link>
</Compile>
<Compile Include="Framework\Models\ModCompatibility.cs" />
+ <Compile Include="Framework\Models\ModDataDefaults.cs" />
<Compile Include="Framework\ModLoading\Finders\EventFinder.cs" />
<Compile Include="Framework\ModLoading\Finders\FieldFinder.cs" />
<Compile Include="Framework\ModLoading\Finders\MethodFinder.cs" />