UNPKG

random-tables-mcp

Version:

An MCP (Model Context Protocol) server for managing and rolling on random-table assets used in tabletop RPGs. Create, update, and roll on random tables with support for nested tables, weighted entries, and range-based results.

73 lines 2.94 kB
/** * Implementation of the RollTemplateService interface. */ export class RollTemplateServiceImpl { /** * Creates a new RollTemplateServiceImpl instance. * @param createTemplateUseCase The use case for creating templates. * @param getTemplateUseCase The use case for getting templates. * @param listTemplatesUseCase The use case for listing templates. * @param updateTemplateUseCase The use case for updating templates. * @param deleteTemplateUseCase The use case for deleting templates. * @param evaluateTemplateUseCase The use case for evaluating templates. */ constructor(createTemplateUseCase, getTemplateUseCase, listTemplatesUseCase, updateTemplateUseCase, deleteTemplateUseCase, evaluateTemplateUseCase) { this.createTemplateUseCase = createTemplateUseCase; this.getTemplateUseCase = getTemplateUseCase; this.listTemplatesUseCase = listTemplatesUseCase; this.updateTemplateUseCase = updateTemplateUseCase; this.deleteTemplateUseCase = deleteTemplateUseCase; this.evaluateTemplateUseCase = evaluateTemplateUseCase; } /** * Creates a new roll template. * @param name Template name. * @param description Template description. * @param template The template string. * @returns The ID of the created template. */ async createTemplate(name, description, template) { return await this.createTemplateUseCase.execute(name, description, template); } /** * Gets a template by its ID. * @param id The ID of the template to get. * @returns The template, or null if not found. */ async getTemplate(id) { return await this.getTemplateUseCase.execute(id); } /** * Updates an existing template. * @param id The ID of the template to update. * @param updates Object containing the updates to apply. */ async updateTemplate(id, updates) { await this.updateTemplateUseCase.execute(id, updates); } /** * Lists templates based on optional filter criteria. * @param filter Optional filter criteria. * @returns An array of templates matching the filter. */ async listTemplates(filter) { return await this.listTemplatesUseCase.execute(filter); } /** * Deletes a template by its ID. * @param id The ID of the template to delete. */ async deleteTemplate(id) { await this.deleteTemplateUseCase.execute(id); } /** * Evaluates a template by resolving all references to tables. * @param id The ID of the template to evaluate. * @param count The number of evaluations to perform (default: 1). * @returns An array of template evaluation results. */ async evaluateTemplate(id, count = 1) { return await this.evaluateTemplateUseCase.execute(id, count); } } //# sourceMappingURL=roll-template-service-impl.js.map