|
|
- 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);
- });
|