diff --git a/MaterialDeck.js b/MaterialDeck.js
index c9fd6de..5b1f1d7 100644
--- a/MaterialDeck.js
+++ b/MaterialDeck.js
@@ -11,9 +11,6 @@ import { SceneControl } from "./src/actions/scene.js";
import { downloadUtility, compareVersions, compatibleCore } from "./src/misc.js";
import { TokenHelper } from "./src/systems/tokenHelper.js";
-export const minimumSDversion = "1.4.11";
-export const minimumMSversion = "1.0.2";
-
export var streamDeck;
export var tokenControl;
export var macroControl;
@@ -34,13 +31,9 @@ export let msVersion;
let ready = false;
let controlTokenTimer;
let updateDialog;
-
-//CONFIG.debug.hooks = true;
-//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//
-// Global variables
-//
-//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+export let minimumMSversion;
+export let minimumSDversion;
+
export var enableModule;
//Websocket variables
@@ -49,7 +42,8 @@ let wsOpen = false; //Bool for checking if websocket has ever been o
let wsInterval; //Interval timer to detect disconnections
let WSconnected = false;
-//let furnace = game.modules.get("furnace");
+
+//CONFIG.debug.hooks = true;
/*
* Analyzes the message received
@@ -61,79 +55,56 @@ async function analyzeWSmessage(msg){
const data = JSON.parse(msg);
//console.log("Received",data);
- if (data.type == "connected" && data.data == "SD"){
- const msg = {
- target: "SD",
- type: "init",
- system: getGamingSystem(),
- coreVersion: game.version.split('.')[0]
+ if ((data.type == "connected" || data.type == "version") && data.data == "SD"){
+ transmitInitData();
+ let sdNok = false;
+ let msNok = false;
+ if (data.MSversion) {
+ msVersion = data.MSversion;
+ if (!compareVersions(minimumMSversion,msVersion)) {
+ msNok = true;
+ }
+ }
+ if (data.SDversion) {
+ sdVersion = data.SDversion;
+ if (!compareVersions(minimumSDversion,sdVersion)) {
+ sdNok = true;
+ }
+ }
+ if (msNok || sdNok) {
+ let content = '';
+ if (sdNok && msNok) content += `${game.i18n.localize("MaterialDeck.UpdateRequired.Both")}
`;
+ else if (sdNok) content += `${game.i18n.localize("MaterialDeck.UpdateRequired.SD")}
`;
+ else if (msNok) content += `${game.i18n.localize("MaterialDeck.UpdateRequired.MS")}
`;
+
+ content += `${game.i18n.localize("MaterialDeck.UpdateRequired.Update")}
`;
+
+ if (sdNok) content += `${game.i18n.localize("MaterialDeck.UpdateRequired.SDdownload")}
`;
+ if (msNok) content += `Material Server
`;
+ content += "
"
+
+ const myDialog = new Dialog({
+ title: game.i18n.localize("MaterialDeck.UpdateRequired.Title"),
+ content,
+ buttons: {
+ download: {
+ icon: '',
+ label: "Download Utility",
+ callback: () => new downloadUtility()
+ },
+ ignore: {
+ icon: '',
+ label: "Ignore"
+ }
+ },
+ default: "download"
+ }).render(true);
}
- ws.send(JSON.stringify(msg));
- if (data.MSversion) msVersion = data.MSversion;
- if (data.SDversion) sdVersion = data.SDversion;
console.log("streamdeck connected to server", msVersion);
streamDeck.resetImageBuffer();
}
- if (data.type == "version" && data.source == "SD") {
- sdVersion = data.version;
-
- const sdCompatible = compareVersions(minimumSDversion,sdVersion);
- const msCompatible = compareVersions(minimumMSversion,msVersion);
-
- if ((!sdCompatible || !msCompatible) && updateDialog == undefined) {
- let content = "";
-
- if (!sdCompatible && !msCompatible)
- content = game.i18n.localize("MaterialDeck.SdMsUpdateRequired")
- else if (!sdCompatible)
- content = game.i18n.localize("MaterialDeck.SdUpdateRequired")
- else
- content = game.i18n.localize("MaterialDeck.MsUpdateRequired")
- const sd = sdCompatible ? 'display:none' : ''
- const ms = msCompatible ? 'display:none' : ''
- content += `
-
| - | ${game.i18n.localize("MaterialDeck.DownloadUtility.Current")} | -${game.i18n.localize("MaterialDeck.DownloadUtility.Minimum")} | -
|---|---|---|
| Stream Deck Plugin | -||
| Material Server - | ||