From bd39c0f633906a0fc0b45eb7b438a68a1ef9e13b Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Fri, 19 Dec 2025 01:52:18 +0100 Subject: [PATCH] Correction message d'erreur sur Hook update/create MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Les Hook d'update/create sont appelés pour tous les joueurs. Le filtrage pour n'exécuter qu'une fois les modifications supplémentaires se basait sur game.user.activeGM qui est toujours défini, au lieu de le comparer au joueur courant pour s'assurer de ne faire l'action que pour le premier joueur connecté propriétaire du personnage. --- changelog.md | 1 + module/misc.js | 14 ++++++++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/changelog.md b/changelog.md index b4cc5b7b..f3762770 100644 --- a/changelog.md +++ b/changelog.md @@ -3,6 +3,7 @@ ## 13.0.24 - Le grand oubli d'Illysis - ajout d'un bouton pour supprimer les anciens messages du tchat +- correction de messages d'erreur 'User ... lacks permission' / 'Active Effect ... does not exist' ## 13.0.23 - Le marché d'Illysis diff --git a/module/misc.js b/module/misc.js index add093df..a606bf76 100644 --- a/module/misc.js +++ b/module/misc.js @@ -220,8 +220,10 @@ export class Misc { * and there is no connected GM */ static documentIfResponsible(document) { - if (game.users.activeGM || (Misc.connectedGMs().length == 0 && Misc.isFirstOwnerPlayer(document))) { - return document + if (Misc.isFirstConnectedGM() || (Misc.connectedGMs().length == 0 && Misc.isFirstOwnerPlayer(document))) { + if (document.isOwner) { + return document + } } return undefined } @@ -230,16 +232,16 @@ export class Misc { if (Misc.isOwnerPlayer(document)) { return await action(document) } else { - return await orElse(document ?? {name: ''}) + return await orElse(document ?? { name: '' }) } } static isOwnerPlayer(document) { - return document && document.testUserPermission && document.testUserPermission(game.user, CONST.DOCUMENT_OWNERSHIP_LEVELS.OWNER) + return document?.isOwner } static isFirstOwnerPlayer(document) { - if (!document?.testUserPermission) { + if (!document?.isOwner) { return false } return game.users.find(u => document.testUserPermission(u, CONST.DOCUMENT_OWNERSHIP_LEVELS.OWNER)) == game.user @@ -249,7 +251,7 @@ export class Misc { * @returns true pour un seul utilisateur: le premier GM connecté par ordre d'id */ static isFirstConnectedGM() { - return game.user == game.users.activeGM + return game.users.activeGM != undefined && game.user == game.users.activeGM } static hasConnectedGM() {