Correction message d'erreur sur Hook update/create

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.
This commit is contained in:
2025-12-19 01:52:18 +01:00
parent a52d10a3b3
commit bd39c0f633
2 changed files with 9 additions and 6 deletions
+1
View File
@@ -3,6 +3,7 @@
## 13.0.24 - Le grand oubli d'Illysis ## 13.0.24 - Le grand oubli d'Illysis
- ajout d'un bouton pour supprimer les anciens messages du tchat - 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 ## 13.0.23 - Le marché d'Illysis
+8 -6
View File
@@ -220,8 +220,10 @@ export class Misc {
* and there is no connected GM * and there is no connected GM
*/ */
static documentIfResponsible(document) { static documentIfResponsible(document) {
if (game.users.activeGM || (Misc.connectedGMs().length == 0 && Misc.isFirstOwnerPlayer(document))) { if (Misc.isFirstConnectedGM() || (Misc.connectedGMs().length == 0 && Misc.isFirstOwnerPlayer(document))) {
return document if (document.isOwner) {
return document
}
} }
return undefined return undefined
} }
@@ -230,16 +232,16 @@ export class Misc {
if (Misc.isOwnerPlayer(document)) { if (Misc.isOwnerPlayer(document)) {
return await action(document) return await action(document)
} else { } else {
return await orElse(document ?? {name: '<aucune sélection>'}) return await orElse(document ?? { name: '<aucune sélection>' })
} }
} }
static isOwnerPlayer(document) { static isOwnerPlayer(document) {
return document && document.testUserPermission && document.testUserPermission(game.user, CONST.DOCUMENT_OWNERSHIP_LEVELS.OWNER) return document?.isOwner
} }
static isFirstOwnerPlayer(document) { static isFirstOwnerPlayer(document) {
if (!document?.testUserPermission) { if (!document?.isOwner) {
return false return false
} }
return game.users.find(u => document.testUserPermission(u, CONST.DOCUMENT_OWNERSHIP_LEVELS.OWNER)) == game.user 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 * @returns true pour un seul utilisateur: le premier GM connecté par ordre d'id
*/ */
static isFirstConnectedGM() { static isFirstConnectedGM() {
return game.user == game.users.activeGM return game.users.activeGM != undefined && game.user == game.users.activeGM
} }
static hasConnectedGM() { static hasConnectedGM() {