From 2ff937397163f0ad5940b636bc7312ac747d9c39 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Wed, 18 Oct 2017 10:59:57 -0400 Subject: fix compatibility check crashing for players with SDV 1.08 --- docs/release-notes.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index 99e771ce..fc56adc8 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -1,4 +1,8 @@ # Release notes +## 2.1 (upcoming) +* For players: + * Fixed compatibility check crashing for players with Stardew Valley 1.08. + ## 2.0 ### Release highlights * **Mod update checks** @@ -18,7 +22,7 @@ SMAPI 2.0 adds several features to enable new kinds of mods (see [API documentation](https://stardewvalleywiki.com/Modding:SMAPI_APIs)). - The **content API** lets you edit, inject, and reload XNB data loaded by the game at any time. This let SMAPI mods do + The **content API** lets you edit, inject, and reload XNB data loaded by the game at any time. This lets SMAPI mods do anything previously only possible with XNB mods, and enables new mod scenarios not possible with XNB mods (e.g. seasonal textures, NPC clothing that depend on the weather or location, etc). -- cgit From 36b4e550f1945ef710fca2c6deab7df94e708ef7 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Thu, 19 Oct 2017 21:26:00 -0400 Subject: fix e.SuppressButton() in input events not suppressing keyboard buttons --- docs/release-notes.md | 3 +++ 1 file changed, 3 insertions(+) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index fc56adc8..0471874c 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -3,6 +3,9 @@ * For players: * Fixed compatibility check crashing for players with Stardew Valley 1.08. +* For modders: + * Fixed `e.SuppressButton()` in input events not correctly suppressing keyboard buttons. + ## 2.0 ### Release highlights * **Mod update checks** -- cgit From 53df85f3123f8d9cb00013bb32b61c220ccad697 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Fri, 20 Oct 2017 16:37:22 -0400 Subject: enable access to public members using reflection API --- docs/release-notes.md | 1 + 1 file changed, 1 insertion(+) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index 0471874c..285d9df3 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -4,6 +4,7 @@ * Fixed compatibility check crashing for players with Stardew Valley 1.08. * For modders: + * The reflection API now works with public code to simplify mod integrations. * Fixed `e.SuppressButton()` in input events not correctly suppressing keyboard buttons. ## 2.0 -- cgit From 85a8959e97e90b30ac8291904838e18f102e97c2 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sat, 21 Oct 2017 21:51:48 -0400 Subject: fix mods which implement IAssetLoader being marked as conflicting with themselves --- docs/release-notes.md | 1 + 1 file changed, 1 insertion(+) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index 285d9df3..e4b2bccd 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -6,6 +6,7 @@ * For modders: * The reflection API now works with public code to simplify mod integrations. * Fixed `e.SuppressButton()` in input events not correctly suppressing keyboard buttons. + * Fixed mods which implement `IAssetLoader` directly not being allowed to load files due to incorrect conflict detection. ## 2.0 ### Release highlights -- cgit From f74321addc79a5616cc0f43e4f5f4b8154fac827 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sun, 22 Oct 2017 13:13:14 -0400 Subject: fix SMAPI blocking reflection access to vanilla members on overridden types (#371) --- docs/release-notes.md | 1 + 1 file changed, 1 insertion(+) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index e4b2bccd..199e32c5 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -7,6 +7,7 @@ * The reflection API now works with public code to simplify mod integrations. * Fixed `e.SuppressButton()` in input events not correctly suppressing keyboard buttons. * Fixed mods which implement `IAssetLoader` directly not being allowed to load files due to incorrect conflict detection. + * Fixed SMAPI blocking reflection access to vanilla members on overridden types. ## 2.0 ### Release highlights -- cgit From 99c8dd79406f5099194d72e26085a49939705259 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sun, 22 Oct 2017 15:07:06 -0400 Subject: add InputButton.ToSButton() extension --- docs/release-notes.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index 199e32c5..65536915 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -4,8 +4,10 @@ * Fixed compatibility check crashing for players with Stardew Valley 1.08. * For modders: - * The reflection API now works with public code to simplify mod integrations. - * Fixed `e.SuppressButton()` in input events not correctly suppressing keyboard buttons. + * Added support for public code in reflection API, to simplify mod integrations. + * Improved input events: + * Added `ToSButton()` extension for the game's `Game1.options` button type. + * Fixed `e.SuppressButton()` not correctly suppressing keyboard buttons. * Fixed mods which implement `IAssetLoader` directly not being allowed to load files due to incorrect conflict detection. * Fixed SMAPI blocking reflection access to vanilla members on overridden types. -- cgit From ed56cb714d7fb76f3c1b9d2f2e7b7627f8accc70 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sun, 22 Oct 2017 15:09:36 -0400 Subject: replace input events' e.IsClick with better-designed e.IsActionButton and e.IsUseToolButton --- docs/release-notes.md | 3 +++ 1 file changed, 3 insertions(+) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index 65536915..452fd40a 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -6,8 +6,11 @@ * For modders: * Added support for public code in reflection API, to simplify mod integrations. * Improved input events: + * Added `e.IsActionButton` and `e.IsUseToolButton`. * Added `ToSButton()` extension for the game's `Game1.options` button type. + * Deprecated `e.IsClick`, which is limited and unclear. Use `IsActionButton` or `IsUseToolButton` instead. * Fixed `e.SuppressButton()` not correctly suppressing keyboard buttons. + * Fixed `e.IsClick` (now `e.IsActionButton`) ignoring custom key bindings. * Fixed mods which implement `IAssetLoader` directly not being allowed to load files due to incorrect conflict detection. * Fixed SMAPI blocking reflection access to vanilla members on overridden types. -- cgit From 801f25a51efbed0b8b16e6b9e8f1c543fcc45c47 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Fri, 27 Oct 2017 01:01:55 -0400 Subject: update release notes (#373) --- docs/release-notes.md | 1 + 1 file changed, 1 insertion(+) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index 452fd40a..a06fc0c4 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -11,6 +11,7 @@ * Deprecated `e.IsClick`, which is limited and unclear. Use `IsActionButton` or `IsUseToolButton` instead. * Fixed `e.SuppressButton()` not correctly suppressing keyboard buttons. * Fixed `e.IsClick` (now `e.IsActionButton`) ignoring custom key bindings. + * Fixed custom map tilesheets not working unless they're explicitly loaded first. * Fixed mods which implement `IAssetLoader` directly not being allowed to load files due to incorrect conflict detection. * Fixed SMAPI blocking reflection access to vanilla members on overridden types. -- cgit From 7f16ebdb19982c182b60312883452c44fdd08fda Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Fri, 27 Oct 2017 01:42:54 -0400 Subject: hide the game's test messages from the console & log (#364) --- docs/release-notes.md | 1 + 1 file changed, 1 insertion(+) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index a06fc0c4..ba0815b3 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -2,6 +2,7 @@ ## 2.1 (upcoming) * For players: * Fixed compatibility check crashing for players with Stardew Valley 1.08. + * Fixed the game's test messages being shown in the console and log. * For modders: * Added support for public code in reflection API, to simplify mod integrations. -- cgit From b945fcf5553f2df63db1fad8a73c65cd7fa7daa3 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Fri, 27 Oct 2017 02:44:53 -0400 Subject: fix player_setlevel command not also changing XP (#359) --- docs/release-notes.md | 1 + 1 file changed, 1 insertion(+) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index ba0815b3..9366e1fc 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -3,6 +3,7 @@ * For players: * Fixed compatibility check crashing for players with Stardew Valley 1.08. * Fixed the game's test messages being shown in the console and log. + * Fixed TrainerMod's `player_setlevel` command not also setting XP. * For modders: * Added support for public code in reflection API, to simplify mod integrations. -- cgit From 59dd604cf2905adf5fce7e9bb7b97886891aae81 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Fri, 27 Oct 2017 03:18:48 -0400 Subject: rename TrainerMod to Console Commands to clarify purpose --- docs/release-notes.md | 1 + 1 file changed, 1 insertion(+) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index 9366e1fc..1202407f 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -4,6 +4,7 @@ * Fixed compatibility check crashing for players with Stardew Valley 1.08. * Fixed the game's test messages being shown in the console and log. * Fixed TrainerMod's `player_setlevel` command not also setting XP. + * Renamed the default _TrainerMod_ mod to _Console Commands_ to clarify its purpose. * For modders: * Added support for public code in reflection API, to simplify mod integrations. -- cgit From 78958dfe9f78a581225a3f3e037abf001dde2b5b Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sun, 29 Oct 2017 14:14:03 -0400 Subject: document SMAPI web services in technical doc (#358) --- docs/technical-docs.md | 107 ++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 97 insertions(+), 10 deletions(-) (limited to 'docs') diff --git a/docs/technical-docs.md b/docs/technical-docs.md index d37d327d..37ec7f69 100644 --- a/docs/technical-docs.md +++ b/docs/technical-docs.md @@ -3,16 +3,25 @@ This file provides more technical documentation about SMAPI. If you only want to use or create mods, this section isn't relevant to you; see the main README to use or create mods. -## Contents -* [Development](#development) - * [Compiling from source](#compiling-from-source) - * [Debugging a local build](#debugging-a-local-build) - * [Preparing a release](#preparing-a-release) -* [Customisation](#customisation) - * [Configuration file](#configuration-file) - * [Command-line arguments](#command-line-arguments) - * [Compile flags](#compile-flags) - +# Contents +* [SMAPI](#smapi) + * [Development](#development) + * [Compiling from source](#compiling-from-source) + * [Debugging a local build](#debugging-a-local-build) + * [Preparing a release](#preparing-a-release) + * [Customisation](#customisation) + * [Configuration file](#configuration-file) + * [Command-line arguments](#command-line-arguments) + * [Compile flags](#compile-flags) +* [SMAPI web services](#smapi-web-services) + * [Overview](#overview) + * [Log parser](#log-parser) + * [Mods API](#mods-api) + * [Development](#development-2) + * [Local development](#local-development) + * [Deploying to Amazon Beanstalk](#deploying-to-amazon-beanstalk) + +# SMAPI ## Development ### Compiling from source Using an official SMAPI release is recommended for most users. @@ -135,3 +144,81 @@ SMAPI uses a small number of conditional compilation constants, which you can se flag | purpose ---- | ------- `SMAPI_FOR_WINDOWS` | Indicates that SMAPI is being compiled on Windows for players on Windows. Set automatically in `crossplatform.targets`. + + +# SMAPI web services +## Overview +The `StardewModdingAPI.Web` project provides an API and web UI hosted at `*.smapi.io`. + +### Log parser +The log parser provides a web UI for uploading, parsing, and sharing SMAPI logs. The logs are +persisted in a compressed form to Pastebin. + +The log parser lives at https://log.smapi.io. + +### Mods API +The mods API provides version info for mods hosted by Chucklefish, GitHub, or Nexus Mods. It's used +by SMAPI to perform update checks. The `{version}` URL token is the version of SMAPI making the +request; it doesn't do anything currently, but lets us version breaking changes if needed. + +Each mod is identified by a repository key and unique identifier (like `nexus:541`). The following +repositories are supported: + +key | repository +------------- | ---------- +`chucklefish` | A mod page on the [Chucklefish mod site](https://community.playstarbound.com/resources/categories/22), identified by the mod ID in the page URL. +`github` | A repository on [GitHub](https://github.com), identified by its owner and repository name (like `Zoryn4163/SMAPI-Mods`). This checks the version of the latest repository release. +`nexus` | A mod page on [Nexus Mods](https://www.nexusmods.com/stardewvalley), identified by the mod ID in the page URL. + + +The API accepts either `GET` or `POST` for convenience: +> ``` +>GET https://api.smapi.io/v2.0/mods?modKeys=nexus:541,chucklefish:4228 +>``` + +>``` +>POST https://api.smapi.io/v2.0/mods +>{ +> "ModKeys": [ "nexus:541", "chucklefish:4228" ] +>} +>``` + +It returns a response like this: +>``` +>{ +> "chucklefish:4228": { +> "name": "Entoarox Framework", +> "version": "1.8.0", +> "url": "https://community.playstarbound.com/resources/4228" +> }, +> "nexus:541": { +> "name": "Lookup Anything", +> "version": "1.16", +> "url": "http://www.nexusmods.com/stardewvalley/mods/541" +> } +>} +>``` + +## Development +### Local development +`StardewModdingAPI.Web` is a regular ASP.NET MVC Core app, so you can just launch it from within +Visual Studio to run a local version. + +There are two differences when it's run locally: all endpoints use HTTP instead of HTTPS, and the +subdomain portion becomes a route (e.g. `log.smapi.io` → `localhost:59482/log`). + +Before running it locally, you need to enter your credentials in the `appsettings.Development.json` +file. See the next section for a description of each setting. This file is listed in `.gitignore` +to prevent accidentally committing credentials. + +### Deploying to Amazon Beanstalk +The app can be deployed to a standard Amazon Beanstalk IIS environment. When creating the +environment, make sure to specify the following environment properties: + +property name | description +------------------------------- | ----------------- +`LogParser:PastebinDevKey` | The [Pastebin developer key](https://pastebin.com/api#1) used to authenticate with the Pastebin API. +`LogParser:PastebinUserKey` | The [Pastebin user key](https://pastebin.com/api#8) used to authenticate with the Pastebin API. Can be left blank to post anonymously. +`LogParser:SectionUrl` | The root URL of the log page, like `https://log.smapi.io/`. +`ModUpdateCheck:GitHubPassword` | The password with which to authenticate to GitHub when fetching release info. +`ModUpdateCheck:GitHubUsername` | The username with which to authenticate to GitHub when fetching release info. -- cgit From c3cd9a3120cd74cb1dfc4455d3ecca203b163013 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sun, 29 Oct 2017 22:00:22 -0400 Subject: + missing release note (#358) --- docs/release-notes.md | 1 + 1 file changed, 1 insertion(+) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index 1202407f..c810334b 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -5,6 +5,7 @@ * Fixed the game's test messages being shown in the console and log. * Fixed TrainerMod's `player_setlevel` command not also setting XP. * Renamed the default _TrainerMod_ mod to _Console Commands_ to clarify its purpose. + * Added a log parser service at [log.smapi.io](https://log.smapi.io). * For modders: * Added support for public code in reflection API, to simplify mod integrations. -- cgit From 1bea3a9e3273b8222cc2cc5c153bfb70fdba521a Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sun, 29 Oct 2017 23:15:18 -0400 Subject: let SemanticVersion be constructed from a System.Version (#375) --- docs/release-notes.md | 1 + 1 file changed, 1 insertion(+) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index c810334b..dc88bfa4 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -15,6 +15,7 @@ * Deprecated `e.IsClick`, which is limited and unclear. Use `IsActionButton` or `IsUseToolButton` instead. * Fixed `e.SuppressButton()` not correctly suppressing keyboard buttons. * Fixed `e.IsClick` (now `e.IsActionButton`) ignoring custom key bindings. + * `SemanticVersion` can now be constructed from a `System.Version`. * Fixed custom map tilesheets not working unless they're explicitly loaded first. * Fixed mods which implement `IAssetLoader` directly not being allowed to load files due to incorrect conflict detection. * Fixed SMAPI blocking reflection access to vanilla members on overridden types. -- cgit From e606b074d7e292dc3957586ea138a64447a9bd8a Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sun, 29 Oct 2017 23:17:21 -0400 Subject: add installer version & platform to window title, simplify output (#375) --- docs/release-notes.md | 3 +++ 1 file changed, 3 insertions(+) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index dc88bfa4..18946a4f 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -20,6 +20,9 @@ * Fixed mods which implement `IAssetLoader` directly not being allowed to load files due to incorrect conflict detection. * Fixed SMAPI blocking reflection access to vanilla members on overridden types. +* For SMAPI developers: + * Added the SMAPI installer version and platform to the window title to simplify troubleshooting. + ## 2.0 ### Release highlights * **Mod update checks** -- cgit From 6b5c03da4dd29592c41f06d2d3172ba832be9123 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Sun, 29 Oct 2017 23:21:14 -0400 Subject: expand post-install instructions, show Steam launch options value (#375) --- docs/release-notes.md | 1 + 1 file changed, 1 insertion(+) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index 18946a4f..99b9b965 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -6,6 +6,7 @@ * Fixed TrainerMod's `player_setlevel` command not also setting XP. * Renamed the default _TrainerMod_ mod to _Console Commands_ to clarify its purpose. * Added a log parser service at [log.smapi.io](https://log.smapi.io). + * Added better Steam instructions to the SMAPI installer. * For modders: * Added support for public code in reflection API, to simplify mod integrations. -- cgit From 08c30eeffd8cc62d00db33d91e3a9a6ab1d376a3 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Mon, 30 Oct 2017 00:02:20 -0400 Subject: let mods invalidate assets matching a predicate (#363) --- docs/release-notes.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index 99b9b965..c192d4ee 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -1,15 +1,16 @@ # Release notes ## 2.1 (upcoming) * For players: - * Fixed compatibility check crashing for players with Stardew Valley 1.08. - * Fixed the game's test messages being shown in the console and log. - * Fixed TrainerMod's `player_setlevel` command not also setting XP. - * Renamed the default _TrainerMod_ mod to _Console Commands_ to clarify its purpose. * Added a log parser service at [log.smapi.io](https://log.smapi.io). * Added better Steam instructions to the SMAPI installer. + * Renamed the default _TrainerMod_ mod to _Console Commands_ to clarify its purpose. + * Hid the game's test messages from the console log. + * Fixed compatibility check crashing for players with Stardew Valley 1.08. + * Fixed TrainerMod's `player_setlevel` command not also setting XP. * For modders: - * Added support for public code in reflection API, to simplify mod integrations. + * The reflection API now works with public code to simplify mod integrations. + * The content API now lets you invalidated multiple assets at once. * Improved input events: * Added `e.IsActionButton` and `e.IsUseToolButton`. * Added `ToSButton()` extension for the game's `Game1.options` button type. -- cgit From cb74ce5a1716093818f7b4711af752d73e2187d9 Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Mon, 30 Oct 2017 18:15:26 -0400 Subject: improve update-check errors when connection is offline (#380) --- docs/release-notes.md | 1 + 1 file changed, 1 insertion(+) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index c192d4ee..6a827b0f 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -5,6 +5,7 @@ * Added better Steam instructions to the SMAPI installer. * Renamed the default _TrainerMod_ mod to _Console Commands_ to clarify its purpose. * Hid the game's test messages from the console log. + * Improved update-check errors when connection is offline. * Fixed compatibility check crashing for players with Stardew Valley 1.08. * Fixed TrainerMod's `player_setlevel` command not also setting XP. -- cgit From a0a72e310d29bb9148e4c33a058823cd33bbb98d Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Mon, 30 Oct 2017 19:26:45 -0400 Subject: explicitly disallow absolute paths as asset keys in content API (#381) --- docs/release-notes.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index 6a827b0f..2a50c045 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -19,9 +19,10 @@ * Fixed `e.SuppressButton()` not correctly suppressing keyboard buttons. * Fixed `e.IsClick` (now `e.IsActionButton`) ignoring custom key bindings. * `SemanticVersion` can now be constructed from a `System.Version`. - * Fixed custom map tilesheets not working unless they're explicitly loaded first. - * Fixed mods which implement `IAssetLoader` directly not being allowed to load files due to incorrect conflict detection. - * Fixed SMAPI blocking reflection access to vanilla members on overridden types. + * Fixed reflection API blocking access to vanilla members on overridden types. + * Fixed content API allowing absolute paths as asset keys. + * Fixed content API failing to load custom map tilesheets that aren't preloaded. + * Fixed content API incorrectly detecting duplicate loaders when a mod implements `IAssetLoader` directly. * For SMAPI developers: * Added the SMAPI installer version and platform to the window title to simplify troubleshooting. -- cgit From 089e6de749ae7cb109af00164d2597c6644c255e Mon Sep 17 00:00:00 2001 From: Jesse Plamondon-Willard Date: Wed, 1 Nov 2017 17:41:29 -0400 Subject: update for 2.1 release --- docs/release-notes.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'docs') diff --git a/docs/release-notes.md b/docs/release-notes.md index 2a50c045..1a9e4681 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -1,31 +1,31 @@ # Release notes -## 2.1 (upcoming) +## 2.1 * For players: - * Added a log parser service at [log.smapi.io](https://log.smapi.io). + * Added a log parser at [log.smapi.io](https://log.smapi.io). * Added better Steam instructions to the SMAPI installer. - * Renamed the default _TrainerMod_ mod to _Console Commands_ to clarify its purpose. - * Hid the game's test messages from the console log. - * Improved update-check errors when connection is offline. - * Fixed compatibility check crashing for players with Stardew Valley 1.08. - * Fixed TrainerMod's `player_setlevel` command not also setting XP. + * Renamed the bundled _TrainerMod_ to _ConsoleCommands_ to make its purpose clearer. + * Removed the game's test messages from the console log. + * Improved update-check errors when playing offline. + * Fixed compatibility check for players with Stardew Valley 1.08. + * Fixed `player_setlevel` command not setting XP too. * For modders: * The reflection API now works with public code to simplify mod integrations. * The content API now lets you invalidated multiple assets at once. - * Improved input events: + * The `InputEvents` have been improved: * Added `e.IsActionButton` and `e.IsUseToolButton`. * Added `ToSButton()` extension for the game's `Game1.options` button type. * Deprecated `e.IsClick`, which is limited and unclear. Use `IsActionButton` or `IsUseToolButton` instead. * Fixed `e.SuppressButton()` not correctly suppressing keyboard buttons. * Fixed `e.IsClick` (now `e.IsActionButton`) ignoring custom key bindings. * `SemanticVersion` can now be constructed from a `System.Version`. - * Fixed reflection API blocking access to vanilla members on overridden types. + * Fixed reflection API blocking access to some non-SMAPI members. * Fixed content API allowing absolute paths as asset keys. * Fixed content API failing to load custom map tilesheets that aren't preloaded. * Fixed content API incorrectly detecting duplicate loaders when a mod implements `IAssetLoader` directly. * For SMAPI developers: - * Added the SMAPI installer version and platform to the window title to simplify troubleshooting. + * Added the installer version and platform to the installer window title to simplify troubleshooting. ## 2.0 ### Release highlights -- cgit