Amélioration des remoteActorCall
This commit is contained in:
@@ -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
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
|||||||
Reference in New Issue
Block a user