import { SessionTrackerApp } from "./session-tracker-app.js"; Hooks.once("init", () => { console.log("Session Tracker | Initializing"); // Register Session Count game.settings.register("fvtt-session-tracker", "sessionCount", { name: "Current Session Number", hint: "The current session number displayed on the tracker.", scope: "world", config: true, type: Number, default: 1, onChange: () => { if (SessionTrackerApp.instance) SessionTrackerApp.instance.render(); } }); // Register Auto-Increment Toggle game.settings.register("fvtt-session-tracker", "autoIncrement", { name: "Automate Session Tracking", hint: "Automatically increment the session count when the selected user logs in.", scope: "world", config: true, type: Boolean, default: false }); // Register Trigger User game.settings.register("fvtt-session-tracker", "triggerUser", { name: "Trigger User", hint: "Selecting this user will trigger the session increment when they log in.", scope: "world", config: true, type: String, default: "", choices: () => { const users = game.users.reduce((acc, u) => { acc[u.id] = u.name; return acc; }, {}); return users; } }); // Register tracker position (internal) game.settings.register("fvtt-session-tracker", "position", { scope: "client", config: false, type: Object, default: { top: 10, left: 120 } }); // Register visibility toggle for players game.settings.register("fvtt-session-tracker", "showTracker", { name: "Show Session Tracker", hint: "Whether to display the session tracker on your canvas.", scope: "client", config: true, type: Boolean, default: true, onChange: (value) => { if (SessionTrackerApp.instance) { if (value) SessionTrackerApp.instance.render(true); else SessionTrackerApp.instance.close(); } } }); // Register scale setting game.settings.register("fvtt-session-tracker", "scale", { name: "Tracker Scale", hint: "Adjust the size of the session tracker.", scope: "world", config: true, type: Number, default: 1.0, range: { min: 0.5, max: 2.0, step: 0.1 }, onChange: () => { if (SessionTrackerApp.instance) SessionTrackerApp.instance.render(); } }); }); Hooks.once("ready", () => { // Initialize the app SessionTrackerApp.initialize(); // Logic for auto-incrementing if (game.user.isGM) { Hooks.on("userConnected", (user, connected) => { if (!connected) return; const isAuto = game.settings.get("fvtt-session-tracker", "autoIncrement"); const targetUser = game.settings.get("fvtt-session-tracker", "triggerUser"); if (isAuto && user.id === targetUser) { const current = game.settings.get("fvtt-session-tracker", "sessionCount"); game.settings.set("fvtt-session-tracker", "sessionCount", current + 1); ui.notifications.info(`Session Tracker | User ${user.name} logged in. Incrementing to session ${current + 1}.`); } }); } });