37 lines
1.2 KiB
JavaScript
Executable File
37 lines
1.2 KiB
JavaScript
Executable File
import { MODULE_ID } from "./constants.js";
|
|
import { registerSettings } from "./settings.js";
|
|
import { registerSocket } from "./sockets.js";
|
|
import { ConfigurableReactionsConfigApp } from "./apps/reaction-config-app.js";
|
|
import { registerDnd5eDamageTrigger } from "./triggers/damage-received.js";
|
|
import { registerTargetSelectedTrigger } from "./triggers/target-selected.js";
|
|
|
|
Hooks.once("init", () => {
|
|
registerSettings();
|
|
console.log(`${MODULE_ID} | Settings registered`);
|
|
});
|
|
|
|
Hooks.once("ready", () => {
|
|
registerSocket();
|
|
registerDnd5eDamageTrigger();
|
|
registerTargetSelectedTrigger();
|
|
console.log(`${MODULE_ID} | Ready`);
|
|
});
|
|
|
|
Hooks.on("getSceneControlButtons", controls => {
|
|
if (!game.user.isGM) return;
|
|
|
|
const tokenControls = controls.tokens ?? controls.find?.(c => c.name === "token");
|
|
if (!tokenControls) return;
|
|
|
|
const tool = {
|
|
name: "configurable-reactions",
|
|
title: game.i18n.localize("CONFIGURABLE_REACTIONS.Controls.OpenConfig"),
|
|
icon: "fa-solid fa-bolt",
|
|
button: true,
|
|
onChange: () => new ConfigurableReactionsConfigApp().render(true)
|
|
};
|
|
|
|
if (Array.isArray(tokenControls.tools)) tokenControls.tools.push(tool);
|
|
else if (tokenControls.tools instanceof Object) tokenControls.tools[tool.name] = tool;
|
|
});
|