class PluginSettings: def __init__(self, identifier: str, enabled_by_default: bool) -> None: self.identifier = identifier self.enabled_by_default = enabled_by_default self.settings = Settings() self.initialize_settings() def set_settings(self, settings: Settings) -> None: self.settings = settings self.initialize_settings() def initialize_settings(self) -> None: # Plugin options are saved in the game's Settings, but it's possible for # plugins to change across loads. If new plugins are added or new # options added to those plugins, initialize the new settings. self.settings.initialize_plugin_option(self.identifier, self.enabled_by_default) @property def enabled(self) -> bool: return self.settings.plugin_option(self.identifier) def set_enabled(self, enabled: bool) -> None: self.settings.set_plugin_option(self.identifier, enabled)