summaryrefslogtreecommitdiff
path: root/src/StardewModdingAPI/Program.cs
AgeCommit message (Collapse)Author
2017-02-11don't write direct console output to log file (#233)Jesse Plamondon-Willard
Per discussion with mod developers.
2017-02-11delve into mod folders that only contain another folder (#208)Jesse Plamondon-Willard
This fixes a common issue when users unpack mods into a nested folder (e.g. "SomeMod-1.0.0\SomeMod\manifest.json"), which previously wouldn't be recognised as a mod. SMAPI will not do this if the folder contains files or more than one folder, to prevent backup folders and the like from being loaded.
2017-02-11redirect the game's debug messages into trace logs (#233)Jesse Plamondon-Willard
The game writes debug messages directly to the console, which shows up for SMAPI users. This commit redirects direct console messages to a monitor.
2017-02-10mark several mods incompatible with Stardew Valley 1.2+ (#231)Jesse Plamondon-Willard
2017-02-07remove oldest deprecated code (#231)Jesse Plamondon-Willard
Since Stardew Valley 1.2 breaks most mods anyway, this commits removes the oldest deprecations and fixes the issues that are easiest for mods to update. See documentation for details.
2017-02-03rm cruftJesse Plamondon-Willard
2017-02-02rewrite mod assembly loading (#229)Jesse Plamondon-Willard
This greatly simplifies mod loading, eliminates the .cache folders by loading assemblies in memory, ensures DLLs are loaded in leaf-to-root order, and reduces log verbosity. These changes should address a range of issues, notably #221 and #226.
2017-02-02fix error when SMAPI tries to load Mac metadata files for DLLsJesse Plamondon-Willard
2017-01-19log deprecation warnings after list of loaded mods (#220)Jesse Plamondon-Willard
2017-01-19only call mod.Entry() once all mods have been loaded (#220)Jesse Plamondon-Willard
2017-01-19add public mod registry (#220)Jesse Plamondon-Willard
2017-01-19bump several deprecationsJesse Plamondon-Willard
2017-01-19tweak error text when starting game throws an exceptionJesse Plamondon-Willard
2017-01-19simplify overridden game versionJesse Plamondon-Willard
2017-01-19add mod folder path to consoleJesse Plamondon-Willard
2017-01-14add support for custom incompatible-mod-version error textJesse Plamondon-Willard
2017-01-14add support for incompatible mod version rangesJesse Plamondon-Willard
2016-12-30fallback to launching SMAPI without a terminal on Linux if the terminal is ↵Jesse Plamondon-Willard
unavailable (#198)
2016-12-30encapsulate repeated monitor constructionJesse Plamondon-Willard
2016-12-23increase deprecation levels for less-used deprecated codeJesse Plamondon-Willard
2016-12-23catch errors when reading metadata file just in case (#192)Jesse Plamondon-Willard
2016-12-22add support for unofficial updates which suffix the official version number ↵Jesse Plamondon-Willard
with a pre-release label (#192)
2016-12-22add known incompatible mods, update release notes (#192)Jesse Plamondon-Willard
2016-12-22skip mods known to be incompatible and display error with update links (#192)Jesse Plamondon-Willard
2016-12-22move models into namespace (#192)Jesse Plamondon-Willard
2016-12-22add config setting to disable update checks (#202)Jesse Plamondon-Willard
2016-12-22autogenerate SMAPI config (#202)Jesse Plamondon-Willard
2016-12-22track loaded mod instances & manifests via mod registry (#201)Jesse Plamondon-Willard
2016-12-21make SemanticVersion constructor from version string publicJesse Plamondon-Willard
2016-12-21rename SMAPI config file for consistency (#192, #202)Jesse Plamondon-Willard
2016-12-18migrate manifest & version to interfaces with backwards compatibility (#197)Jesse Plamondon-Willard
2016-12-06skip mod folder with a warning if it has no manifest (#186)Jesse Plamondon-Willard
2016-12-05reimplement assembly caching (#187)Jesse Plamondon-Willard
This commit ensures DLLs are copied to the cache directory only if they changed, to avoid breaking debugging support unless necessary. To support this change, the assembly hash file has been replaced with a more detailed JSON structure, which is used to determine whether the cache is up-to-date and whether to use the cached or original assembly. Some mods contain multiple DLLs, which must be kept together to prevent assembly resolution issues; to simplify that (and avoid orphaned cache entries), each mod now has its own separate cache.
2016-12-02fix assembly resolution when mods try to load types from other mods (#166)Jesse Plamondon-Willard
2016-11-30fix assembly resolution failing for rewritten mods that reference a ↵Jesse Plamondon-Willard
different version of Json.NET (#166)
2016-11-29add separate project to support upcoming IL rewriting (#166)Jesse Plamondon-Willard
2016-11-27supplement assembly resolution for Mono (#166)Jesse Plamondon-Willard
2016-11-26pass target platform to assembly rewriter for later use (#166)Jesse Plamondon-Willard
2016-11-26add log entry when preprocessing an assembly (#166)Jesse Plamondon-Willard
2016-11-26preprocess all mod assemblies for compatibility with multi-assembly mods (#166)Jesse Plamondon-Willard
2016-11-26simplify manifest.json path checkJesse Plamondon-Willard
2016-11-25preprocess mods through Mono.Cecil to allow rewriting later (#166)Jesse Plamondon-Willard
2016-11-24fix audio error on startup for some players by deferring update checkJesse Plamondon-Willard
2016-11-23fix compatibility with mods which use the previous signature of ↵Jesse Plamondon-Willard
Command.CallCommand
2016-11-23log relevant details when a ReflectionTypeLoadException is caught by SMAPIJesse Plamondon-Willard
2016-11-21intercept event handler exceptions (#179)Jesse Plamondon-Willard
2016-11-19fix race condition where GameLoaded event was sometime fired before the game ↵Jesse Plamondon-Willard
was ready
2016-11-16cleanupJesse Plamondon-Willard
2016-11-16use interface for IModHelperJesse Plamondon-Willard
2016-11-16add emergency interrupt feature (#168)Jesse Plamondon-Willard