Add setting migration
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
import {getRangesFromSpeedProvider, getUnreachableColorFromSpeedProvider, initApi, registerModule, registerSystem} from "./api.js"
|
import {getRangesFromSpeedProvider, getUnreachableColorFromSpeedProvider, initApi, registerModule, registerSystem} from "./api.js"
|
||||||
import {getHexSizeSupportTokenGridCenter} from "./compatibility.js"
|
import {getHexSizeSupportTokenGridCenter} from "./compatibility.js"
|
||||||
import {measure, moveTokens, onMouseMove} from "./foundry_imports.js"
|
import {measure, moveTokens, onMouseMove} from "./foundry_imports.js"
|
||||||
|
import {performMigrations} from "./migration.js"
|
||||||
import {registerSettings, settingsKey} from "./settings.js"
|
import {registerSettings, settingsKey} from "./settings.js"
|
||||||
import {SpeedProvider} from "./speed_provider.js"
|
import {SpeedProvider} from "./speed_provider.js"
|
||||||
|
|
||||||
@@ -22,6 +23,7 @@ Hooks.once("init", () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
Hooks.once("ready", () => {
|
Hooks.once("ready", () => {
|
||||||
|
performMigrations()
|
||||||
Hooks.callAll("dragRuler.ready", SpeedProvider)
|
Hooks.callAll("dragRuler.ready", SpeedProvider)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,6 +4,13 @@ import {SpeedProvider} from "./speed_provider.js"
|
|||||||
export const settingsKey = "drag-ruler";
|
export const settingsKey = "drag-ruler";
|
||||||
|
|
||||||
export function registerSettings() {
|
export function registerSettings() {
|
||||||
|
game.settings.register(settingsKey, "dataVersion", {
|
||||||
|
scope: "world",
|
||||||
|
config: false,
|
||||||
|
type: String,
|
||||||
|
default: "fresh install"
|
||||||
|
})
|
||||||
|
|
||||||
game.settings.register(settingsKey, "swapSpacebarRightClick", {
|
game.settings.register(settingsKey, "swapSpacebarRightClick", {
|
||||||
name: "drag-ruler.settings.swapSpacebarRightClick.name",
|
name: "drag-ruler.settings.swapSpacebarRightClick.name",
|
||||||
hint: "drag-ruler.settings.swapSpacebarRightClick.hint",
|
hint: "drag-ruler.settings.swapSpacebarRightClick.hint",
|
||||||
|
|||||||
Reference in New Issue
Block a user