From 857aca34232a6649bbee543549c4e0ba0020d970 Mon Sep 17 00:00:00 2001 From: Eldritch-Oliver Date: Sat, 22 Nov 2025 16:46:45 -0700 Subject: [PATCH] Add setting to prevent the UserConfig from opening on loading Foundry (closes #9) --- langs/en-ca.json | 12 ++++++++---- module/hooks/init.mjs | 4 +++- module/hooks/renderUserConfig.mjs | 12 ++++++++++++ module/oft.mjs | 1 + module/settings/preventUserConfigOpen.mjs | 22 ++++++++++++++++++++++ 5 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 module/hooks/renderUserConfig.mjs create mode 100644 module/settings/preventUserConfigOpen.mjs diff --git a/langs/en-ca.json b/langs/en-ca.json index adb0acb..d9af351 100644 --- a/langs/en-ca.json +++ b/langs/en-ca.json @@ -1,13 +1,17 @@ { "OFT": { "setting": { - "startSidebarExpanded": { - "name": "Start Sidebar Expanded", - "hint": "(v13+) Starts the right-hand sidebar expanded when logging in." - }, "chatSidebarBackground": { "name": "Chat Background", "hint": "(v13+) Adds a background to the chat tab of the right-hand sidebar." + }, + "preventUserConfigOpen": { + "name": "Prevent Auto User Config", + "hint": "(v13+) Prevents Foundry from opening the User Configuration when a player loads into the world." + }, + "startSidebarExpanded": { + "name": "Start Sidebar Expanded", + "hint": "(v13+) Starts the right-hand sidebar expanded when logging in." } } } diff --git a/module/hooks/init.mjs b/module/hooks/init.mjs index 9e301b5..bba91c1 100644 --- a/module/hooks/init.mjs +++ b/module/hooks/init.mjs @@ -1,10 +1,12 @@ import { __ID } from "../consts.mjs"; import { chatSidebarBackground } from "../settings/chatSidebarBackground.mjs"; +import { preventUserConfigOpen } from "../settings/preventUserConfigOpen.mjs"; import { startSidebarExpanded } from "../settings/startSidebarExpanded.mjs"; Hooks.once(`init`, () => { console.log(`${__ID} | Initializing`); - startSidebarExpanded.register(); chatSidebarBackground.register(); + preventUserConfigOpen.register(); + startSidebarExpanded.register(); }); diff --git a/module/hooks/renderUserConfig.mjs b/module/hooks/renderUserConfig.mjs new file mode 100644 index 0000000..54e51b2 --- /dev/null +++ b/module/hooks/renderUserConfig.mjs @@ -0,0 +1,12 @@ +import { preventUserConfigOpen } from "../settings/preventUserConfigOpen.mjs"; + +// #region Once +Hooks.once(`renderUserConfig`, (app, element) => { + + // MARK: Prevent Unready Open + if (!game.ready && preventUserConfigOpen.value()) { + element.style.display = `none`; + app.close(); + }; +}); +// #endregion Once diff --git a/module/oft.mjs b/module/oft.mjs index 1f2399e..b0cf734 100644 --- a/module/oft.mjs +++ b/module/oft.mjs @@ -2,3 +2,4 @@ import "./hooks/init.mjs"; import "./hooks/ready.mjs"; import "./hooks/renderSidebar.mjs"; +import "./hooks/renderUserConfig.mjs"; diff --git a/module/settings/preventUserConfigOpen.mjs b/module/settings/preventUserConfigOpen.mjs new file mode 100644 index 0000000..c4e2412 --- /dev/null +++ b/module/settings/preventUserConfigOpen.mjs @@ -0,0 +1,22 @@ +import { __ID } from "../consts.mjs"; + +const key = `preventUserConfigOpen`; + +const config = { + name: `OFT.setting.${key}.name`, + hint: `OFT.setting.${key}.hint`, + scope: `user`, + type: Boolean, + default: false, + config: true, + requiresReload: false, +}; + +export const preventUserConfigOpen = { + value() { + return game.settings.get(__ID, key); + }, + register() { + game.settings.register(__ID, key, config); + }, +};