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

View File

@@ -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: '<aucune sélection>'})
return await orElse(document ?? { name: '<aucune sélection>' })
}
}
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() {