예제 #1
0
        private static ModuleParameters BuildFromManifest(ManifestV1 manifest, ModuleManager module)
        {
            var builtModuleParameters = new ModuleParameters {
                _manifest = manifest,

                // TODO: Change manager registers so that they only need an instance of the ExternalModule and not specific params
                _settingsManager    = SettingsManager.GetModuleInstance(module),
                _contentsManager    = ContentsManager.GetModuleInstance(module),
                _directoriesManager = DirectoriesManager.GetModuleInstance(module),
                _gw2ApiManager      = Gw2ApiManager.GetModuleInstance(module)
            };

            if (builtModuleParameters._gw2ApiManager == null)
            {
                /* Indicates a conflict of user granted permissions and module required permissions
                 * How this could happen (without manually modifying settings):
                 *  1. User approves all required permissions for a module.
                 *  2. The user enables the module.
                 *  3. The user updates the module to a version that has a new required permission which haven't been explicitly approved.
                 */
                // TODO: Show a popup instead that just asks the user if the new permission(s) is/are okay
                Logger.Warn("An attempt was made to enable the module {module} before all of the required API permissions have been approved.", module.ToString());
                return(null);
            }

            return(builtModuleParameters);
        }
예제 #2
0
        private static ModuleParameters BuildFromManifest(ManifestV1 manifest, ModuleManager module)
        {
            var builtModuleParameters = new ModuleParameters();

            builtModuleParameters._manifest = manifest;

            // TODO: Change manager registers so that they only need an instance of the ExternalModule and not specific params
            builtModuleParameters._settingsManager    = SettingsManager.GetModuleInstance(module);
            builtModuleParameters._contentsManager    = ContentsManager.GetModuleInstance(module);
            builtModuleParameters._directoriesManager = DirectoriesManager.GetModuleInstance(module);
            builtModuleParameters._gw2ApiManager      = GameService.Gw2Api.RegisterGw2ApiConnection(manifest, module.State.UserEnabledPermissions ?? new TokenPermission[0]);

            if (builtModuleParameters._gw2ApiManager == null)
            {
                // Indicates a conflict of user granted permissions and module required permissions
                return(null);
            }

            return(builtModuleParameters);
        }