prismarine-realms
Version:
Library to manage and interact with Minecraft Realms for Java/Bedrock edition
40 lines (31 loc) • 1.13 kB
JavaScript
const Rest = require('./rest')
const Realm = require('./structures/Realm')
const Backup = require('./structures/Backup')
class RealmAPI {
constructor (authflow, platform, options = {}) {
this.rest = new Rest(authflow, platform, options)
this.platform = platform
}
static from (authflow, platform, options) {
return new {
java: require('./java/api'),
bedrock: require('./bedrock/api')
}[platform](authflow, platform, options)
}
async getRealm (realmId) {
const data = await this.rest.get(`/worlds/${realmId}`)
return new Realm(this, data)
}
async getRealms () {
const data = await this.rest.get('/worlds')
return data.servers.map(realm => new Realm(this, realm))
}
async getRealmBackups (realmId, slotId) {
const data = await this.rest.get(`/worlds/${realmId}/backups`)
return data.backups.map(e => new Backup(this, { realmId, slotId }, e))
}
async restoreRealmFromBackup (realmId, backupId) {
return await this.rest.put(`/worlds/${realmId}/backups?backupId=${encodeURIComponent(backupId)}&clientSupportsRetries`)
}
}
module.exports = RealmAPI