From 43ee24bd461af76030c639a2c8d22dcc52b1d0b8 Mon Sep 17 00:00:00 2001 From: Mike Bloy Date: Sun, 26 Feb 2023 23:27:50 -0600 Subject: [PATCH] helpers and modules --- module.json | 2 +- scripts/api.js | 15 +++++++++++++++ scripts/helpers.js | 14 ++++++++++++++ scripts/module.ejs | 0 scripts/module.js | 16 ++++++++++++++++ 5 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 scripts/api.js create mode 100644 scripts/helpers.js delete mode 100644 scripts/module.ejs create mode 100644 scripts/module.js 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') +})