Collections and definition of IDs from Minecraft.
In Minecraft, many resources can be referenced by an (optional) namespace and a
path, such as blocks and items (e.g. minecraft:stone/stone). This library
provides an ID class, which represents one of these references.
Additionally, it exposes three collections for IDs:
IDMap<T> is a simple mapping from ID to T;IDSet is a Set of IDs;ResolvedIDMap<T, R> is a mapping from ID to T, but with support for
lazy, cached 'resolving' from that value of T to an R. For example, this
could be used to resolve a tag such as #minecraft:skeletons into its
actual values, even if it contains references to other tags.N.B. In most cases it is likely to be more useful to perform this resolving
stage when the T values are first submitted, for cases such as error
reporting. However, ResolvedIDMap may still be useful in these cases as it
tracks dependents, so if an item is later modified only its dependents need to
be re-resolved. ResolvedIDMap::resolveDeps should be called.
This package is part of the
mcfunction-langserver project. It
is published automatically - see
the publishing strategy.
import { ID } from "minecraft-id";
import * as assert from "assert";
const myID = new ID("stone");
assert.strictEqual(`This is ${myID}`, "This is minecraft:stone");
assert.strictEqual(`This is ${myID}`, "This is minecraft:stone");
Generated using TypeDoc