Fix remoteActorCall

This commit is contained in:
2023-08-13 20:42:54 +02:00
parent 6de4fff403
commit 3c062afd56
3 changed files with 16 additions and 6 deletions

View File

@ -50,7 +50,13 @@ export class RdDBaseActor extends Actor {
static onRemoteActorCall(callData, userId) {
if (userId == game.user.id) {
const actor = game.actors.get(callData?.actorId);
let actor = game.actors.get(callData?.actorId);
if ( callData.tokenId) {
let token = canvas.tokens.placeables.find(t => t.id == callData.tokenId)
if (token) {
actor = token.actor
}
}
if (Misc.isOwnerPlayerOrUniqueConnectedGM(actor)) { // Seul le joueur choisi effectue l'appel: le joueur courant si propriétaire de l'actor, ou le MJ sinon
const args = callData.args;
console.info(`RdDBaseActor.onRemoteActorCall: pour l'Actor ${callData.actorId}, appel de RdDBaseActor.${callData.method}(`, ...args, ')');
@ -147,6 +153,7 @@ export class RdDBaseActor extends Actor {
async creerObjetParMJ(object) {
if (!Misc.isUniqueConnectedGM()) {
RdDBaseActor.remoteActorCall({
tokenId: this.token?.id,
actorId: this.id,
method: 'creerObjetParMJ',
args: [object]
@ -220,6 +227,7 @@ export class RdDBaseActor extends Actor {
if (fromActorId && !game.user.isGM) {
RdDBaseActor.remoteActorCall({
userId: Misc.connectedGMOrUser(),
tokenId: actor.token?.id,
actorId: this.id,
method: 'ajouterSols', args: [sols, fromActorId]
});
@ -250,6 +258,7 @@ export class RdDBaseActor extends Actor {
}
if (!Misc.isUniqueConnectedGM()) {
RdDBaseActor.remoteActorCall({
tokenId: actor.token?.id,
actorId: achat.vendeurId ?? achat.acheteurId,
method: 'achatVente',
args: [achat]