Skip to content

Latest commit

 

History

History
685 lines (400 loc) · 12 KB

api.md

File metadata and controls

685 lines (400 loc) · 12 KB

API

Import the module:

const minecraftData = require('minecraft-data')

const mcData = minecraftData('1.19')

or using es6 import syntax:

import minecraftData from 'minecraft-data'

const mcData = minecraftData('1.19')

All examples reference minecraftData as the module, and mcData as the version data.

Blocks

mcData.blocks

Blocks indexed by id

Example:

console.log(mcData.blocks[1]) // Object containing information for "Stone"

mcData.blocksByName

Blocks indexed by name

Example:

console.log(mcData.blocksByName['stone']) // Object containing information for "Stone"

mcData.blocksArray

Array of blocks

mcData.blocksByStateId

Blocks indexed by state id

Example:

console.log(mcData.blocksByStateId[100]) // Object containing information for "Lava" (as Lava has a state range from 91 to 106)

mcData.blockMappings

Contains a list of block mappings between pc/bedrock edition for the current Minecraft version

mcData.blockStates

Bedrock edition only

Array of block states

Example:

console.log(mcData.blockStates[50]) // Object containing block state information for "Warped Door"

mcData.blockCollisionShapes

Block collision shapes. Contains blocks, with each block (indexed by name) containing an array of collision shape ids. Also contains shapes, providing all collision shapes information (indexed by id).

Example:

console.log(mcData.blockCollisionShapes.blocks['oak_stairs']) // Array of collision shape ids for "Oak Stairs"
// Returns: [ 42, 32, 43, 33, 37, 27, 38, 28 ]

console.log(mcData.blockCollisionShapes.shapes[42]) // Collision information for collision shape id 42
// Returns: [ [ 0, 0, 0, 1, 0.5, 1 ], [ 0.5, 0.5, 0.5, 1, 1, 1 ] ]

Items

mcData.items

Items indexed by id

Example:

console.log(mcData.items[772]) // Object containing information for "Wheat"

mcData.itemsByName

Items indexed by name

Example:

console.log(mcData.itemsByName['wheat']) // Object containing information for "Wheat"

mcData.itemsArray

Array of items

Foods

mcData.foods

Foods indexed by id

Example:

console.log(mcData.foods[1003]) // Object containing information for "Pumpkin Pie"

mcData.foodsByName

Foods indexed by name

Example:

console.log(mcData.foodsByName['pumpkin_pie']) // Object containing information for "Pumpkin Pie"

mcData.foodsArray

Array of foods

Biomes

mcData.biomes

Biomes indexed by id

Example:

console.log(mcData.biomes[20]) // Object containing information for "Windswept Gravelly Hills"

mcData.biomesByName

Biomes indexed by name

Example:

console.log(mcData.biomesByName['windswept_gravelly_hills']) // Object containing information for "Windswept Gravelly Hills"

mcData.biomesArray

Array of biomes

Sounds

mcData.sounds

Sounds indexed by id

mcData.soundsByName

Sounds indexed by name

mcData.soundsArray

Array of sounds

Recipes

mcData.recipes

Recipes indexed by the resulting item id

Example:

console.log(mcData.recipes[31]) // Recipe information for crafting "Dripstone Block"

// Returns:
// {
//   inShape: [ [ 1100, 1100 ], [ 1100, 1100 ] ],
//   result: { count: 1, id: 13 }
// }

// Note: 1100 is the block ID of "Pointed Dripstone"

Instruments

mcData.instruments

Instruments indexed by id

Example:

console.log(mcData.instruments[5])
// Returns: { id: 5, name: 'flute' }

mcData.instrumentsArray

Array of instruments

Materials

mcData.materials

Material types indexed by name

Example:

console.log(mcData.materials['mineable/axe'])
// Returns: { '702': 2, '707': 4, '712': 12, '717': 6, '722': 8, '727': 9 }

Entities

mcData.mobs

Mobs (passive, neutral, and hostile) indexed by id

Example:

console.log(mcData.mobs[30]) // Object containing information for "Ghast"

mcData.objects

Objects (non-mob entities such as vehicles and projectiles) indexed by id

Example:

const mcData = MinecraftData('1.8.9')

console.log(mcData.objects[10]) // Object containing information for "Minecart"

mcData.entities

Entities indexed by id

Example:

console.log(mcData.entities[25]) // Object containing information for "Evoker"

mcData.entitiesByName

Entities indexed by name

Example:

console.log(mcData.entitiesByName['evoker']) // Object containing information for "Evoker"

mcData.entitiesArray

Array of entities

Enchantments

mcData.enchantments

Enchantments indexed by id

Example:

console.log(mcData.enchantments[37]) // Object containing information for "Mending"

mcData.enchantmentsByName

Enchantments indexed by name

Example:

console.log(mcData.enchantmentsByName['mending']) // Object containing information for "Mending"

mcData.enchantmentsArray

Array of enchantments

mcData.defaultSkin

Bedrock edition only

Skin geometry and texture data for default player skin

Protocol

mcData.protocol

The Minecraft protocol

mcData.protocolComments

The Minecraft protocol comments

mcData.protocolYaml

Bedrock edition only

The url to the files of the protocol yaml

Windows (GUIs)

mcData.windows

Windows indexed by id

Example:

console.log(mcData.windows['minecraft:villager']) // Object containing window information for the villager GUI

mcData.windowsByName

Windows indexed by name

Example:

console.log(mcData.windowsByName['NPC Trade']) // Object containing window information for the villager GUI

mcData.windowsArray

Array of windows

Version

For version comparison, the other version must be of the same type, and the prefix is always implied

mcData.version.version

The version number

Example:

console.log(mcData.version.version) // 759

mcData.version.minecraftVersion

The full Minecraft version

Example:

console.log(mcData.version.minecraftVersion) // 1.19

mcData.version.type

The version type, either pc or bedrock

Example:

console.log(mcData.version.type) // pc

mcData.version.majorVersion

The major Minecraft version

Example:

const mcData = MinecraftData('1.16.5')

console.log(mcData.version.majorVersion) // 1.16

mcData.version.dataVersion

The "data version" for this Minecraft version, used for example when writing chunks to disk

Example:

console.log(mcData.version.dataVersion) // 3105

mcData.version.<, mcData.isOlderThan()

Returns true if the current version is less than than the other version's dataVersion, or else false

mcData.version.<=

Same as above but also checks for an equivalent dataVersion

mcData.version.==

Returns true if the current version is equal to the other version's dataVersion, or else false

mcData.version.>

Returns true if the current version is greater than the other version's dataVersion, or else false

mcData.version.>=, mcData.isNewerOrEqualTo()

Same as above but also checks for an equivalent dataVersion

Example Usage:

const mcData = MinecraftData('1.16.4')
console.log(mcData.version['>=']('1.17')) // Returns false, as 1.16.4 is older than 1.17

const mcData = MinecraftData('bedrock_1.17.0')
console.log(mcData.version['>']('1.16.220')) // Returns true, as 1.17.0 is newer than 1.16.220

Effects

mcData.effects

Effects indexed by id

Example:

console.log(mcData.effects[5]) // Object containing information for "Strength"

mcData.effectsByName

Effects indexed by name

Example:

console.log(mcData.effectsByName['strength']) // Object containing information for "Strength"

mcData.effectsArray

Array of effects

Attributes

mcData.attributes

Attributes indexed by resource name

Example:

console.log(mcData.attributes['minecraft:generic.movement_speed']) // Object containing information for "minecraft:generic.movement_speed"

mcData.attributesByName

Attributes indexed by name

Example:

console.log(mcData.attributesByName['movementSpeed']) // Object containing information for "minecraft:generic.movement_speed"

mcData.attributesArray

Array of attributes

Particles

mcData.particles

Particles indexed by id

Example:

console.log(mcData.particles[12]) // Object containing information for "dripping_water"

mcData.particlesByName

Particles indexed by name

Example:

console.log(mcData.particlesByName['dripping_water']) // Object containing information for "dripping_water"

mcData.particlesArray

Array of particles

Commands

mcData.commands

Commands and parsers

Example:

const mcData = MinecraftData('1.13')

console.log(mcData.commands)
// Returns:
// {
//   root: {
//     type: 'root',
//     name: 'root',
//     executable: false,
//     redirects: [],
//     children: [ ... ]
//   },
//   parsers: [ ... ]
// }

Loot

mcData.entityLoot

Entity loot indexed by entity name

Example:

console.log(mcData.entityLoot['zombie']) // Object containing loot information for "Zombie"

mcData.entityLootArray

Array of entity loot

mcData.blockLoot

Block loot indexed by block name

Example:

console.log(mcData.blockLoot['diamond_ore']) // Object containing loot information for "Diamond Ore"

mcData.blockLootArray

Array of block loot

Map icons

mcData.mapIcons

Map icons indexed by id

Example:

console.log(mcData.mapIcons[20]) // Object containing map icon information for "banner_purple"

mcData.mapIconsByName

Map icons indexed by name

Example:

console.log(mcData.mapIconsByName['banner_purple']) // Object containing map icon information for "banner_purple"

mcData.mapIconsArray

Array of map icons

mcData.type

The type of the current version, either pc or bedrock

minecraftData.language

Object containing en_US language conversions

Example:

console.log(mcData.language['argument.player.unknown'])
// Returns: 'That player does not exist'

minecraftData.loginPacket

Login packet example

mcData.supportFeature()

This can be used to check if a specific feature is available in the current Minecraft version. This is usually only used for handling version-specific functionality.

Example:

const mcData = minecraftData('1.18.2')

console.log(mcData.supportFeature('blockStateId')) // Returns: true

Tints

mcData.tints

Tints indexed by the tint type (grass, foliage, water, redstone, constant)

Protocol versions

These are common data and directly available in the minecraftData object. No need to specify a version before accessing them.

minecraftData.versions

Array of all Minecraft versions (separated into pc (java) and bedrock)

minecraftData.versionsByMinecraftVersion

All versions indexed by Minecraft version (separated into pc (java) and bedrock)

minecraftData.preNettyVersionsByProtocolVersion

Pre-netty Minecraft versions indexed by protocol version (separated into pc (java) and bedrock)

minecraftData.postNettyVersionsByProtocolVersion

Post netty minecraft versions indexed by protocol version (separated into pc (java) and bedrock)

minecraftData.supportedVersions

Array of supported versions (separated into pc (java) and bedrock)

minecraftData.legacy.pc.blocks

Mapping from 1.12 block:metadata to 1.13 block names

Example:

console.log(mcData.legacy.pc.blocks['171:15']) // Returns: 'minecraft:black_carpet'

minecraftData.legacy.bedrock.blocks

Mapping from 1.2 block:metadata to 1.18.10 block names

Example:

console.log(mcData.legacy.bedrock.blocks['242:0']) // Returns: 'minecraft:camera'

Schemas

These are common data and directly available in the minecraftData object. No need to specify a version before accessing them.

Available schemas:

biomes, blocks, blockLoot, effects, entities, entityLoot, instruments, items, materials, particles, protocol, protocolVersions, recipes, version, windows