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
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