A repository for a FoundryVTT plugin for Kingmaker homebrew.

Adding some utils to interface typescript with socketlib module

+24 -1
+8 -1
src/main.ts
··· 1 1 import KingdomSheet from "./kingdom-sheet"; 2 2 import preloadTemplates from "./preloadTemplates"; 3 + import { socketlib } from "./utils"; 4 + 5 + let socket; 3 6 4 - Hooks.on("init", async () => { 7 + Hooks.on("init", async (): Promise<void> => { 5 8 KingdomSheet.register(); 6 9 await preloadTemplates(); 7 10 console.log("Kingdom Homebrew loaded"); 11 + }); 12 + 13 + Hooks.once("socketlib.ready", (): void => { 14 + socket = socketlib.registerModule("kingdom-homebrew"); 8 15 });
+16
src/utils.ts
··· 1 + export interface isocketlib { 2 + registerModule: (moduleName: string) => Socket 3 + } 4 + 5 + export interface Socket { 6 + register: (name: string, func: (...args: any[]) => any) => void, 7 + executeAsGM: (handler: string, ...args: any[]) => Promise<any>, 8 + executeAsUser: (handler: string, userId: string, ...parameters: any[]) => Promise<any>, 9 + executeForAllGMs: (handler: string, ...parameters: any[]) => Promise<any>, 10 + executeForOtherGMs: (handler: string, ...parameters: any[]) => Promise<any>, 11 + executeForEveryone: (handler: string, ...args: any[]) => Promise<any>, 12 + executeForOthers: (handler: string, ...args: any[]) => Promise<any>, 13 + executeForUsers: (handler: string, recipients: string[], ...parameters: any[]) => Promise<any> 14 + } 15 + 16 + export declare var socketlib: isocketlib;