Data Request API helper #10

Merged
Oliver merged 94 commits from feat/data-requests into main 2025-11-22 02:51:15 +00:00
8 changed files with 48 additions and 0 deletions
Showing only changes of commit ce6ac8a93b - Show all commits

View file

@ -31,6 +31,13 @@
"system": "Text-Based Actors" "system": "Text-Based Actors"
} }
} }
},
"notifs": {
"error": {
"invalid-socket": "Invalid socket data received, this means a module or system bug is present.",
"unknown-socket-event": "An unknown socket event was received: {event}",
"malformed-socket-payload": "Socket event \"{event}\" received with malformed payload. Details: {details}"
}
} }
} }
} }

View file

@ -17,6 +17,7 @@ import { __ID__ } from "../consts.mjs";
import helpers from "../handlebarsHelpers/_index.mjs"; import helpers from "../handlebarsHelpers/_index.mjs";
import { Logger } from "../utils/Logger.mjs"; import { Logger } from "../utils/Logger.mjs";
import { registerCustomComponents } from "../apps/elements/_index.mjs"; import { registerCustomComponents } from "../apps/elements/_index.mjs";
import { registerSockets } from "../sockets/_index.mjs";
Hooks.on(`init`, () => { Hooks.on(`init`, () => {
Logger.debug(`Initializing`); Logger.debug(`Initializing`);
@ -41,6 +42,7 @@ Hooks.on(`init`, () => {
registerWorldSettings(); registerWorldSettings();
registerSockets();
registerCustomComponents(); registerCustomComponents();
Handlebars.registerHelper(helpers); Handlebars.registerHelper(helpers);
}); });

34
module/sockets/_index.mjs Normal file
View file

@ -0,0 +1,34 @@
import { cancelRequest } from "./cancelRequest.mjs";
import { createNotif } from "./createNotif.mjs";
import { dataRequest } from "./dataRequest.mjs";
import { localizer } from "../utils/Localizer.mjs";
import { Logger } from "../utils/Logger.mjs";
import { submitRequest } from "./submitRequest.mjs";
const events = {
// Data Request sockets
cancelRequest,
createNotif,
dataRequest,
submitRequest,
};
export function registerSockets() {
Logger.info(`Setting up socket listener`);
game.socket.on(`system.taf`, (data, userID) => {
const { event, payload } = data ?? {};
if (event == null || payload === undefined) {
ui.notifications.error(localizer(`taf.notifs.error.invalid-socket`));
return;
};
if (events[event] == null) {
ui.notifications.error(localizer(`taf.notifs.error.unknown-socket-event`, { event }));
return;
};
const user = game.users.get(userID);
events[event](payload, user);
});
};

View file

@ -0,0 +1 @@
export function cancelRequest() {};

View file

@ -0,0 +1 @@
export function createNotif() {};

View file

@ -0,0 +1 @@
export function dataRequest() {};

View file

@ -0,0 +1 @@
export function submitRequest() {};

View file

@ -41,6 +41,7 @@
}, },
"Item": {} "Item": {}
}, },
"socket": true,
"flags": { "flags": {
"hotReload": { "hotReload": {
"extensions": ["css", "hbs", "json", "js", "mjs", "svg"], "extensions": ["css", "hbs", "json", "js", "mjs", "svg"],