54 lines
1.7 KiB
JavaScript
54 lines
1.7 KiB
JavaScript
/* 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;
|
|
});
|