Add setting migration

This commit is contained in:
Manuel Vögele
2021-02-18 00:38:55 +01:00
parent b84cdfd7c1
commit 8110a1b78b
3 changed files with 36 additions and 0 deletions
+2
View File
@@ -3,6 +3,7 @@
import {getRangesFromSpeedProvider, getUnreachableColorFromSpeedProvider, initApi, registerModule, registerSystem} from "./api.js"
import {getHexSizeSupportTokenGridCenter} from "./compatibility.js"
import {measure, moveTokens, onMouseMove} from "./foundry_imports.js"
import {performMigrations} from "./migration.js"
import {registerSettings, settingsKey} from "./settings.js"
import {SpeedProvider} from "./speed_provider.js"
@@ -22,6 +23,7 @@ Hooks.once("init", () => {
})
Hooks.once("ready", () => {
performMigrations()
Hooks.callAll("dragRuler.ready", SpeedProvider)
})
+27
View File
@@ -0,0 +1,27 @@
import {settingsKey} from "./settings.js"
const currentDataVersion = "1.3.0"
export function performMigrations() {
if (!game.user.isGM)
return
let dataVersion = game.settings.get(settingsKey, "dataVersion")
if (dataVersion === "fresh install") {
// Migration from unnamed version. TODO Remove this in a future version
let speedAttribute = game.settings.storage.get("world").get(`${settingsKey}.speedAttribute`)
if (speedAttribute)
speedAttribute = speedAttribute.slice(1, speedAttribute.length - 1)
const speedAttributeDefault = game.settings.get(settingsKey, "speedProviders.native.setting.speedAttribute")
if (speedAttribute !== speedAttributeDefault)
game.settings.set(settingsKey, "speedProviders.native.setting.speedAttribute", speedAttribute)
let dashMultiplier = game.settings.storage.get("world").get(`${settingsKey}.dashMultiplier`)
const dashMultiplierDefault = game.settings.get(settingsKey, "speedProviders.native.setting.dashMultiplier")
if (dashMultiplier !== dashMultiplierDefault)
game.settings.set(settingsKey, "speedProviders.native.setting.dashMultiplier", dashMultiplier)
// End of unnamed version migration code
game.settings.set(settingsKey, "dataVersion", currentDataVersion)
return
}
}
+7
View File
@@ -4,6 +4,13 @@ import {SpeedProvider} from "./speed_provider.js"
export const settingsKey = "drag-ruler";
export function registerSettings() {
game.settings.register(settingsKey, "dataVersion", {
scope: "world",
config: false,
type: String,
default: "fresh install"
})
game.settings.register(settingsKey, "swapSpacebarRightClick", {
name: "drag-ruler.settings.swapSpacebarRightClick.name",
hint: "drag-ruler.settings.swapSpacebarRightClick.hint",