diff --git a/src/module/helpers.js b/src/module/helpers.js
index c21b45b..dad9b44 100644
--- a/src/module/helpers.js
+++ b/src/module/helpers.js
@@ -94,35 +94,13 @@ export function helpersRenderChatMessage(message, html, data) {
)?.id;
}
const result = await actor[rollFunc](rollId, options);
- tokenData.resolved = true;
- tokenData.total = result.total;
- if (result.successes == -1) {
- tokenData.icon = '⛝';
- tokenData.resolveClass = 'critFail';
- tokenData.value = 'Critical Failure!';
- } else if (result.successes == 0) {
- tokenData.icon = '⛒';
- tokenData.value = 'Failure';
- tokenData.resolveClass = 'failure';
- } else if (result.successes == 1) {
- tokenData.icon = '✓';
- tokenData.value = 'Success';
- tokenData.resolveClass = 'success';
- } else if (result.successes == 2) {
- tokenData.icon = '✓✓';
- tokenData.value = `Success and a raise!`;
- tokenData.resolveClass = 'raise';
- } else {
- tokenData.icon = '✓✓';
- tokenData.value = `Success and ${result.successes - 1} raises!`;
- tokenData.resolveClass = 'raise';
- }
- await message.setFlag('swade-mb-helpers', `rollRequest.tokens.${tokenId}`, tokenData);
- log('result', result);
- const newData = message.getFlag('swade-mb-helpers', 'rollRequest');
- const template = templates['rollRequest/chatcard.html'];
- const newContent = await foundry.applications.handlebars.renderTemplate(template, newData);
- await message.update({ content: newContent });
+ moduleHelpers.socket.executeAsGM(
+ updateRequestRollChat,
+ message._id,
+ tokenUuid,
+ result.total,
+ result.successes,
+ );
});
} else {
buttonSpan.remove();
@@ -131,8 +109,49 @@ export function helpersRenderChatMessage(message, html, data) {
}
}
-export function helpersRenderChatLog(app, html, data) {
- // log('RENDER CHAT LOG', app, html, data);
+export async function updateRequestRollChat(messageId, tokenUuid, total, successes) {
+ log('Update chat', messageId, tokenUuid, total, successes);
+ const message = game.messages.get(messageId);
+ if (!message) {
+ return;
+ }
+ const token = foundry.utils.fromUuidSync(tokenUuid);
+ const tokenData = {
+ resolved: true,
+ total,
+ };
+ switch (successes) {
+ case -1:
+ tokenData.icon = '⛝';
+ tokenData.resolveClass = 'critFail';
+ tokenData.value = 'Critical Failure!';
+ break;
+ case 0:
+ tokenData.icon = '⛒';
+ tokenData.value = 'Failure';
+ tokenData.resolveClass = 'failure';
+ break;
+ case 1:
+ tokenData.icon = '✓';
+ tokenData.value = 'Success';
+ tokenData.resolveClass = 'success';
+ break;
+ case 2:
+ tokenData.icon = '✓✓';
+ tokenData.value = `Success & raise!`;
+ tokenData.resolveClass = 'raise';
+ break;
+ default:
+ tokenData.icon = '✓✓';
+ tokenData.value = `Success & ${successes - 1} raises!`;
+ tokenData.resolveClass = 'raise';
+ break;
+ }
+ await message.setFlag('swade-mb-helpers', `rollRequest.tokens.${token._id}`, tokenData);
+ const newData = message.getFlag('swade-mb-helpers', 'rollRequest');
+ const template = templates['rollRequest/chatcard.html'];
+ const newContent = await foundry.applications.handlebars.renderTemplate(template, newData);
+ await message.update({ content: newContent });
}
export async function requestRollFromTokens(tokens, rollType, rollDesc, options = {}) {
diff --git a/src/module/swade-mb-helpers.js b/src/module/swade-mb-helpers.js
index 161b5f2..ebbee5a 100644
--- a/src/module/swade-mb-helpers.js
+++ b/src/module/swade-mb-helpers.js
@@ -14,7 +14,7 @@ import {
SwadeVAEbuttons,
updateOwnedToken,
helpersRenderChatMessage,
- helpersRenderChatLog,
+ updateRequestRollChat,
} from './helpers.js';
import { preAttackRollModifiers, preDamageRollModifiers, preTraitRollModifiers } from './rollHelpers.js';
import { log, moduleHelpers } from './globals.js';
@@ -54,7 +54,6 @@ function _checkModule(name) {
Hooks.on('preCreateItem', embeddedHelperHook);
Hooks.on('renderChatMessageHTML', helpersRenderChatMessage);
-Hooks.on('renderChatLogHTML', helpersRenderChatLog);
Hooks.on('swadePreRollAttribute', preTraitRollModifiers);
Hooks.on('swadePreRollSkill', preTraitRollModifiers);
Hooks.on('swadeCalculateDefaultAttackMods', preAttackRollModifiers);
@@ -66,6 +65,7 @@ Hooks.on('visual-active-effects.createEffectButtons', SwadeVAEbuttons);
Hooks.once('socketlib.ready', () => {
const _socket = socketlib.registerModule('swade-mb-helpers');
+ _socket.register('updateRequestRollChat', updateRequestRollChat);
_socket.register('requestTokenRoll', requestTokenRoll);
_socket.register('updateOwnedToken', updateOwnedToken);
_socket.register('deleteToken', deleteToken);
diff --git a/src/templates/rollRequest/chatcard.html b/src/templates/rollRequest/chatcard.html
index 7d51568..6a9d9d0 100644
--- a/src/templates/rollRequest/chatcard.html
+++ b/src/templates/rollRequest/chatcard.html
@@ -7,24 +7,28 @@
Token
- Result
+ Result