2026-06-04 18:21:46 +02:00

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;
});