dvize / Donuts

MIT License
14 stars 12 forks source link

Add a new DependencyChecker #19

Closed DrakiaXYZ closed 9 months ago

DrakiaXYZ commented 9 months ago

This adds a new DependencyChecker class that will check for runtime-disabled dependency plugins (Such as SAIN disabling itself due to an invalid EFT version), and disable Donuts if any of its dependencies are disabled.

This utilizes the existing BepInDependency attributes, so no further management of dependencies is required

To test, install all of the dependencies of Donuts in a 3.7.1 install, including a 3.7.0 copy of SAIN. This will trigger SAIN to fail to load, which will now cause Donuts to refuse to load, instead of Donuts loading anyways and potentially causing issues.

1) Extract BigBrain and Waypoints for 3.7.1 into your 3.7.1 install 2) Extract SAIN for 3.7.0 into your 3.7.1 install 3) Build this branch of Donuts into your 3.7.1 install 4) Start the client

You should get a prompt in the bottom right that 1 plugin has failed to load (SAIN doesn't currently piggyback on the error messaging system that SPT uses for displaying errors, so it doesn't get listed). The in-game console (And BepInEx log) should both show that Donuts failed to load due to SAIN. The F12 settings menu for Donuts should also show that the plugin is disabled when you try to expand it, indicating the SAIN dependency is missing

p-kossa commented 9 months ago

tested in 3.7.1, thanks Drakia!