diff --git a/module.json b/module.json index 22b04c9..1bc5422 100644 --- a/module.json +++ b/module.json @@ -16,7 +16,7 @@ "verified": "10" }, "esmodules": [ - "./scripts/module.ejs" + "./scripts/module.js" ], "packs": [ { diff --git a/scripts/api.js b/scripts/api.js new file mode 100644 index 0000000..baa5bd2 --- /dev/null +++ b/scripts/api.js @@ -0,0 +1,15 @@ +import { helpers } from './helpers.js' + +export class api { + static registerFunctions () { + console.log('SWADE MB Helpers initialized') + api.globals() + } + + static globals () { + globalThis.swadeMBHelpers = { + DEBUG: true, + runOnTargetOrSelectedTokens: helpers.runOnTargetOrSelectedTokens + } + } +} diff --git a/scripts/helpers.js b/scripts/helpers.js new file mode 100644 index 0000000..8a283da --- /dev/null +++ b/scripts/helpers.js @@ -0,0 +1,14 @@ +export class helpers { + static runOnTargetOrSelectedTokens (runFunc) { + let tokens = [] + const targets = Array.from(game.user.targets) + if (targets.length > 0) tokens = targets + if (canvas.tokens.controlled.length > 0) tokens = canvas.tokens.controlled + + if (tokens.length > 0) { + runFunc(tokens) + } else { + ui.notifications.error('Please select or target a token') + } + } +} diff --git a/scripts/module.ejs b/scripts/module.ejs deleted file mode 100644 index e69de29..0000000 diff --git a/scripts/module.js b/scripts/module.js new file mode 100644 index 0000000..adfcc12 --- /dev/null +++ b/scripts/module.js @@ -0,0 +1,16 @@ +import { api } from './api.js' + +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('setup', api.registerFunctions) + +Hooks.on('ready', () => { + _checkModule('warpgate') +})