prismarine-chunk
Version:
A class to hold chunk data for prismarine
53 lines (50 loc) • 1.83 kB
JavaScript
const chunkImplementations = {
pc: {
1.8: require('./pc/1.8/chunk'),
1.9: require('./pc/1.9/chunk'),
'1.10': require('./pc/1.9/chunk'),
1.11: require('./pc/1.9/chunk'),
1.12: require('./pc/1.9/chunk'),
1.13: require('./pc/1.13/chunk'),
1.14: require('./pc/1.14/chunk'),
1.15: require('./pc/1.15/chunk'),
1.16: require('./pc/1.16/chunk'),
1.17: require('./pc/1.17/chunk'),
1.18: require('./pc/1.18/chunk'),
1.19: require('./pc/1.18/chunk'),
'1.20': require('./pc/1.18/chunk'),
1.21: require('./pc/1.18/chunk')
},
bedrock: {
0.14: require('./bedrock/0.14/chunk'),
'1.0': require('./bedrock/1.0/chunk'),
1.3: require('./bedrock/1.3/chunk'),
1.16: require('./bedrock/1.3/chunk'),
1.17: require('./bedrock/1.3/chunk'),
1.18: require('./bedrock/1.18/chunk'),
1.19: require('./bedrock/1.18/chunk'),
'1.20': require('./bedrock/1.18/chunk'),
1.21: require('./bedrock/1.18/chunk')
}
}
module.exports = loader
// Caching
const blobCache = require('./bedrock/common/BlobCache')
module.exports.BlobEntry = blobCache.BlobEntry
module.exports.BlobType = blobCache.BlobType
function loader (registryOrVersion) {
const registry = typeof registryOrVersion === 'string' ? require('prismarine-registry')(registryOrVersion) : registryOrVersion
const version = registry.version
if (!version) throw new Error('Specified version does not exist')
try {
return chunkImplementations[version.type][version.majorVersion](registry)
} catch (e) {
if (e instanceof TypeError) {
console.error(e)
throw new Error(`[Prismarine-chunk] No chunk implementation for ${version?.type} ${version?.majorVersion} found`)
} else {
console.log(`Error while loading ${version.type} - ${version.majorVersion}`)
throw e
}
}
}