import * as util from "../util.js"; import { ThemeSettings } from "./theme-settings.js"; import { MiscSettings } from "./misc-settings.js"; import { CustomizationSettings } from "./customization-settings.js"; import { ExternalModuleSettings } from "./external-module-settings.js"; import { lookupThemeAndSchemeForKey } from "../ui-theme.js"; import { MODULE_NAME } from "../consts.js"; export function refreshChat() { if (game.messages.size > 100) { return ui.notifications.warn(game.i18n.localize("pf2e-dorako-ui.text.large-chatlog-warning")); } const messages = game.messages.filter((m) => m instanceof ChatMessage); for (const message of messages) { ui.chat.updateMessage(message); } } Hooks.once("init", async () => { util.debug("Init..."); game.settings.register("pf2e-dorako-ui", "mld-nag", { scope: "world", config: false, default: true, type: Boolean, }); ThemeSettings.registerSettings(); MiscSettings.registerSettings(); CustomizationSettings.registerSettings(); ExternalModuleSettings.registerSettings(); util.debug("Registered settings..."); const applicationTheme = game.settings.get("pf2e-dorako-ui", "theme.app-theme"); if (applicationTheme !== "no-theme") { const uiTheme = lookupThemeAndSchemeForKey(applicationTheme); const { dorakoUiTheme, colorScheme } = uiTheme; if (uiTheme) { $("#tooltip").attr("data-theme", dorakoUiTheme); $("#fps").attr("data-theme", dorakoUiTheme); } } const root = document.querySelector(":root").style; root.setProperty("--border-radius", game.settings.get("pf2e-dorako-ui", "theme.border-radius").toString() + "px"); util.debug("initialized properties..."); util.debug("Migrating invalid settings to default..."); const allSettings = [...game.settings.settings].filter(([k, _]) => k.startsWith(MODULE_NAME)); for (const [_, setting] of allSettings) { const key = setting.key; const currentValue = game.settings.get(MODULE_NAME, key); const choices = setting.choices; if (choices) { if (!(currentValue in choices)) { const defaultValue = setting.default; await game.settings.set(MODULE_NAME, key, defaultValue); console.warn(`Set ${key} to '${defaultValue}' since '${currentValue}' is invalid`); } } } }); Hooks.once("ready", () => { let dorakoCustomCss = document.createElement("style"); dorakoCustomCss.id = "dorako-custom-css"; dorakoCustomCss.innerHTML = game.settings.get("pf2e-dorako-ui", "customization.custom-css"); document.querySelector("head").appendChild(dorakoCustomCss); });