stat-tracker/module/hooks/init.mjs

50 lines
1.4 KiB
JavaScript

// Databases
import { MemoryDatabase } from "../utils/databases/Memory.mjs";
import { UserFlagDatabase } from "../utils/databases/UserFlag.mjs";
// Applications
import { StatSidebar } from "../Apps/StatSidebar.mjs";
import { StatsViewer } from "../Apps/StatsViewer.mjs";
import { TableCreator } from "../Apps/TableCreator.mjs";
import { TableManager } from "../Apps/TableManager.mjs";
// Misc Imports
import helpers from "../handlebarsHelpers/_index.mjs";
import { Logger } from "../utils/Logger.mjs";
import { registerCustomComponents } from "../Apps/elements/_index.mjs";
import { registerMetaSettings } from "../settings/meta.mjs";
import { registerWorldSettings } from "../settings/world.mjs";
Hooks.on(`init`, () => {
Logger.debug(`Initializing`);
// Add a custom sidebar tab for the module
CONFIG.ui.sidebar.TABS.stats = {
active: false,
icon: `fa-solid fa-chart-line`,
tooltip: `Stats!`,
};
CONFIG.ui.stats = StatSidebar;
// Inject the tab right before settings;
const temp = CONFIG.ui.sidebar.TABS.settings;
delete CONFIG.ui.sidebar.TABS.settings;
CONFIG.ui.sidebar.TABS.settings = temp;
registerMetaSettings();
registerWorldSettings();
CONFIG.stats = {
db: UserFlagDatabase,
viewer: StatsViewer,
creator: TableCreator,
manager: TableManager,
};
if (import.meta.env.DEV) {
CONFIG.stats.db = MemoryDatabase;
}
Handlebars.registerHelper(helpers);
registerCustomComponents();
});