-
Notifications
You must be signed in to change notification settings - Fork 281
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add IDalamudConfigReader
and early Analytics system
#1547
base: master
Are you sure you want to change the base?
Conversation
The internal |
From the discussion in Discord: I don't necessarily want to bind our internal configs to public API (in case we want to remove something from the config) or limit this service to just configs - this may be an ideal place to expose other (read-only) states in the future. Similarly, I don't necessarily want to expose the full set of internal configs to plugins. While, yes, plugins can reflect anything they want, I don't necessarily think it's a good idea to provide an easy interface to access the true analytics ID or other configuration options. |
New service designed to expose certain Dalamud configs to plugins as read-only.
- New Hash to Base64 for smaller hash values - New DynamicSettingsEntry to display live text/previews in Settings tabs. - Default analytics mode to "Ask"
- Should all now be `DalamudSetting*PluginAnalytics*`
Add a new service,
IDalamudConfigReader
. This service is designed to expose certain internal Dalamud configurations or states to plugins in a simple manner. Config entries are exposed to plugins as required, and generally in cases where there's no other way to get them (e.g. ImGui styles).In addition, leverage this service to provide two new config options:
PluginAnalyticsConsent
, which controls whether plugins are allowed to collect analytics on players:OptedOut
: The user has requested that no analytics be collected on them.Ask
(default): Plugins must ask the user via their own UI before collecting analytics.OptedIn
: The user has automatically consented to analytics collection from all plugins.PluginAnalyticsId
, which is an opaque string that uniquely identifies a specific Dalamud installation. Every plugin is exposed a different Analytics ID derived from the plugin's InternalName and the user's global Analytics ID (as a GUID). If a user has opted out of analytics, this value will return a consistent value across all installs of that plugin.This PR is a preview/draft, and comments/suggestions are welcome as this API is scoped out.