/* globals socketlib */ // Import JavaScript modules import { registerSettings } from './settings.js'; import { preloadTemplates } from './preloadTemplates.js'; import { api } from './api.js'; import { initVisionModes } from './visionModes.js'; import { requestTokenRoll } from './helpers.js'; import { preDamageRollModifiers, preTraitRollModifiers } from './rollHelpers.js'; import { log, moduleHelpers } from './globals.js'; import { powerEffectManagementHook } from './powers/powers.js'; // Initialize module Hooks.once('init', async () => { log('Initializing swade-mb-helpers'); initVisionModes(); // Assign custom classes and constants here // Register custom module settings registerSettings(); // Preload Handlebars templates await preloadTemplates(); }); // Setup module Hooks.once('setup', async () => { api.registerFunctions(); }); Hooks.once('ready', async () => { _checkModule('warpgate'); _checkModule('socketlib'); log('Initialized SWADE MB Helpers'); }); function _checkModule(name) { if (!game.modules.get(name)?.active && game.user.isGM) { let action = 'install and activate'; if (game.modules.get(name)) action = 'activate'; ui.notifications.error(`SWADE MB Helpers requires the ${name} module. Please ${action} it.`); } } Hooks.on('swadePreRollAttribute', preTraitRollModifiers); Hooks.on('swadePreRollSkill', preTraitRollModifiers); Hooks.on('swadeRollDamage', preDamageRollModifiers); Hooks.on('deleteActiveEffect', powerEffectManagementHook); Hooks.once('socketlib.ready', () => { const _socket = socketlib.registerModule('swade-mb-helpers'); _socket.register('requestTokenRoll', requestTokenRoll); moduleHelpers._socket = _socket; });