Amélioration des remoteActorCall

This commit is contained in:
2025-12-13 02:43:58 +01:00
parent bb51d1c1d0
commit c61cc5da18
2 changed files with 17 additions and 16 deletions
+12 -8
View File
@@ -68,19 +68,23 @@ export class RdDBaseActor extends Actor {
return false return false
} }
else { else {
game.socket.emit(SYSTEM_SOCKET_ID, { const gmUserId = Misc.firstConnectedGMId()
msg: "msg_remote_actor_call", if (gmUserId){
data: callData, game.socket.emit(SYSTEM_SOCKET_ID, {
userId: Misc.firstConnectedGMId() msg: "msg_remote_actor_call",
}) data: callData,
return true userId: gmUserId
})
return true
}
return false
} }
} }
static onRemoteActorCall(callData, userId) { static onRemoteActorCall(callData, userId) {
const actor = RdDBaseActor.getRealActor(callData?.actorId, callData?.tokenId);
if (userId == game.user.id) { if (userId == game.user.id) {
// Seul le joueur choisi effectue l'appel: le joueur courant si propriétaire de l'actor, ou le MJ sinon // Seul le joueur choisi effectue l'appel: le joueur courant si propriétaire de l'actor, ou le MJ sinon
const actor = RdDBaseActor.getRealActor(callData?.actorId, callData?.tokenId);
const args = callData.args; const args = callData.args;
console.info(`RdDBaseActor.onRemoteActorCall: pour l'Actor ${callData.actorId}, appel de RdDBaseActor.${callData.method}(`, ...args, ')'); console.info(`RdDBaseActor.onRemoteActorCall: pour l'Actor ${callData.actorId}, appel de RdDBaseActor.${callData.method}(`, ...args, ')');
actor[callData.method](...args); actor[callData.method](...args);
@@ -461,7 +465,7 @@ export class RdDBaseActor extends Actor {
ui.notifications.info("Inutile de se vendre à soi-même"); ui.notifications.info("Inutile de se vendre à soi-même");
return; return;
} }
if (!Misc.isFirstConnectedGM()) { if (!game.user.isGM) {
RdDBaseActor.remoteActorCall({ RdDBaseActor.remoteActorCall({
actorId: achat.vendeurId ?? achat.acheteurId, actorId: achat.vendeurId ?? achat.acheteurId,
method: 'achatVente', args: [achat] method: 'achatVente', args: [achat]
+5 -8
View File
@@ -200,10 +200,7 @@ export class Misc {
} }
static firstConnectedGM() { static firstConnectedGM() {
if (foundry.utils.isNewerVersion(game.release.version, '12.0')) { return game.users.activeGM
return game.users.activeGM
}
return game.users.find(u => u.isGM && u.active);
} }
static connectedGMs() { static connectedGMs() {
@@ -223,7 +220,7 @@ export class Misc {
* and there is no connected GM * and there is no connected GM
*/ */
static documentIfResponsible(document) { static documentIfResponsible(document) {
if (Misc.isFirstConnectedGM() || (Misc.connectedGMs().length == 0 && Misc.isFirstOwnerPlayer(document))) { if (game.users.activeGM || (Misc.connectedGMs().length == 0 && Misc.isFirstOwnerPlayer(document))) {
return document return document
} }
return undefined return undefined
@@ -252,15 +249,15 @@ 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 == Misc.firstConnectedGM(); return game.user == game.users.activeGM
} }
static hasConnectedGM() { static hasConnectedGM() {
return Misc.firstConnectedGM(); return game.users.activeGM
} }
static firstConnectedGMId() { static firstConnectedGMId() {
return Misc.firstConnectedGM()?.id; return game.users.activeGM?.id;
} }
/* -------------------------------------------- */ /* -------------------------------------------- */