Add better status indicators, and a setting to prevent movement history recording

This commit is contained in:
Oliver 2025-12-13 21:31:56 -07:00
parent 344e9c55ab
commit c2601ba69c
18 changed files with 183 additions and 79 deletions

View file

@ -1,3 +1,4 @@
import { SettingStatusEnum, status } from "../utils/SettingStatus.mjs";
import { __ID__ } from "../consts.mjs";
import { Logger } from "../utils/Logger.mjs";
import { registerDevSetting } from "../utils/SubMenuSettings.mjs";
@ -5,6 +6,7 @@ import { registerDevSetting } from "../utils/SubMenuSettings.mjs";
const key = `addGlobalDocReferrer`;
export function addGlobalDocReferrer() {
status[key] = SettingStatusEnum.Unknown;
// #region Registration
Logger.log(`Registering setting: ${key}`);
@ -33,5 +35,5 @@ export function addGlobalDocReferrer() {
});
// #endregion Implementation
return true;
status[key] = SettingStatusEnum.Registered;
};

View file

@ -1,3 +1,4 @@
import { SettingStatusEnum, status } from "../utils/SettingStatus.mjs";
import { __ID__ } from "../consts.mjs";
import { Logger } from "../utils/Logger.mjs";
import { registerDevSetting } from "../utils/SubMenuSettings.mjs";
@ -5,11 +6,13 @@ import { registerDevSetting } from "../utils/SubMenuSettings.mjs";
const key = `autoUnpauseOnLoad`;
export function autoUnpauseOnLoad() {
status[key] = SettingStatusEnum.Unknown;
const prevented = Hooks.call(`${__ID__}.preventSetting`, key);
if (!prevented) {
Logger.log(`Preventing setting "${key}" from being registered`);
return false;
status[key] = SettingStatusEnum.Blocked;
return;
};
// #region Registration
@ -35,5 +38,5 @@ export function autoUnpauseOnLoad() {
});
// #endregion Implementation
return true;
status[key] = SettingStatusEnum.Registered;
};

View file

@ -1,3 +1,4 @@
import { SettingStatusEnum, status } from "../utils/SettingStatus.mjs";
import { __ID__ } from "../consts.mjs";
import { Logger } from "../utils/Logger.mjs";
@ -13,11 +14,13 @@ const IMAGE_TYPES = [
];
export function chatImageLinks() {
status[key] = SettingStatusEnum.Unknown;
const prevented = Hooks.call(`${__ID__}.preventSetting`, key);
if (!prevented) {
Logger.log(`Preventing setting "${key}" from being registered`);
return false;
status[key] = SettingStatusEnum.Blocked;
return;
};
// #region Registration
@ -103,7 +106,7 @@ export function chatImageLinks() {
}
// #endregion Implementation
return true;
status[key] = SettingStatusEnum.Registered;
};
// #region Helpers

View file

@ -1,9 +1,11 @@
import { SettingStatusEnum, status } from "../utils/SettingStatus.mjs";
import { __ID__ } from "../consts.mjs";
import { Logger } from "../utils/Logger.mjs";
const key = `chatSidebarBackground`;
export function chatSidebarBackground() {
status[key] = SettingStatusEnum.Unknown;
// #region Registration
Logger.log(`Registering setting: ${key}`);
@ -29,5 +31,5 @@ export function chatSidebarBackground() {
};
// #endregion Implementation
return true;
status[key] = SettingStatusEnum.Registered;
};

View file

@ -1,3 +1,4 @@
import { SettingStatusEnum, status } from "../utils/SettingStatus.mjs";
import { __ID__ } from "../consts.mjs";
import { Logger } from "../utils/Logger.mjs";
import { registerCategorySetting } from "../utils/SubMenuSettings.mjs";
@ -5,11 +6,13 @@ import { registerCategorySetting } from "../utils/SubMenuSettings.mjs";
const key = `hotbarButtonGap`;
export function hotbarButtonGap() {
status[key] = SettingStatusEnum.Unknown;
const prevented = Hooks.call(`${__ID__}.preventSetting`, key);
if (!prevented) {
Logger.log(`Preventing setting "${key}" from being registered`);
return false;
status[key] = SettingStatusEnum.Blocked;
return;
};
// #region Registration
@ -38,5 +41,5 @@ export function hotbarButtonGap() {
document.body.style.setProperty(`--hotbar-button-gap`, `${buttonGap}px`);
// #endregion Implementation
return true;
status[key] = SettingStatusEnum.Registered;
};

View file

@ -1,3 +1,4 @@
import { SettingStatusEnum, status } from "../utils/SettingStatus.mjs";
import { __ID__ } from "../consts.mjs";
import { Logger } from "../utils/Logger.mjs";
import { registerCategorySetting } from "../utils/SubMenuSettings.mjs";
@ -5,11 +6,13 @@ import { registerCategorySetting } from "../utils/SubMenuSettings.mjs";
const key = `hotbarButtonSize`;
export function hotbarButtonSize() {
status[key] = SettingStatusEnum.Unknown;
const prevented = Hooks.call(`${__ID__}.preventSetting`, key);
if (!prevented) {
Logger.log(`Preventing setting "${key}" from being registered`);
return false;
status[key] = SettingStatusEnum.Blocked;
return;
};
// #region Registration
@ -38,5 +41,5 @@ export function hotbarButtonSize() {
document.body.style.setProperty(`--hotbar-size`, `${hotbarSize}px`);
// #endregion Implementation
return true;
status[key] = SettingStatusEnum.Registered;
};

View file

@ -0,0 +1,42 @@
import { SettingStatusEnum, status } from "../utils/SettingStatus.mjs";
import { __ID__ } from "../consts.mjs";
import { Logger } from "../utils/Logger.mjs";
const key = `preventMovementHistory`;
export function preventMovementHistory() {
status[key] = SettingStatusEnum.Unknown;
const prevented = Hooks.call(`${__ID__}.preventSetting`, key);
if (!prevented) {
Logger.log(`Preventing setting "${key}" from being registered`);
status[key] = SettingStatusEnum.Blocked;
return;
};
// #region Registration
Logger.log(`Registering setting: ${key}`);
game.settings.register(__ID__, key, {
name: `OFT.setting.${key}.name`,
hint: `OFT.setting.${key}.hint`,
scope: `world`,
type: Boolean,
default: false,
config: true,
reloadRequired: true,
});
// #endregion Registration
// #region Implementation
if (game.settings.get(__ID__, key)) {
class OFTTokenDocument extends CONFIG.Token.documentClass {
_shouldRecordMovementHistory() {
return false;
};
};
CONFIG.Token.documentClass = OFTTokenDocument;
};
// #endregion Implementation
status[key] = SettingStatusEnum.Registered;
};

View file

@ -1,14 +1,17 @@
import { SettingStatusEnum, status } from "../utils/SettingStatus.mjs";
import { __ID__ } from "../consts.mjs";
import { Logger } from "../utils/Logger.mjs";
const key = `preventTokenRotation`;
export function preventTokenRotation() {
status[key] = SettingStatusEnum.Unknown;
const prevented = Hooks.call(`${__ID__}.preventSetting`, key);
if (!prevented) {
Logger.log(`Preventing setting "${key}" from being registered`);
return false;
status[key] = SettingStatusEnum.Blocked;
return;
};
/** @type {number|null} */
@ -40,7 +43,7 @@ export function preventTokenRotation() {
};
// #endregion Implementation
return true;
status[key] = SettingStatusEnum.Registered;
};
// #region Helpers

View file

@ -1,14 +1,17 @@
import { SettingStatusEnum, status } from "../utils/SettingStatus.mjs";
import { __ID__ } from "../consts.mjs";
import { Logger } from "../utils/Logger.mjs";
const key = `preventUserConfigOpen`;
export function preventUserConfigOpen() {
status[key] = SettingStatusEnum.Unknown;
const prevented = Hooks.call(`${__ID__}.preventSetting`, key);
if (!prevented) {
Logger.log(`Preventing setting "${key}" from being registered`);
return false;
status[key] = SettingStatusEnum.Blocked;
return;
};
// #region Registration
@ -33,5 +36,5 @@ export function preventUserConfigOpen() {
});
// #endregion Implementation
return true;
status[key] = SettingStatusEnum.Registered;
};

View file

@ -1,3 +1,4 @@
import { SettingStatusEnum, status } from "../utils/SettingStatus.mjs";
import { __ID__ } from "../consts.mjs";
import { Logger } from "../utils/Logger.mjs";
import { registerCategorySetting } from "../utils/SubMenuSettings.mjs";
@ -5,11 +6,13 @@ import { registerCategorySetting } from "../utils/SubMenuSettings.mjs";
const key = `repositionHotbar`;
export function repositionHotbar() {
status[key] = SettingStatusEnum.Unknown;
const prevented = Hooks.call(`${__ID__}.preventSetting`, key);
if (!prevented) {
Logger.log(`Preventing setting "${key}" from being registered`);
return false;
status[key] = SettingStatusEnum.Blocked;
return;
};
// #region Registration
@ -44,5 +47,5 @@ export function repositionHotbar() {
};
// #endregion Implementation
return true;
status[key] = SettingStatusEnum.Registered;
};

View file

@ -1,9 +1,11 @@
import { SettingStatusEnum, status } from "../utils/SettingStatus.mjs";
import { __ID__ } from "../consts.mjs";
import { Logger } from "../utils/Logger.mjs";
const key = `startSidebarExpanded`;
export function startSidebarExpanded() {
status[key] = SettingStatusEnum.Unknown;
// #region Registration
Logger.log(`Registering setting: ${key}`);
@ -27,5 +29,5 @@ export function startSidebarExpanded() {
});
// #endregion Implementation
return true;
status[key] = SettingStatusEnum.Registered;
};

View file

@ -1,9 +1,11 @@
import { SettingStatusEnum, status } from "../utils/SettingStatus.mjs";
import { __ID__ } from "../consts.mjs";
import { Logger } from "../utils/Logger.mjs";
const key = `startingSidebarTab`;
export function startingSidebarTab() {
status[key] = SettingStatusEnum.Unknown;
// #region Registration
Logger.log(`Registering setting: ${key}`);
@ -56,5 +58,5 @@ export function startingSidebarTab() {
});
// #endregion Implementation
return true;
status[key] = SettingStatusEnum.Registered;
};