diff --git a/src/backends/base.js b/src/backends/base.js index dab9c3d181a453a3d2aa78b4b1f101161b3e5918..78d36bca4e27cf920ac760d63a1f0ffd60f2718b 100644 --- a/src/backends/base.js +++ b/src/backends/base.js @@ -23,6 +23,33 @@ class BaseBackend { constructor(userId) { this.userId = userId; } + + setMapData(mapData) { + this.game.loadMap(mapData); + } + + setMapDataFromUrl(url) { + if (url.substr(0, 6) === 'mxc://') { + url = this.resolveMxcUrl(url); + } + + fetch(url) + .then((response) => response.json()) + .then(this.setMapData); + } + + getMap(mapName) { + if (mapName.indexOf('://') > -1) { + this.setMapDataFromUrl(mapName); + } else { + const state = this.getState(EventTypes.map, mapName); + if (state.url !== undefined) { + this.setMapDataFromUrl(state.url); + } else { + this.setMapData(state); + } + } + } } export default BaseBackend;