コード例 #1
0
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)