From f7683e8945fb4499e15967c94f9968d2f457874c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20V=C3=B6gele?= Date: Wed, 14 Apr 2021 15:40:59 +0200 Subject: [PATCH] Update the movement tracking flags in the GM client, becauase the user isn't allowed to modify them --- module.json | 10 +++++++++- src/movement_tracking.js | 3 ++- src/socket.js | 17 +++++++++++++++++ 3 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 src/socket.js diff --git a/module.json b/module.json index 354349d..6d54888 100644 --- a/module.json +++ b/module.json @@ -13,7 +13,8 @@ } ], "esmodules": [ - "src/main.js" + "src/main.js", + "src/socket.js" ], "templates": [ "speed_provider_settings.html" @@ -40,6 +41,13 @@ "path": "lang/zh-tw.json" } ], + "dependencies": [ + { + "name": "socketlib", + "manifest": "https://raw.githubusercontent.com/manuelVo/foundryvtt-socketlib/master/module.json" + } + ], + "socket": true, "url": "https://github.com/manuelVo/foundryvtt-drag-ruler", "download": "https://github.com/manuelVo/foundryvtt-drag-ruler/archive/v1.4.6.zip", "manifest": "https://raw.githubusercontent.com/manuelVo/foundryvtt-drag-ruler/master/module.json", diff --git a/src/movement_tracking.js b/src/movement_tracking.js index c27cc6a..c0552b9 100644 --- a/src/movement_tracking.js +++ b/src/movement_tracking.js @@ -1,4 +1,5 @@ import {measureDistances} from "./compatibility.js"; +import {updateCombatantDragRulerFlags} from "./socket.js"; import {getTokenShape} from "./util.js"; function initTrackingFlag(combatant) { @@ -54,7 +55,7 @@ export async function trackRays(token, rays) { waypoints.push(ray.A); } } - await combat.updateEmbeddedEntity("Combatant", {_id: combatant._id, flags: combatant.flags}, {diff: false}); + await updateCombatantDragRulerFlags(combat, combatant, dragRulerFlags); } export function getMovementHistory(token) { diff --git a/src/socket.js b/src/socket.js new file mode 100644 index 0000000..e985b5c --- /dev/null +++ b/src/socket.js @@ -0,0 +1,17 @@ +let socket; + +Hooks.once("socketlib.ready", () => { + socket = socketlib.registerModule("drag-ruler"); + socket.register("updateCombatantDragRulerFlags", _socketUpdateCombatantDragRulerFlags); +}); + +export async function updateCombatantDragRulerFlags(combat, combatant, flags) { + const combatId = combat.id; + const combatantId = combatant._id; + return socket.executeAsGM(_socketUpdateCombatantDragRulerFlags, combatId, combatantId, flags); +} + +async function _socketUpdateCombatantDragRulerFlags(combatId, combatantId, flags) { + const combat = game.combats.get(combatId); + return combat.updateEmbeddedEntity("Combatant", {_id: combatantId, flags: {dragRuler: flags}}, {diff: false}); +}