├── .gitignore
├── index.js
├── entity
├── villager_careers
│ ├── none.json
│ ├── 2.json
│ ├── 5.json
│ ├── 1.json
│ ├── 4.json
│ ├── 3.json
│ └── 0.json
├── group
│ ├── breedable.json
│ ├── fireball.json
│ ├── throwable.json
│ └── mob.json
├── chest_minecart.json
├── spawner_minecart.json
├── horse.json
├── parrot.json
├── bat.json
├── pig.json
├── tropical_fish.json
├── fish.json
├── tnt.json
├── snowman.json
├── spectral_arrow.json
├── wither.json
├── fireball.json
├── ghast.json
├── villager_golem.json
├── ocelot.json
├── spell_illager.json
├── tnt_minecart.json
├── vindication_illager.json
├── sheep.json
├── slime.json
├── wolf.json
├── rabbit.json
├── boat.json
├── zombie_pigman.json
├── skeleton_horse.json
├── endermite.json
├── potion.json
├── chest_horse.json
├── hopper_minecart.json
├── xp_orb.json
├── furnace_minecart.json
├── illager_beast.json
├── fireworks_rocket.json
├── phantom.json
├── llama_spit.json
├── pufferfish_mob.json
├── creeper.json
├── commandblock_minecart.json
├── minecart.json
├── vex.json
├── evocation_fangs.json
├── enderman.json
├── zombie_villager.json
├── ender_crystal.json
├── shulker.json
├── trident.json
├── item_frame.json
├── turtle.json
├── panda.json
├── arrow.json
├── llama.json
├── item.json
├── falling_block.json
├── ender_dragon.json
├── painting.json
├── area_effect_cloud.json
├── shulker_bullet.json
├── armor_stand.json
└── villager.json
├── .travis.yml
├── .buildignore
├── block
├── mob_spawner.json
├── enchanting_table.json
├── group
│ ├── command_block.json
│ └── shulker_box.json
├── jukebox.json
├── chest.json
├── comparator.json
├── hopper.json
├── sign.json
├── brewing_stand.json
├── beacon.json
├── furnace.json
├── end_gateway.json
├── player_head.json
├── command_block.json
├── banner.json
└── structure_block.json
├── item
├── potion_base.json
├── group
│ ├── potion.json
│ ├── block_item.json
│ ├── breakable.json
│ └── generic.json
├── firework_star.json
├── writable_book.json
├── block_item.json
├── spawn_item.json
├── breakable.json
├── crossbow.json
├── firework_rocket.json
├── written_book.json
├── player_head.json
└── map.json
├── .prettierignore
├── ref
├── nameable.json
├── inventory_item.json
├── lockable.json
├── tameable.json
├── zombie.json
├── item.json
├── item_ntt.json
├── throwable.json
├── inventory_holder.json
├── fireball_base.json
├── block_entity.json
├── breedable.json
├── potion_effect.json
├── horse.json
├── projectile.json
├── firework_explosion.json
├── spawner.json
├── entity.json
├── item_tag.json
└── mob.json
├── root.json
├── .vscode
├── settings.json
└── tasks.json
├── CONTRIBUTING.md
├── README.md
├── package.json
├── roots
├── items.json
├── blocks.json
└── entities.json
├── LICENSE
├── index.d.ts
├── misc_group
├── effect_id.json
└── enchant.json
├── implementation.md
└── docs
└── schema.json
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | module.exports.nbtDocs = require("./output.json");
2 |
--------------------------------------------------------------------------------
/entity/villager_careers/none.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "int"
3 | }
4 |
--------------------------------------------------------------------------------
/entity/group/breedable.json:
--------------------------------------------------------------------------------
1 | ["minecraft:cow", "minecraft:mooshroom", "minecraft:polar_bear"]
2 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | node_js:
3 | - "10"
4 |
5 | script:
6 | - npm run lint
7 | - npm test
8 |
--------------------------------------------------------------------------------
/.buildignore:
--------------------------------------------------------------------------------
1 | *
2 | !block/**/*
3 | !entity/**/*
4 | !item/**/*
5 | !misc_group/**/*
6 | !ref/**/*
7 | !roots/**/*
8 | !root.json
9 |
--------------------------------------------------------------------------------
/block/mob_spawner.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/block_entity.json", "../ref/spawner.json"]
4 | }
5 |
--------------------------------------------------------------------------------
/entity/chest_minecart.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["./minecart.json", "../ref/inventory_holder.json"]
4 | }
5 |
--------------------------------------------------------------------------------
/entity/spawner_minecart.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/spawner.json", "../ref/minecart.json"]
4 | }
5 |
--------------------------------------------------------------------------------
/item/potion_base.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/item_tag.json", "../ref/potion_effect.json"]
4 | }
5 |
--------------------------------------------------------------------------------
/block/enchanting_table.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/block_entity.json", "../ref/nameable.json"]
4 | }
5 |
--------------------------------------------------------------------------------
/entity/group/fireball.json:
--------------------------------------------------------------------------------
1 | [
2 | "minecraft:dragon_fireball",
3 | "minecraft:small_fireball",
4 | "minecraft:wither_skull"
5 | ]
6 |
--------------------------------------------------------------------------------
/entity/group/throwable.json:
--------------------------------------------------------------------------------
1 | [
2 | "minecraft:egg",
3 | "minecraft:ender_pearl",
4 | "minecraft:snowball",
5 | "minecraft:xp_bottle"
6 | ]
7 |
--------------------------------------------------------------------------------
/block/group/command_block.json:
--------------------------------------------------------------------------------
1 | [
2 | "minecraft:command_block",
3 | "minecraft:chain_command_block",
4 | "minecraft:repeating_command_block"
5 | ]
6 |
--------------------------------------------------------------------------------
/item/group/potion.json:
--------------------------------------------------------------------------------
1 | [
2 | "minecraft:potion",
3 | "minecraft:splash_potion",
4 | "minecraft:lingering_potion",
5 | "minecraft:tipped_arrow"
6 | ]
7 |
--------------------------------------------------------------------------------
/entity/villager_careers/2.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "int",
3 | "suggestions": [
4 | {
5 | "value": "1",
6 | "description": "Cleric"
7 | }
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/entity/villager_careers/5.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "int",
3 | "suggestions": [
4 | {
5 | "value": "1",
6 | "description": "Nitwit"
7 | }
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | *
2 |
3 | !**/*.json
4 | !**/*.js
5 | !**/*.ts
6 | !*/
7 |
8 | /.vscode/settings.json
9 | output.json
10 | package.json
11 | package-lock.json
12 |
--------------------------------------------------------------------------------
/block/jukebox.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/block_entity.json"],
4 | "children": {
5 | "RecordItem": {
6 | "ref": "../ref/item.json"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/ref/nameable.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "children": {
4 | "CustomName": {
5 | "type": "string",
6 | "description": "A JSON text component custom name"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/block/chest.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": [
4 | "../ref/block_entity.json",
5 | "../ref/inventory_holder.json",
6 | "../ref/nameable.json",
7 | "../ref/lockable.json"
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/entity/horse.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/horse.json"],
4 | "children": {
5 | "Variant": {
6 | "type": "int",
7 | "description": "Type of horse"
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/entity/parrot.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/tameable.json"],
4 | "children": {
5 | "Variant": {
6 | "type": "int",
7 | "description": "Type of parot"
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/entity/bat.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/mob.json"],
4 | "children": {
5 | "BatFlags": {
6 | "type": "byte",
7 | "description": "Is the bat upside-down"
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/entity/pig.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/mob.json"],
4 | "children": {
5 | "Saddle": {
6 | "type": "byte",
7 | "description": "If the pig has a saddle"
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/entity/tropical_fish.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["./fish.json"],
4 | "children": {
5 | "Variant": {
6 | "type": "int",
7 | "description": "Design of the fish"
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/entity/fish.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/mob.json"],
4 | "children": {
5 | "FromBucket": {
6 | "type": "byte",
7 | "description": "If the fish is from a bucket"
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/entity/tnt.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/entity.json"],
4 | "children": {
5 | "Fuse": {
6 | "type": "short",
7 | "description": "How long until the tnt blows up"
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/ref/inventory_item.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["./item.json"],
4 | "children": {
5 | "Slot": {
6 | "type": "byte",
7 | "description": "The inventory slot this item is in"
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/ref/lockable.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "children": {
4 | "Lock": {
5 | "type": "string",
6 | "description": "The name of the item a player has to be holding to open this container"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/entity/snowman.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/mob.json"],
4 | "children": {
5 | "Pumpkin": {
6 | "type": "byte",
7 | "description": "If the snow golem has the pumpkin"
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/entity/spectral_arrow.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["./arrow.json"],
4 | "children": {
5 | "Duration": {
6 | "type": "int",
7 | "description": "How long the glowing should last"
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/entity/wither.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/mob.json"],
4 | "children": {
5 | "Invul": {
6 | "type": "byte",
7 | "description": "How many ticks of invulnerability left"
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/entity/fireball.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/fireball_base.json"],
4 | "children": {
5 | "ExplosionPower": {
6 | "type": "int",
7 | "description": "Power of the explosion"
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/entity/ghast.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/mob.json"],
4 | "children": {
5 | "ExplosionPower": {
6 | "type": "int",
7 | "description": "Explosion power of created fireballs"
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/entity/villager_careers/1.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "int",
3 | "suggestions": [
4 | {
5 | "value": "1",
6 | "description": "Librarian"
7 | },
8 | {
9 | "value": "2",
10 | "description": "Cartographer"
11 | }
12 | ]
13 | }
14 |
--------------------------------------------------------------------------------
/entity/villager_careers/4.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "int",
3 | "suggestions": [
4 | {
5 | "value": "1",
6 | "description": "Butcher"
7 | },
8 | {
9 | "value": "2",
10 | "description": "Leatherworker"
11 | }
12 | ]
13 | }
14 |
--------------------------------------------------------------------------------
/entity/villager_golem.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/mob.json"],
4 | "children": {
5 | "PlayerCreated": {
6 | "type": "byte",
7 | "description": "If a player created the golem"
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/entity/ocelot.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/breedable.json", "../ref/tameable.json"],
4 | "children": {
5 | "CatType": {
6 | "type": "int",
7 | "description": "Type of cat once tamed"
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/entity/spell_illager.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/mob.json"],
4 | "children": {
5 | "SpellTicks": {
6 | "type": "int",
7 | "description": "How long until the illager casts a spell"
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/entity/tnt_minecart.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/minecart.json"],
4 | "children": {
5 | "TNTFuse": {
6 | "type": "int",
7 | "description": "How long until the tnt minecart blows up"
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/entity/vindication_illager.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/mob.json"],
4 | "children": {
5 | "Johnny": {
6 | "type": "byte",
7 | "description": "Should the vindicator attack all mobs"
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/root.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "root",
3 | "children": {
4 | "entity": {
5 | "ref": "./roots/entities.json"
6 | },
7 | "block": {
8 | "ref": "./roots/blocks.json"
9 | },
10 | "item": {
11 | "ref": "./roots/items.json"
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/block/comparator.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/block_entity.json"],
4 | "children": {
5 | "OutputSignal": {
6 | "type": "int",
7 | "description": "The redstone output strength given off by this comparator"
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/item/firework_star.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/item_tag.json"],
4 | "children": {
5 | "Explosion": {
6 | "description": "Explosion to add to the firework rocket on creation",
7 | "ref": "../ref/firework_explosion"
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/ref/tameable.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["./mob.json"],
4 | "children": {
5 | "OwnerUUID": {
6 | "type": "string",
7 | "description": "UUID of the owner"
8 | },
9 | "Sitting": {
10 | "type": "byte",
11 | "description": "If the mob is sitting"
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/entity/villager_careers/3.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "int",
3 | "suggestions": [
4 | {
5 | "value": "1",
6 | "description": "Armorer"
7 | },
8 | {
9 | "value": "2",
10 | "description": "Weapon Smith"
11 | },
12 | {
13 | "value": "3",
14 | "description": "Tool Smith"
15 | }
16 | ]
17 | }
18 |
--------------------------------------------------------------------------------
/entity/sheep.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/breedable.json"],
4 | "children": {
5 | "Sheared": {
6 | "type": "byte",
7 | "description": "If the sheep is sheared"
8 | },
9 | "Color": {
10 | "description": "Color of the sheep",
11 | "type": "byte"
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/entity/slime.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/mob.json"],
4 | "children": {
5 | "Size": {
6 | "type": "int",
7 | "description": "Size of slime"
8 | },
9 | "wasOnGround": {
10 | "type": "byte",
11 | "description": "If the slime is touching the ground"
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/item/writable_book.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/item_tag.json"],
4 | "children": {
5 | "pages": {
6 | "description": "A list of pages",
7 | "type": "list",
8 | "item": {
9 | "description": "The text on a page",
10 | "type": "string"
11 | }
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/ref/zombie.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["./mob.json"],
4 | "children": {
5 | "IsBaby": {
6 | "type": "byte",
7 | "description": "If the zombie is a baby zombie"
8 | },
9 | "CanBreakDoors": {
10 | "type": "byte",
11 | "description": "If the zombie can break doors"
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "json.schemas": [
3 | {
4 | "fileMatch": [
5 | "/block/*.json",
6 | "/entity/*.json",
7 | "/item/*.json",
8 | "/ref/*.json",
9 | "/roots/*.json",
10 | "/misc_group/*.json"
11 | ],
12 | "url": "/docs/schema.json"
13 | }
14 | ],
15 | "files.insertFinalNewline": true
16 | }
17 |
--------------------------------------------------------------------------------
/block/hopper.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": [
4 | "../ref/block_entity.json",
5 | "../ref/inventory_holder.json",
6 | "../block/chest.json"
7 | ],
8 | "children": {
9 | "TransferCooldown": {
10 | "type": "int",
11 | "description": "Number of ticks before the next item is transfered"
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/entity/wolf.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/breedable.json", "../ref/tameable.json"],
4 | "children": {
5 | "Angry": {
6 | "type": "byte",
7 | "description": "If the wolf is angry"
8 | },
9 | "CollarColor": {
10 | "type": "byte",
11 | "description": "Collar color for dogs"
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/entity/rabbit.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/breedable.json"],
4 | "children": {
5 | "RabbitType": {
6 | "description": "Type of the rabbit",
7 | "type": "int"
8 | },
9 | "MoreCarrotTicks": {
10 | "description": "Ticks unntil the rabbit eats more carrots",
11 | "type": "int"
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/entity/boat.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/entity.json"],
4 | "children": {
5 | "Type": {
6 | "type": "string",
7 | "description": "Type of the boat",
8 | "suggestions": [
9 | "oak",
10 | "spruce",
11 | "birch",
12 | "jungle",
13 | "acacia",
14 | "dark_oak"
15 | ]
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/entity/zombie_pigman.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/zombie.json"],
4 | "children": {
5 | "Anger": {
6 | "type": "short",
7 | "description": "How many ticks until it isn't angry"
8 | },
9 | "HurtBy": {
10 | "type": "string",
11 | "description": "The UUID of the last player who attacked it"
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/entity/skeleton_horse.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/horse.json"],
4 | "children": {
5 | "SkeletonTrap": {
6 | "type": "byte",
7 | "description": "Should the skeleton horse be a trap"
8 | },
9 | "SkeletonTrapTime": {
10 | "type": "int",
11 | "description": "How many ticks the trap horse has existed"
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/entity/villager_careers/0.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "int",
3 | "suggestions": [
4 | {
5 | "value": "1",
6 | "description": "Farmer"
7 | },
8 | {
9 | "value": "2",
10 | "description": "Fisherman"
11 | },
12 | {
13 | "value": "3",
14 | "description": "Shepherd"
15 | },
16 | {
17 | "value": "4",
18 | "description": "Fletcher"
19 | }
20 | ]
21 | }
22 |
--------------------------------------------------------------------------------
/entity/endermite.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/mob.json"],
4 | "children": {
5 | "Lifetime": {
6 | "type": "int",
7 | "description": "How many ticks the endermite has existed"
8 | },
9 | "PlayerSpawned": {
10 | "type": "byte",
11 | "description": "If the endermite was spawned by a player (not through an enderpearl)"
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/entity/group/mob.json:
--------------------------------------------------------------------------------
1 | [
2 | "minecraft:blaze",
3 | "minecraft:cave_spider",
4 | "minecraft:elder_guardian",
5 | "minecraft:guardian",
6 | "minecraft:giant",
7 | "minecraft:silverfish",
8 | "minecraft:skeleton",
9 | "minecraft:spider",
10 | "minecraft:squid",
11 | "minecraft:stray",
12 | "minecraft:witch",
13 | "minecraft:wither_skeleton",
14 | "minecraft:dolphin"
15 | ]
16 |
--------------------------------------------------------------------------------
/entity/potion.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/throwable.json"],
4 | "children": {
5 | "Potion": {
6 | "description": "The potion this thrown potion represents",
7 | "type": "compound",
8 | "child_ref": ["../ref/item_ntt.json"],
9 | "children": {
10 | "tag": {
11 | "ref": "../item/potion_base.json"
12 | }
13 | }
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/entity/chest_horse.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/horse.json"],
4 | "children": {
5 | "ChestedHorse": {
6 | "type": "byte",
7 | "description": "If the horse has a chest"
8 | },
9 | "Items": {
10 | "type": "list",
11 | "item": {
12 | "ref": "./inventory_item.json"
13 | },
14 | "description": "Items in the horse chest"
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/ref/item.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["./item_ntt.json"],
4 | "children": {
5 | "tag": {
6 | "description": "The NBT of the item",
7 | "function": {
8 | "id": "insertStringNBT",
9 | "params": {
10 | "ref": "../roots/items.json#%s",
11 | "default": "../roots/items.json#none",
12 | "tag_path": "./id"
13 | }
14 | }
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/entity/hopper_minecart.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["./minecart.json", "../ref/inventory_holder.json"],
4 | "children": {
5 | "TransferCooldown": {
6 | "type": "int",
7 | "description": "How many ticks until the next item gets transfered"
8 | },
9 | "Enabled": {
10 | "type": "byte",
11 | "description": "Is the hopper minecart enabled"
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/ref/item_ntt.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "children": {
4 | "Count": {
5 | "type": "byte",
6 | "description": "How many items does this item stack have"
7 | },
8 | "id": {
9 | "type": "string",
10 | "description": "ID of the item",
11 | "suggestions": [
12 | {
13 | "function": {
14 | "id": "itemList"
15 | }
16 | }
17 | ]
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/item/block_item.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/item_tag.json"],
4 | "children": {
5 | "BlockEntityTag": {
6 | "description": "NBT data when placed",
7 | "function": {
8 | "id": "insertStringNBT",
9 | "params": {
10 | "ref": "../roots/blocks.json#%s",
11 | "default": "../roots/blocks.json#none",
12 | "tag_path": "./id"
13 | }
14 | }
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/item/spawn_item.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/item_tag.json"],
4 | "children": {
5 | "EntityTag": {
6 | "description": "The NBT of the spawned entity",
7 | "function": {
8 | "id": "insertStringNBT",
9 | "params": {
10 | "ref": "../roots/entities.json#%s",
11 | "default": "../roots/entities.json#none",
12 | "tag_path": "./id"
13 | }
14 | }
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/entity/xp_orb.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/entity.json"],
4 | "children": {
5 | "Age": {
6 | "type": "short",
7 | "description": "How long the XP orb has existed"
8 | },
9 | "Health": {
10 | "type": "byte",
11 | "description": "How much health the orb has"
12 | },
13 | "Value": {
14 | "type": "short",
15 | "description": "How much experience the orb gives"
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ref/throwable.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["./projectile.json"],
4 | "children": {
5 | "owner": {
6 | "description": "UUID of the thrower",
7 | "type": "compound",
8 | "children": {
9 | "M": {
10 | "type": "long",
11 | "description": "UUIDMost of the thrower"
12 | },
13 | "L": {
14 | "type": "long",
15 | "description": "UUIDLeast of the thrower"
16 | }
17 | }
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/item/breakable.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/item_tag.json"],
4 | "children": {
5 | "Damage": {
6 | "type": "short",
7 | "description": "How much damage this item has had"
8 | },
9 | "Unbreakable": {
10 | "type": "byte",
11 | "description": "Should this item not break"
12 | },
13 | "RepairCost": {
14 | "type": "int",
15 | "description": "How much experience it costs to repair"
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/entity/furnace_minecart.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["./minecart.json"],
4 | "children": {
5 | "PushX": {
6 | "type": "double",
7 | "description": "How much this should push on the X axis"
8 | },
9 | "PushZ": {
10 | "type": "double",
11 | "description": "How much this should push on the Y axis"
12 | },
13 | "Fuel": {
14 | "type": "short",
15 | "description": "How much this should push on the Z axis"
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/entity/illager_beast.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/mob.json"],
4 | "children": {
5 | "AttackTick": {
6 | "type": "int",
7 | "description": "How many ticks until the beast can attack"
8 | },
9 | "StunTick": {
10 | "type": "int",
11 | "description": "How many ticks the beast is stunned for"
12 | },
13 | "RoarTick": {
14 | "type": "int",
15 | "description": "How many ticks until the beast roars"
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ref/inventory_holder.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "children": {
4 | "Items": {
5 | "type": "list",
6 | "item": {
7 | "ref": "./inventory_item.json"
8 | },
9 | "description": "Items in this container"
10 | },
11 | "LootTable": {
12 | "type": "string",
13 | "description": "Loot table that generates the contents"
14 | },
15 | "LootTableSeed": {
16 | "type": "long",
17 | "description": "Seed for random numbers in the loot table"
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/entity/fireworks_rocket.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/entity.json"],
4 | "children": {
5 | "Life": {
6 | "type": "int",
7 | "description": "How long this rocket has been flying"
8 | },
9 | "LifeTime": {
10 | "type": "int",
11 | "description": "How many ticks until the rocket explodes"
12 | },
13 | "FireworksItem": {
14 | "ref": "../item/firework_rocket.json",
15 | "description": "The rocket item to use for explosions"
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/entity/phantom.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/mob.json"],
4 | "children": {
5 | "Size": {
6 | "type": "int",
7 | "description": "Size of the phantom"
8 | },
9 | "AX": {
10 | "type": "int",
11 | "description": "X coord to circle around"
12 | },
13 | "AY": {
14 | "type": "int",
15 | "description": "Y coord to circle around"
16 | },
17 | "AZ": {
18 | "type": "int",
19 | "description": "Z coord to circle around"
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/item/crossbow.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/item_tag.json", "./breakable.json"],
4 | "children": {
5 | "ChargedProjectiles": {
6 | "type": "list",
7 | "item": {
8 | "ref": "../ref/item.json",
9 | "description": "An item that has been charged"
10 | },
11 | "description": "A list of items that have been charged"
12 | },
13 | "Charged": {
14 | "type": "byte",
15 | "description": "If the crossbow is ready to be fired"
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/entity/llama_spit.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/entity.json"],
4 | "children": {
5 | "Owner": {
6 | "description": "UUID of the entity that made this llama spit",
7 | "type": "compound",
8 | "children": {
9 | "OwnerUUIDMost": {
10 | "type": "long",
11 | "description": "UUIDMost of the owner"
12 | },
13 | "OwnerUUIDLeast": {
14 | "type": "long",
15 | "description": "UUIDLeast of the owner"
16 | }
17 | }
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/entity/pufferfish_mob.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/mob.json"],
4 | "children": {
5 | "PuffState": {
6 | "type": "int",
7 | "description": "How puffed the fish is",
8 | "suggestions": [
9 | {
10 | "value": "0",
11 | "description": "Not puffed"
12 | },
13 | {
14 | "value": "1",
15 | "description": "Medium puffed"
16 | },
17 | {
18 | "value": "2",
19 | "description": "Fully puffed"
20 | }
21 | ]
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/.vscode/tasks.json:
--------------------------------------------------------------------------------
1 | {
2 | // See https://go.microsoft.com/fwlink/?LinkId=733558
3 | // for the documentation about the tasks.json format
4 | "version": "2.0.0",
5 | "tasks": [
6 | {
7 | "type": "npm",
8 | "script": "lint:write",
9 | "problemMatcher": []
10 | },
11 | {
12 | "type": "npm",
13 | "script": "build",
14 | "group": {
15 | "kind": "build",
16 | "isDefault": true
17 | }
18 | },
19 | {
20 | "type": "npm",
21 | "script": "test",
22 | "problemMatcher": []
23 | }
24 | ]
25 | }
26 |
--------------------------------------------------------------------------------
/item/firework_rocket.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/item_tag.json"],
4 | "children": {
5 | "Fireworks": {
6 | "type": "compound",
7 | "children": {
8 | "Flight": {
9 | "description": "Flight duration",
10 | "type": "byte"
11 | },
12 | "Explosions": {
13 | "description": "List of various explosions this firework will cause",
14 | "type": "list",
15 | "item": {
16 | "ref": "../ref/firework_explosion.json"
17 | }
18 | }
19 | }
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/block/sign.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/block_entity.json"],
4 | "children": {
5 | "Text1": {
6 | "type": "string",
7 | "description": "Text component of the text on line 1"
8 | },
9 | "Text2": {
10 | "type": "string",
11 | "description": "Text component of the text on line 2"
12 | },
13 | "Text3": {
14 | "type": "string",
15 | "description": "Text component of the text on line 3"
16 | },
17 | "Text4": {
18 | "type": "string",
19 | "description": "Text component of the text on line 4"
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/entity/creeper.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/mob.json"],
4 | "children": {
5 | "powered": {
6 | "type": "byte",
7 | "description": "If the creeper is a charged creeper"
8 | },
9 | "ExplosionRadius": {
10 | "type": "byte",
11 | "description": "Radius of the resulting explosion"
12 | },
13 | "Fuse": {
14 | "type": "short",
15 | "description": "How long until the creeper blows up"
16 | },
17 | "ignited": {
18 | "type": "byte",
19 | "description": "If the creeper was ignited with flint and steel"
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/ref/fireball_base.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/entity.json"],
4 | "children": {
5 | "direction": {
6 | "type": "list",
7 | "item": {
8 | "type": "double"
9 | },
10 | "description": "Direction and magnitude of motion. Does not slow down"
11 | },
12 | "life": {
13 | "type": "int",
14 | "description": "How long has this been alive"
15 | },
16 | "power": {
17 | "type": "list",
18 | "item": {
19 | "type": "double"
20 | },
21 | "description": "Same as direction but without resistance"
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/entity/commandblock_minecart.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["./minecart.json"],
4 | "children": {
5 | "Command": {
6 | "type": "string",
7 | "description": "The command to run"
8 | },
9 | "SuccessCount": {
10 | "type": "int",
11 | "description": "The success count of the command run"
12 | },
13 | "LastOutput": {
14 | "type": "string",
15 | "description": "The description of the last output"
16 | },
17 | "TrackOutput": {
18 | "type": "byte",
19 | "description": "Should the command block should write to LastOutput"
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/block/brewing_stand.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": [
4 | "../ref/block_entity.json",
5 | "../ref/nameable.json",
6 | "../ref/lockable.json"
7 | ],
8 | "children": {
9 | "Items": {
10 | "type": "list",
11 | "item": {
12 | "ref": "../ref/inventory_item.json"
13 | },
14 | "description": "Items in the brewing stand"
15 | },
16 | "BrewTime": {
17 | "type": "int",
18 | "description": "The number of ticks left in brewing"
19 | },
20 | "Fuel": {
21 | "type": "byte",
22 | "description": "The amount of active fuel (Not in the slot)"
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/entity/minecart.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["./entity.json"],
4 | "children": {
5 | "DisplayState": {
6 | "type": "compound",
7 | "description": "Displayed block",
8 | "children": {
9 | "Tile": {
10 | "type": "string",
11 | "description": "Displayed block id"
12 | },
13 | "Properties": {
14 | "type": "compound",
15 | "description": "Key value pairs of block states and values"
16 | }
17 | }
18 | },
19 | "DisplayOffset": {
20 | "type": "int",
21 | "description": "How many pixels the display should be offset"
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/entity/vex.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/mob.json"],
4 | "children": {
5 | "BoundX": {
6 | "type": "int",
7 | "description": "The x coordinate of the point the vex stays around"
8 | },
9 | "BoundY": {
10 | "type": "int",
11 | "description": "The y coordinate of the point the vex stays around"
12 | },
13 | "BoundZ": {
14 | "type": "int",
15 | "description": "The z coordinate of the point the vex stays around"
16 | },
17 | "LifeTicks": {
18 | "type": "int",
19 | "description": "How many ticks the vex has been alive for"
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/entity/evocation_fangs.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/entity.json"],
4 | "children": {
5 | "Warmup": {
6 | "type": "int",
7 | "description": "How many ticks before the fangs apear"
8 | },
9 | "Owner": {
10 | "type": "compound",
11 | "description": "UUID of the entity that summoned the fangs",
12 | "children": {
13 | "OwnerUUIDLeast": {
14 | "type": "long",
15 | "description": "UUIDLeast of the owner"
16 | },
17 | "OwnerUUIDMost": {
18 | "type": "long",
19 | "description": "UUIDMost of the owner"
20 | }
21 | }
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/ref/block_entity.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "children": {
4 | "id": {
5 | "type": "string",
6 | "description": "The id of this block entity",
7 | "suggestions": [
8 | {
9 | "function": {
10 | "id": "blockList"
11 | }
12 | }
13 | ]
14 | },
15 | "x": {
16 | "type": "int",
17 | "description": "The x coordiate of this block entity"
18 | },
19 | "y": {
20 | "type": "int",
21 | "description": "The y coordiate of this block entity"
22 | },
23 | "z": {
24 | "type": "int",
25 | "description": "The z coordiate of this block entity"
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/entity/enderman.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/mob.json"],
4 | "children": {
5 | "carriedBlockState": {
6 | "type": "compound",
7 | "description": "The carried block",
8 | "children": {
9 | "Name": {
10 | "type": "string",
11 | "description": "ID of carried block",
12 | "suggestions": [
13 | {
14 | "function": {
15 | "id": "entityList"
16 | }
17 | }
18 | ]
19 | },
20 | "Properties": {
21 | "type": "compound",
22 | "description": "Name value pairs of block states and values"
23 | }
24 | }
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/block/beacon.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/block_entity.json", "../ref/lockable.json"],
4 | "children": {
5 | "Levels": {
6 | "type": "int",
7 | "description": "The number of pyramid steps this beacon is on",
8 | "suggestions": ["0", "1", "2", "3", "4"]
9 | },
10 | "Primary": {
11 | "type": "int",
12 | "suggestions": [
13 | {
14 | "values": "../misc_group/effect_id.json"
15 | }
16 | ]
17 | },
18 | "Secondary": {
19 | "type": "int",
20 | "suggestions": [
21 | {
22 | "values": "../misc_group/effect_id.json"
23 | }
24 | ]
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/block/group/shulker_box.json:
--------------------------------------------------------------------------------
1 | [
2 | "minecraft:shulker_box",
3 | "minecraft:white_shulker_box",
4 | "minecraft:orange_shulker_box",
5 | "minecraft:magenta_shulker_box",
6 | "minecraft:light_blue_shulker_box",
7 | "minecraft:yellow_shulker_box",
8 | "minecraft:lime_shulker_box",
9 | "minecraft:pink_shulker_box",
10 | "minecraft:gray_shulker_box",
11 | "minecraft:light_gray_shulker_box",
12 | "minecraft:cyan_shulker_box",
13 | "minecraft:purple_shulker_box",
14 | "minecraft:blue_shulker_box",
15 | "minecraft:brown_shulker_box",
16 | "minecraft:green_shulker_box",
17 | "minecraft:red_shulker_box",
18 | "minecraft:black_shulker_box"
19 | ]
20 |
--------------------------------------------------------------------------------
/entity/zombie_villager.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/zombie.json"],
4 | "children": {
5 | "Profession": {
6 | "type": "int",
7 | "description": "Profession of the zombie villager"
8 | },
9 | "ConversionTime": {
10 | "type": "int",
11 | "description": "Number of ticks until turned into villager. -1 when not being converted"
12 | },
13 | "ConversionPlayerLeast": {
14 | "type": "long",
15 | "description": "UUIDLeast of player converting the zombie villager"
16 | },
17 | "ConversionPlayerMost": {
18 | "type": "long",
19 | "description": "UUIDMost of player converting the zombie villager"
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/ref/breedable.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["./mob.json"],
4 | "children": {
5 | "InLove": {
6 | "type": "int",
7 | "description": "If the animal has just been fed"
8 | },
9 | "Age": {
10 | "type": "int",
11 | "description": "The age of the animal"
12 | },
13 | "ForcedAge": {
14 | "type": "int",
15 | "description": "The age of the animal. Will not increment"
16 | },
17 | "LoveCauseLeast": {
18 | "type": "long",
19 | "description": "The UUIDLeast of the player you fed the animal"
20 | },
21 | "LoveCauseMost": {
22 | "type": "long",
23 | "description": "The UUIDMost of the player you fed the animal"
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/entity/ender_crystal.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/entity.json"],
4 | "children": {
5 | "ShowBottom": {
6 | "type": "byte",
7 | "description": "Should the bottom of the ender crystal show"
8 | },
9 | "BeamTarget": {
10 | "description": "Where the beam should point to",
11 | "type": "compound",
12 | "children": {
13 | "X": {
14 | "type": "int",
15 | "description": "X coordinate of the beam target"
16 | },
17 | "Y": {
18 | "type": "int",
19 | "description": "X coordinate of the beam target"
20 | },
21 | "Z": {
22 | "type": "int",
23 | "description": "X coordinate of the beam target"
24 | }
25 | }
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/entity/shulker.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/mob.json"],
4 | "children": {
5 | "Peek": {
6 | "type": "byte",
7 | "description": "Height of the top shell"
8 | },
9 | "AttachFace": {
10 | "type": "byte",
11 | "description": "The face of the block the shulker is attacked to"
12 | },
13 | "Color": {
14 | "type": "byte",
15 | "description": "Color of the shulker"
16 | },
17 | "APX": {
18 | "type": "int",
19 | "description": "Approximate x coordinate"
20 | },
21 | "APY": {
22 | "type": "int",
23 | "description": "Approximate y coordinate"
24 | },
25 | "APZ": {
26 | "type": "int",
27 | "description": "Approximate z coordinate"
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/block/furnace.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": [
4 | "../ref/block_entity.json",
5 | "../ref/nameable.json",
6 | "../ref/lockable.json"
7 | ],
8 | "children": {
9 | "BurnTime": {
10 | "type": "short",
11 | "description": "Number of ticks until fuel runs out"
12 | },
13 | "CookTime": {
14 | "type": "short",
15 | "description": "Number of ticks the current item has been smelting"
16 | },
17 | "CookTimeTotal": {
18 | "type": "short",
19 | "description": "How long (in ticks) the item takes to smelt"
20 | },
21 | "Items": {
22 | "type": "list",
23 | "item": {
24 | "ref": "../ref/inventory_item.json"
25 | },
26 | "description": "Items in the furnace"
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/ref/potion_effect.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "children": {
4 | "ID": {
5 | "type": "byte",
6 | "description": "The ID of the effect",
7 | "suggestions": [
8 | {
9 | "values": "../misc_group/effect_id.json"
10 | }
11 | ]
12 | },
13 | "Amplifier": {
14 | "type": "byte",
15 | "description": "The amplifier of the effect"
16 | },
17 | "Duration": {
18 | "type": "int",
19 | "description": "How many ticks the effect will last"
20 | },
21 | "Ambient": {
22 | "type": "byte",
23 | "description": "If the effect particles shouyld be more translucent"
24 | },
25 | "ShowParticles": {
26 | "type": "byte",
27 | "description": "Should the particles be displayed"
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Issues
2 | Issues should have the following format
3 |
4 | For a missing tag(s)
5 |
6 | ```
7 | TAG
8 | Entity | Block | Item
9 | *ID*
10 |
11 | -An NBT tag-
12 | *Name of tag*
13 | *Type of tag*
14 | *Description / What the tag does*
15 |
16 | -more tags with the same format-
17 | ```
18 |
19 | For a missing ID (block, entity, or item)
20 |
21 | ```
22 | ID
23 | Entity | Block | Item
24 | *ID*
25 |
26 | -An NBT tag-
27 | *Name of tag*
28 | *Type of tag*
29 | *Description / What the tag does*
30 |
31 | -more tags with the same format-
32 | ```
33 |
34 | (Include all tags for the ID)
35 |
36 | ##### Note
37 | Please only have one ID per issue
38 |
39 | Don't include any tags for ID's I already have (like entities, mobs, etc)
40 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # **DEPRECATION NOTICE**
2 |
3 | This library will never be touched again, please use [mc-nbtdoc](https://github.com/Yurihaia/mc-nbtdoc)
4 |
5 | # NBT Docs
6 |
7 | This repo is basically JSON Schema but for NBT. the format is as following
8 |
9 | Node:
10 |
11 | ```
12 | type: STRING. An NBT tag type or `root`.
13 | ref: STRING. A URI to another file. in the form of *file path*#*node path in file*. The `#` and anything after is optional
14 | child_ref: LIST. A List of refrences to add to the child if `type` is "compound"
15 | *: STRING. A URI like *ref*
16 | children: OBJECT. The sub nodes in `type` is "compound"
17 | **a node**: OBJECT. A child node. See *Node*
18 | item: OBJECT. The object type if `type` is "list". See *Node*
19 | ```
20 |
--------------------------------------------------------------------------------
/entity/trident.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/projectile.json"],
4 | "children": {
5 | "pickup": {
6 | "type": "byte",
7 | "description": "Can the arrow be picked up"
8 | },
9 | "life": {
10 | "type": "short",
11 | "description": "How many ticks the trident has exsisted"
12 | },
13 | "damage": {
14 | "type": "double",
15 | "description": "How much damage the trident does"
16 | },
17 | "inGround": {
18 | "type": "byte",
19 | "description": "If the trident is in a block"
20 | },
21 | "crit": {
22 | "type": "byte",
23 | "description": "Should the trident do critical damage"
24 | },
25 | "Trident": {
26 | "type": "compound",
27 | "child_ref": ["../roots/items.json#minecraft:trident"]
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/ref/horse.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["./breedable.json"],
4 | "children": {
5 | "Bred": {
6 | "type": "byte",
7 | "description": "Was this bred by a player"
8 | },
9 | "EatingHaystack": {
10 | "type": "byte",
11 | "description": "Is it eating a haystack"
12 | },
13 | "Tame": {
14 | "type": "byte",
15 | "description": "Has a player tamed it"
16 | },
17 | "Temper": {
18 | "type": "int",
19 | "description": "How hard it is to tame. Higher values are easier"
20 | },
21 | "OwnerUUID": {
22 | "type": "string",
23 | "description": "UUID of the owner"
24 | },
25 | "ArmorItem": {
26 | "ref": "./inventory_item.json",
27 | "description": "Horse armor item"
28 | },
29 | "SaddleItem": {
30 | "ref": "./inventory_item.json",
31 | "description": "Saddle item"
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/entity/item_frame.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/entity.json"],
4 | "children": {
5 | "TileX": {
6 | "type": "int",
7 | "description": "X value of the block the frame is on"
8 | },
9 | "TileY": {
10 | "type": "int",
11 | "description": "Y value of the block the frame is on"
12 | },
13 | "TileZ": {
14 | "type": "int",
15 | "description": "Z value of the block the frame is on"
16 | },
17 | "Facing": {
18 | "type": "byte",
19 | "description": "The facing direction of the item frame"
20 | },
21 | "Item": {
22 | "ref": "../ref/inventory_item.json",
23 | "description": "The item in the item frame"
24 | },
25 | "ItemDropChance": {
26 | "type": "float",
27 | "description": "Chance for item to drop"
28 | },
29 | "ItemRotation": {
30 | "type": "byte",
31 | "description": "Rotation of item"
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/ref/projectile.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["./entity.json"],
4 | "children": {
5 | "xTile": {
6 | "type": "int",
7 | "description": "The x positions of the tile the projectile is in"
8 | },
9 | "yTile": {
10 | "type": "int",
11 | "description": "The y positions of the tile the projectile is in"
12 | },
13 | "zTile": {
14 | "type": "int",
15 | "description": "The z positions of the tile the projectile is in"
16 | },
17 | "inBlockState": {
18 | "description": "The block that the projectile is in",
19 | "type": "compound",
20 | "children": {
21 | "Name": {
22 | "type": "string",
23 | "description": "ID of the block"
24 | },
25 | "Properties": {
26 | "type": "compound",
27 | "description": "Block state name value pairs"
28 | }
29 | }
30 | },
31 | "shake": {
32 | "type": "byte"
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/block/end_gateway.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/block_entity.json"],
4 | "children": {
5 | "Age": {
6 | "type": "long",
7 | "description": "The age in ticks of this gateway. If below 200, will display purple beam"
8 | },
9 | "ExactTeleport": {
10 | "type": "byte",
11 | "description": "Should an entity teleport to the exact location of the exit portal"
12 | },
13 | "ExitPortal": {
14 | "type": "compound",
15 | "children": {
16 | "X": {
17 | "type": "int",
18 | "description": "The x coordinate of the exit"
19 | },
20 | "Y": {
21 | "type": "int",
22 | "description": "The y coordinate of the exit"
23 | },
24 | "Z": {
25 | "type": "int",
26 | "description": "The z coordinate of the exit"
27 | }
28 | },
29 | "description": "Coordinates of where the gateway should teleport entities to"
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/entity/turtle.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/breedable.json"],
4 | "children": {
5 | "HomePosX": {
6 | "type": "int",
7 | "description": "The x coord where the turtle was born"
8 | },
9 | "HomePosY": {
10 | "type": "int",
11 | "description": "The y coord where the turtle was born"
12 | },
13 | "HomePosZ": {
14 | "type": "int",
15 | "description": "The z coord where the turtle was born"
16 | },
17 | "TravelPosX": {
18 | "type": "int",
19 | "description": "The x coord where the turtle is going to"
20 | },
21 | "TravelPosY": {
22 | "type": "int",
23 | "description": "The y coord where the turtle is going to"
24 | },
25 | "TravelPosZ": {
26 | "type": "int",
27 | "description": "The z coord where the turtle is going to"
28 | },
29 | "HasEgg": {
30 | "type": "byte",
31 | "description": "Does the turtle have layed eggs"
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "main": "./index.js",
3 | "description": "NBT paths",
4 | "name": "mc-nbt-paths",
5 | "version": "1.13.0-pre8",
6 | "author": "Yurihaia",
7 | "contributors": [
8 | "Yurihaia",
9 | "Levertion",
10 | "Bassab03"
11 | ],
12 | "license": "Unlicense",
13 | "repository": {
14 | "type": "git",
15 | "url": "https://github.com/Yurihaia/mc-nbt-paths"
16 | },
17 | "scripts": {
18 | "test": "ajv -s docs/schema.json -d \"block/**/*.json\" -d \"entity/**/*.json\" -d \"item/**/*.json\" -d \"ref/**/*.json\" -d \"roots/**/*.json\"",
19 | "lint": "prettier --list-different **/*",
20 | "lint:write": "prettier --write **/*",
21 | "build": "node build.js"
22 | },
23 | "devDependencies": {
24 | "ajv-cli": "^3.0.0",
25 | "ignore-walk": "^3.0.1",
26 | "prettier": "^1.14.3"
27 | },
28 | "prettier": {
29 | "tabWidth": 4,
30 | "useTabs": true
31 | },
32 | "files": [
33 | "output.json",
34 | "index.js",
35 | "index.d.ts"
36 | ]
37 | }
38 |
--------------------------------------------------------------------------------
/item/written_book.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/item_tag.json", "./writable_book.json"],
4 | "children": {
5 | "author": {
6 | "type": "string",
7 | "description": "The displayed author of the book"
8 | },
9 | "title": {
10 | "type": "string",
11 | "description": "The displayed title of the book"
12 | },
13 | "generation": {
14 | "type": "int",
15 | "description": "The copy-generation of the book",
16 | "suggestions": [
17 | {
18 | "value": "0",
19 | "description": "original"
20 | },
21 | {
22 | "value": "1",
23 | "description": "copy of original"
24 | },
25 | {
26 | "value": "2",
27 | "description": "copy of copy"
28 | },
29 | {
30 | "value": "3",
31 | "description": "tattered"
32 | }
33 | ]
34 | },
35 | "resolved": {
36 | "type": "byte",
37 | "description": "If the book has been opened and the json selectors have been solidified"
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/ref/firework_explosion.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "children": {
4 | "Flicker": {
5 | "type": "byte",
6 | "description": "Should the explosion flicker"
7 | },
8 | "Trail": {
9 | "type": "byte",
10 | "description": "Should the explosion leave a trail"
11 | },
12 | "Type": {
13 | "type": "byte",
14 | "description": "Type of pattern",
15 | "suggestions": [
16 | {
17 | "value": "0",
18 | "description": "Small ball"
19 | },
20 | {
21 | "value": "1",
22 | "description": "Large ball"
23 | },
24 | {
25 | "value": "2",
26 | "description": "Star"
27 | },
28 | {
29 | "value": "3",
30 | "description": "Creeper"
31 | },
32 | {
33 | "value": "4",
34 | "description": "Burst"
35 | }
36 | ]
37 | },
38 | "Colors": {
39 | "type": "int_array",
40 | "description": "Array of colors the explosion shows."
41 | },
42 | "FadeColors": {
43 | "type": "int_array",
44 | "description": "Array of colors the explosion shows when fading."
45 | }
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/entity/panda.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/breedable.json"],
4 | "children": {
5 | "MainGene": {
6 | "ref": "#Gene",
7 | "description": "The displayed gene.\nIf this gene is recessive '(r)' and 'HiddenGene' is not the same, the panda will display the 'normal' gene"
8 | },
9 | "HiddenGene": {
10 | "ref": "#Gene",
11 | "description": "The hidden gene"
12 | }
13 | },
14 | "references": {
15 | "Gene": {
16 | "type": "string",
17 | "suggestions": [
18 | {
19 | "description": "(d)",
20 | "value": "normal"
21 | },
22 | {
23 | "description": "(d)",
24 | "value": "lazy"
25 | },
26 | {
27 | "description": "(d)",
28 | "value": "worried"
29 | },
30 | {
31 | "description": "(d)",
32 | "value": "playful"
33 | },
34 | {
35 | "description": "(r)",
36 | "value": "brown"
37 | },
38 | {
39 | "description": "(r)",
40 | "value": "weak"
41 | },
42 | {
43 | "description": "(d)",
44 | "value": "aggressive"
45 | }
46 | ]
47 | }
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/entity/arrow.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/projectile.json"],
4 | "children": {
5 | "pickup": {
6 | "type": "byte",
7 | "description": "Can the arrow be picked up"
8 | },
9 | "player": {
10 | "type": "byte",
11 | "description": "If a player shot the arrow"
12 | },
13 | "life": {
14 | "type": "short",
15 | "description": "How many ticks the arrow has exsisted without moving"
16 | },
17 | "damage": {
18 | "type": "double",
19 | "description": "How much damage the arrow does"
20 | },
21 | "inGround": {
22 | "type": "byte",
23 | "description": "If the arrow is in a block"
24 | },
25 | "crit": {
26 | "type": "byte",
27 | "description": "Should the arrow do critical damage"
28 | },
29 | "Potion": {
30 | "type": "string",
31 | "description": "Name of the potion effect on the arrow"
32 | },
33 | "CustomPotionEffects": {
34 | "type": "list",
35 | "item": {
36 | "ref": "../ref/potion_effect.json"
37 | },
38 | "description": "List of potion effects to give to the entity who got hit"
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/block/player_head.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/block_entity.json"],
4 | "children": {
5 | "Owner": {
6 | "description": "The skin displayed by this head",
7 | "type": "compound",
8 | "children": {
9 | "Id": {
10 | "type": "string",
11 | "description": "UUID of the owning player"
12 | },
13 | "Name": {
14 | "type": "string",
15 | "description": "Name of the owning player"
16 | },
17 | "Properties": {
18 | "type": "compound",
19 | "description": "Properties of the skull",
20 | "children": {
21 | "textures": {
22 | "description": "A list of textures",
23 | "type": "list",
24 | "item": {
25 | "type": "compound",
26 | "children": {
27 | "Value": {
28 | "type": "string",
29 | "description": "Base64 encoded JSON object of the texture"
30 | },
31 | "Signature": {
32 | "type": "string",
33 | "description": "The signiature of this skull"
34 | }
35 | }
36 | }
37 | }
38 | }
39 | }
40 | }
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/item/player_head.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["./block_item.json"],
4 | "children": {
5 | "SkullOwner": {
6 | "description": "The player whose head this is",
7 | "type": "compound",
8 | "children": {
9 | "Id": {
10 | "description": "UUID of the player",
11 | "type": "string"
12 | },
13 | "Name": {
14 | "description": "Name of the player",
15 | "type": "string"
16 | },
17 | "Properties": {
18 | "description": "Properties of the head",
19 | "type": "compound",
20 | "children": {
21 | "textures": {
22 | "description": "A list of textures",
23 | "type": "list",
24 | "item": {
25 | "description": "A texture",
26 | "type": "compound",
27 | "children": {
28 | "Signiature": {
29 | "description": "Signiature of the texture",
30 | "type": "string"
31 | },
32 | "Value": {
33 | "description": "Base64 encdoed JSON object",
34 | "type": "string"
35 | }
36 | }
37 | }
38 | }
39 | }
40 | }
41 | }
42 | }
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/roots/items.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "root",
3 | "children": {
4 | "none": {
5 | "ref": "../ref/item_tag.json"
6 | },
7 | "$../item/group/generic.json": {
8 | "ref": "../ref/item_tag.json"
9 | },
10 | "$../item/group/breakable.json": {
11 | "ref": "../item/breakable.json"
12 | },
13 | "$../item/group/block_item.json": {
14 | "ref": "../item/block_item.json"
15 | },
16 | "$../item/group/potion.json": {
17 | "ref": "../item/potion_base.json"
18 | },
19 | "minecraft:writable_book": {
20 | "ref": "../item/writable_book.json"
21 | },
22 | "minecraft:written_book": {
23 | "ref": "../item/written_book.json"
24 | },
25 | "minecraft:player_head": {
26 | "ref": "../item/player_head.json"
27 | },
28 | "minecraft:firework_rocket": {
29 | "ref": "../item/firework_rocket.json"
30 | },
31 | "minecraft:firework_star": {
32 | "ref": "../item/firework_star.json"
33 | },
34 | "minecraft:armor_stand": {
35 | "ref": "../item/spawn_item.json"
36 | },
37 | "minecraft:spawn_egg": {
38 | "ref": "../item/spawn_item.json"
39 | },
40 | "minecraft:map": {
41 | "ref": "../item/map.json"
42 | }
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/entity/llama.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["./breedable.json"],
4 | "children": {
5 | "Bred": {
6 | "type": "byte",
7 | "description": "If the llama was bred, not naturally spawned"
8 | },
9 | "EatingHaystack": {
10 | "type": "byte",
11 | "description": "If the llama is eating a haystack"
12 | },
13 | "Tame": {
14 | "type": "byte",
15 | "description": "If the llama is tamed"
16 | },
17 | "Temper": {
18 | "type": "int",
19 | "description": "How hard it is to tame. Lower values are harder"
20 | },
21 | "Variant": {
22 | "type": "int",
23 | "description": "Type of llama"
24 | },
25 | "Strength": {
26 | "type": "int",
27 | "description": "1/3 of the number of items a llama can carry."
28 | },
29 | "DecorItem": {
30 | "ref": "../ref/inventory_item.json",
31 | "description": "Item (usually carpet) on the llama"
32 | },
33 | "OwnerUUID": {
34 | "type": "string",
35 | "description": "Owner of the llama"
36 | },
37 | "Items": {
38 | "type": "list",
39 | "description": "Items carried by the llama",
40 | "item": {
41 | "ref": "./inventory_item.json"
42 | }
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/item/group/block_item.json:
--------------------------------------------------------------------------------
1 | [
2 | "minecraft:command_block",
3 | "minecraft:chain_command_block",
4 | "minecraft:repeating_command_block",
5 | "minecraft:chest",
6 | "minecraft:banner",
7 | "minecraft:beacon",
8 | "minecraft:brewing_stand",
9 | "minecraft:comparator",
10 | "minecraft:enchanting_table",
11 | "minecraft:furnace",
12 | "minecraft:hopper",
13 | "minecraft:jukebox",
14 | "minecraft:mob_spawner",
15 | "minecraft:player_head",
16 | "minecraft:structure_block",
17 | "minecraft:white_shulker_box",
18 | "minecraft:orange_shulker_box",
19 | "minecraft:magenta_shulker_box",
20 | "minecraft:light_blue_shulker_box",
21 | "minecraft:yellow_shulker_box",
22 | "minecraft:lime_shulker_box",
23 | "minecraft:pink_shulker_box",
24 | "minecraft:gray_shulker_box",
25 | "minecraft:light_gray_shulker_box",
26 | "minecraft:cyan_shulker_box",
27 | "minecraft:purple_shulker_box",
28 | "minecraft:blue_shulker_box",
29 | "minecraft:brown_shulker_box",
30 | "minecraft:green_shulker_box",
31 | "minecraft:red_shulker_box",
32 | "minecraft:black_shulker_box",
33 | "minecraft:oak_sign",
34 | "minecraft:spruce_sign",
35 | "minecraft:birch_sign",
36 | "minecraft:acacia_sign",
37 | "minecraft:jungle_sign",
38 | "minecraft:dark_oak_sign"
39 | ]
40 |
--------------------------------------------------------------------------------
/entity/item.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/entity.json"],
4 | "children": {
5 | "Age": {
6 | "type": "short",
7 | "description": "How long the item has been alive"
8 | },
9 | "Health": {
10 | "type": "short",
11 | "description": "Health of the item"
12 | },
13 | "PickupDelay": {
14 | "type": "short",
15 | "description": "How long before the item can be picked up"
16 | },
17 | "Owner": {
18 | "description": "UUID of the owner of the item",
19 | "type": "compound",
20 | "children": {
21 | "M": {
22 | "description": "UUIDMost of the owner",
23 | "type": "long"
24 | },
25 | "L": {
26 | "description": "UUIDLeast of the owner",
27 | "type": "long"
28 | }
29 | }
30 | },
31 | "Thrower": {
32 | "type": "compound",
33 | "description": "UUID of the thrower of the item",
34 | "children": {
35 | "M": {
36 | "description": "UUIDMost of the thrower",
37 | "type": "long"
38 | },
39 | "L": {
40 | "description": "UUIDLeast of the thrower",
41 | "type": "long"
42 | }
43 | }
44 | },
45 | "Item": {
46 | "ref": "../ref/item.json",
47 | "description": "The item that this item entity represents"
48 | }
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/block/command_block.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/block_entity.json", "../ref/nameable.json"],
4 | "children": {
5 | "auto": {
6 | "type": "byte",
7 | "description": "Whether the command block should be automatically powered"
8 | },
9 | "Command": {
10 | "type": "string",
11 | "description": "The command to run"
12 | },
13 | "conditionMet": {
14 | "type": "byte",
15 | "description": "If the command block executed last time it was powered (True if not conditional)"
16 | },
17 | "LastExecution": {
18 | "type": "long",
19 | "description": "Tick the chain command block last executed"
20 | },
21 | "LastOutput": {
22 | "type": "string",
23 | "description": "The description of the last output"
24 | },
25 | "powered": {
26 | "type": "byte",
27 | "description": "If the command block is powered by redstone"
28 | },
29 | "SuccessCount": {
30 | "type": "int",
31 | "description": "The success count of the command run"
32 | },
33 | "TrackOutput": {
34 | "type": "byte",
35 | "description": "Should the command block should write to LastOutput"
36 | },
37 | "UpdateLastExecution": {
38 | "type": "byte",
39 | "description": "Should the command block only execute once a tick"
40 | }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | This is free and unencumbered software released into the public domain.
2 |
3 | Anyone is free to copy, modify, publish, use, compile, sell, or
4 | distribute this software, either in source code form or as a compiled
5 | binary, for any purpose, commercial or non-commercial, and by any
6 | means.
7 |
8 | In jurisdictions that recognize copyright laws, the author or authors
9 | of this software dedicate any and all copyright interest in the
10 | software to the public domain. We make this dedication for the benefit
11 | of the public at large and to the detriment of our heirs and
12 | successors. We intend this dedication to be an overt act of
13 | relinquishment in perpetuity of all present and future rights to this
14 | software under copyright law.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22 | OTHER DEALINGS IN THE SOFTWARE.
23 |
24 | For more information, please refer to
25 |
--------------------------------------------------------------------------------
/entity/falling_block.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/entity.json"],
4 | "children": {
5 | "BlockState": {
6 | "description": "Block that the falling block represents",
7 | "type": "compound",
8 | "children": {
9 | "Name": {
10 | "type": "string",
11 | "description": "ID of the block",
12 | "suggestions": [
13 | {
14 | "values": "../misc_block/blocks.json"
15 | }
16 | ]
17 | },
18 | "Properties": {
19 | "type": "compound",
20 | "description": "Name value pairs of block states and values"
21 | }
22 | }
23 | },
24 | "Time": {
25 | "type": "int",
26 | "description": "Time until the block disapears. Disapears if it reaches 0 or 600",
27 | "suggestions": ["-2147483648"]
28 | },
29 | "DropItem": {
30 | "type": "byte",
31 | "description": "Should the block drop as an item if the block cannot be placed"
32 | },
33 | "HurtEntities": {
34 | "type": "byte",
35 | "description": "Should the block hurt entities"
36 | },
37 | "FallHurtMax": {
38 | "type": "int",
39 | "description": "Maximum amount of damage the block can do"
40 | },
41 | "FallHurtAmount": {
42 | "type": "float",
43 | "description": "How much damage the block should do initially"
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/entity/ender_dragon.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/mob.json"],
4 | "children": {
5 | "DragonPhase": {
6 | "type": "int",
7 | "description": "Phase the dragon is in",
8 | "suggestions": [
9 | {
10 | "value": "0",
11 | "description": "Dragon is circling aroung island"
12 | },
13 | {
14 | "value": "1",
15 | "description": "Preparing to shoot fireball"
16 | },
17 | {
18 | "value": "2",
19 | "description": "Flying to the portal"
20 | },
21 | {
22 | "value": "3",
23 | "description": "Landing on the portal"
24 | },
25 | {
26 | "value": "4",
27 | "description": "Taking off from the portal"
28 | },
29 | {
30 | "value": "5",
31 | "description": "Landed. Attacking player with dragon breath"
32 | },
33 | {
34 | "value": "6",
35 | "description": "Landed. Searching for player to attack"
36 | },
37 | {
38 | "value": "7",
39 | "description": "Landed. Roaring"
40 | },
41 | {
42 | "value": "8",
43 | "description": "Flying at player"
44 | },
45 | {
46 | "value": "9",
47 | "description": "Dying."
48 | },
49 | {
50 | "value": "10",
51 | "description": "Flapping wings and not moving"
52 | }
53 | ]
54 | }
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/ref/spawner.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "children": {
4 | "SpawnPotentials": {
5 | "description": "List of potential entities to spawn",
6 | "type": "list",
7 | "item": {
8 | "type": "compound",
9 | "children": {
10 | "Entity": {
11 | "function": {
12 | "id": "insertStringNBT",
13 | "params": {
14 | "ref": "../roots/entities.json#%s",
15 | "default": "../roots/entities.json#none",
16 | "tag_path": "./id"
17 | }
18 | }
19 | },
20 | "Weight": {
21 | "type": "int",
22 | "description": "Chance for the entity to be spawned"
23 | }
24 | }
25 | }
26 | },
27 | "SpawnCount": {
28 | "type": "short",
29 | "description": "How many entities to spawn"
30 | },
31 | "SpawnRange": {
32 | "type": "short",
33 | "description": "Radius to spawn mobs"
34 | },
35 | "Delay": {
36 | "type": "short",
37 | "description": "Delay between spawning mobs"
38 | },
39 | "MinSpawnDelay": {
40 | "type": "short",
41 | "description": "Minimum random delay"
42 | },
43 | "MaxSpawnDelay": {
44 | "type": "short",
45 | "description": "Maximum random delay"
46 | },
47 | "MaxNearbyEntities": {
48 | "type": "short",
49 | "description": "Maximum nearby entites"
50 | },
51 | "RequiredPlayerRange": {
52 | "type": "short",
53 | "description": "Range a player has to be in"
54 | }
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/entity/painting.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/entity.json"],
4 | "children": {
5 | "TileX": {
6 | "type": "int",
7 | "description": "X coordinate of the block the painting is on"
8 | },
9 | "TileY": {
10 | "type": "int",
11 | "description": "Y coordinate of the block the painting is on"
12 | },
13 | "TileZ": {
14 | "type": "int",
15 | "description": "Z coordinate of the block the painting is on"
16 | },
17 | "Facing": {
18 | "type": "byte",
19 | "description": "Direction the painting is facing"
20 | },
21 | "Motive": {
22 | "type": "string",
23 | "description": "Name of painting",
24 | "suggestions": [
25 | "minecraft:kebab",
26 | "minecraft:aztec",
27 | "minecraft:alban",
28 | "minecraft:aztec2",
29 | "minecraft:bomb",
30 | "minecraft:plant",
31 | "minecraft:wasteland",
32 | "minecraft:wanderer",
33 | "minecraft:graham",
34 | "minecraft:pool",
35 | "minecraft:courbet",
36 | "minecraft:sunset",
37 | "minecraft:sea",
38 | "minecraft:match",
39 | "minecraft:bust",
40 | "minecraft:stage",
41 | "minecraft:void",
42 | "minecraft:skull_and_roses",
43 | "minecraft:wither",
44 | "minecraft:fighters",
45 | "minecraft:skeleton",
46 | "minecraft:donkey_kong",
47 | "minecraft:pointer",
48 | "minecraft:pigscene",
49 | "minecraft:burning_skull"
50 | ]
51 | }
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/index.d.ts:
--------------------------------------------------------------------------------
1 | export const nbtDocs: { [key: string]: NBTNode | ValueList };
2 |
3 | export interface NBTFunction {
4 | id: string;
5 | params: any;
6 | }
7 |
8 | export interface NodeBase {
9 | readonly description?: string;
10 | readonly references?: { [key: string]: any };
11 | readonly suggestions?: Array<
12 | | string
13 | | { description?: string; value: string }
14 | | { function: NBTFunction }
15 | >;
16 | }
17 |
18 | export interface NoPropertyNode extends NodeBase {
19 | readonly type:
20 | | "no-nbt"
21 | | "byte"
22 | | "short"
23 | | "int"
24 | | "long"
25 | | "float"
26 | | "double"
27 | | "byte_array"
28 | | "string"
29 | | "int_array"
30 | | "long_array";
31 | }
32 |
33 | export interface RefNode extends NodeBase {
34 | readonly ref: string;
35 | }
36 |
37 | export interface FunctionNode extends NodeBase {
38 | readonly function: NBTFunction;
39 | }
40 |
41 | export interface ListNode extends NodeBase {
42 | readonly item: NBTNode;
43 | readonly type: "list";
44 | }
45 |
46 | export interface CompoundNode extends NodeBase {
47 | readonly child_ref?: string[];
48 | readonly children?: { [key: string]: NBTNode };
49 | readonly type: "compound";
50 | readonly additionalChildren?: boolean;
51 | }
52 |
53 | export interface RootNode extends NodeBase {
54 | readonly children: { [key: string]: NBTNode };
55 | readonly type: "root";
56 | }
57 |
58 | export type ValueList = Array;
59 |
60 | export type NBTNode =
61 | | NoPropertyNode
62 | | CompoundNode
63 | | RootNode
64 | | ListNode
65 | | RefNode
66 | | FunctionNode;
67 |
--------------------------------------------------------------------------------
/item/group/breakable.json:
--------------------------------------------------------------------------------
1 | [
2 | "minecraft:bow",
3 | "minecraft:wooden_sword",
4 | "minecraft:stone_sword",
5 | "minecraft:iron_sword",
6 | "minecraft:golden_sword",
7 | "minecraft:diamond_sword",
8 | "minecraft:wooden_pickaxe",
9 | "minecraft:stone_pickaxe",
10 | "minecraft:iron_pickaxe",
11 | "minecraft:golden_pickaxe",
12 | "minecraft:diamond_pickaxe",
13 | "minecraft:wooden_axe",
14 | "minecraft:stone_axe",
15 | "minecraft:iron_axe",
16 | "minecraft:golden_axe",
17 | "minecraft:diamond_axe",
18 | "minecraft:wooden_shovel",
19 | "minecraft:stone_shovel",
20 | "minecraft:iron_shovel",
21 | "minecraft:golden_shovel",
22 | "minecraft:diamond_shovel",
23 | "minecraft:wooden_hoe",
24 | "minecraft:stone_hoe",
25 | "minecraft:iron_hoe",
26 | "minecraft:golden_hoe",
27 | "minecraft:diamond_hoe",
28 | "minecraft:leather_helmet",
29 | "minecraft:chainmail_helmet",
30 | "minecraft:iron_helmet",
31 | "minecraft:golden_helmet",
32 | "minecraft:diamond_helmet",
33 | "minecraft:leather_chestplate",
34 | "minecraft:chainmail_chestplate",
35 | "minecraft:iron_chestplate",
36 | "minecraft:golden_chestplate",
37 | "minecraft:diamond_chestplate",
38 | "minecraft:leather_leggings",
39 | "minecraft:chainmail_leggings",
40 | "minecraft:iron_leggings",
41 | "minecraft:golden_leggings",
42 | "minecraft:diamond_leggings",
43 | "minecraft:leather_boots",
44 | "minecraft:chainmail_boots",
45 | "minecraft:iron_boots",
46 | "minecraft:golden_boots",
47 | "minecraft:diamond_boots",
48 | "minecraft:shears",
49 | "minecraft:flint_and_steel",
50 | "minecraft:fishing_rod",
51 | "minecraft:carrot_on_a_stick",
52 | "minecraft:trident"
53 | ]
54 |
--------------------------------------------------------------------------------
/entity/area_effect_cloud.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/entity.json"],
4 | "children": {
5 | "Age": {
6 | "type": "int",
7 | "description": "Number of ticks the area effect cloud has existed"
8 | },
9 | "Color": {
10 | "type": "int",
11 | "description": "Color of the particles"
12 | },
13 | "Duration": {
14 | "type": "int",
15 | "description": "Many ticks the area effect cloud should last",
16 | "suggestions": ["0", "2147483647"]
17 | },
18 | "ReapplicationDelay": {
19 | "type": "int",
20 | "description": "How many ticks until the effect get reapplied"
21 | },
22 | "WaitTime": {
23 | "type": "int",
24 | "description": "Time before the area effect cloud appears"
25 | },
26 | "OwnerUUIDLeast": {
27 | "type": "long",
28 | "description": "UUIDLeast of the player who threw the lingering potion"
29 | },
30 | "OwnerUUIDMost": {
31 | "type": "long",
32 | "description": "UUIDMost of the player who threw the lingering potion"
33 | },
34 | "DurationOnUse": {
35 | "type": "float",
36 | "description": "How much \"Duration\" increases when the effect gets applied"
37 | },
38 | "Radius": {
39 | "type": "float",
40 | "description": "Radius of the area effect cloud"
41 | },
42 | "RadiusOnUse": {
43 | "type": "float",
44 | "description": "How much the radius should decrease when the effect gets applied"
45 | },
46 | "Particle": {
47 | "type": "string",
48 | "description": "Particle id displayed"
49 | },
50 | "ParticleParam1": {
51 | "type": "int"
52 | },
53 | "ParticleParam2": {
54 | "type": "int"
55 | },
56 | "Effects": {
57 | "type": "list",
58 | "item": {
59 | "ref": "../ref/potion_effect.json"
60 | }
61 | }
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/entity/shulker_bullet.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/entity.json"],
4 | "children": {
5 | "Owner": {
6 | "description": "The entity that this bullet originated from",
7 | "type": "compound",
8 | "children": {
9 | "L": {
10 | "type": "long",
11 | "description": "UUIDLeast of the owner"
12 | },
13 | "M": {
14 | "type": "long",
15 | "description": "UUIDMost of the owner"
16 | },
17 | "X": {
18 | "type": "int",
19 | "description": "X position of the owner"
20 | },
21 | "Y": {
22 | "type": "int",
23 | "description": "Y position of the owner"
24 | },
25 | "Z": {
26 | "type": "int",
27 | "description": "Z position of the owner"
28 | }
29 | }
30 | },
31 | "Steps": {
32 | "type": "int",
33 | "description": "Number of blocks the bullet has traveled"
34 | },
35 | "Target": {
36 | "type": "compound",
37 | "description": "The target of the bullet",
38 | "children": {
39 | "L": {
40 | "type": "long",
41 | "description": "The UUIDLeast of the target"
42 | },
43 | "M": {
44 | "type": "long",
45 | "description": "The UUIDMost of the target"
46 | },
47 | "X": {
48 | "type": "int",
49 | "description": "X position of the target"
50 | },
51 | "Y": {
52 | "type": "int",
53 | "description": "Y position of the target"
54 | },
55 | "Z": {
56 | "type": "int",
57 | "description": "Z position of the target"
58 | }
59 | }
60 | },
61 | "TXD": {
62 | "type": "double",
63 | "description": "Offset on x axis"
64 | },
65 | "TYD": {
66 | "type": "double",
67 | "description": "Offset on y axis"
68 | },
69 | "TZD": {
70 | "type": "double",
71 | "description": "Offset on z axis"
72 | }
73 | }
74 | }
75 |
--------------------------------------------------------------------------------
/roots/blocks.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "root",
3 | "children": {
4 | "none": {
5 | "type": "no-nbt"
6 | },
7 | "$../block/group/shulker_box.json": {
8 | "ref": "../block/chest.json"
9 | },
10 | "$../block/group/command_block.json": {
11 | "ref": "../block/command_block.json"
12 | },
13 | "minecraft:banner": {
14 | "ref": "../block/banner.json"
15 | },
16 | "minecraft:beacon": {
17 | "ref": "../block/beacon.json"
18 | },
19 | "minecraft:bed": {
20 | "ref": "../ref/block_entity.json"
21 | },
22 | "minecraft:brewing_stand": {
23 | "ref": "../block/brewing_stand.json"
24 | },
25 | "minecraft:chest": {
26 | "ref": "../block/chest.json"
27 | },
28 | "minecraft:comparator": {
29 | "ref": "../block/comparator.json"
30 | },
31 | "minecraft:daylight_detector": {
32 | "ref": "../ref/block_entity.json"
33 | },
34 | "minecraft:dispenser": {
35 | "ref": "../block/chest.json"
36 | },
37 | "minecraft:dropper": {
38 | "ref": "../block/chest.json"
39 | },
40 | "minecraft:enchanting_table": {
41 | "ref": "../block/enchanting_table.json"
42 | },
43 | "minecraft:end_gateway": {
44 | "ref": "../block/end_gateway.json"
45 | },
46 | "minecraft:end_portal": {
47 | "ref": "../ref/block_entity.json"
48 | },
49 | "minecraft:ender_chest": {
50 | "ref": "../ref/block_entity.json"
51 | },
52 | "minecraft:furnace": {
53 | "ref": "../block/furnace.json"
54 | },
55 | "minecraft:hopper": {
56 | "ref": "../block/hopper.json"
57 | },
58 | "minecraft:jukebox": {
59 | "ref": "../block/jukebox.json"
60 | },
61 | "minecraft:mob_spawner": {
62 | "ref": "../block/mob_spawner.json"
63 | },
64 | "minecraft:player_head": {
65 | "ref": "../block/player_head.json"
66 | },
67 | "minecraft:sign": {
68 | "ref": "../block/sign.json"
69 | },
70 | "minecraft:structure_block": {
71 | "ref": "../block/structure_block.json"
72 | },
73 | "minecraft:trapped_chest": {
74 | "ref": "../block/chest.json"
75 | }
76 | }
77 | }
78 |
--------------------------------------------------------------------------------
/block/banner.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/block_entity.json", "../ref/nameable.json"],
4 | "children": {
5 | "Base": {
6 | "type": "int",
7 | "description": "The base color of the banner"
8 | },
9 | "Patterns": {
10 | "type": "compound",
11 | "children": {
12 | "Color": {
13 | "type": "int",
14 | "description": "The color of the pattern"
15 | },
16 | "Pattern": {
17 | "type": "string",
18 | "description": "The name of the pattern",
19 | "suggestions": [
20 | {
21 | "value": "bs",
22 | "description": "Bottom Stripe (Base)"
23 | },
24 | {
25 | "value": "bl",
26 | "description": "Bottom Left Corner (Base dexter canton)"
27 | },
28 | {
29 | "value": "gru",
30 | "description": "Gradient upside-down (Base gradient)"
31 | },
32 | {
33 | "value": "bts",
34 | "description": "Bottom Triangle Sawtooth (Base indented)"
35 | },
36 | {
37 | "value": "br",
38 | "description": "Bottom Right Corner (Base sinister canton)"
39 | },
40 | {
41 | "value": "drs",
42 | "description": "Down Right Stripe (Bend)"
43 | },
44 | {
45 | "value": "dls",
46 | "description": "Down Left Stripe (Bend sinister)"
47 | },
48 | {
49 | "value": "bo",
50 | "description": "Border (Bordure)"
51 | },
52 | {
53 | "value": "cbo",
54 | "description": "Curly Border (Bordure indented)"
55 | },
56 | {
57 | "value": "bt",
58 | "description": "Bottom Triangle (Chevron)"
59 | },
60 | {
61 | "value": "ts",
62 | "description": "Top Stripe (Chief)"
63 | },
64 | {
65 | "value": "tl",
66 | "description": "Top Left Corner (Chief dexter canton)"
67 | },
68 | {
69 | "value": "tts",
70 | "description": "Top Triangle Sawtooth (Chief indented)"
71 | }
72 | ]
73 | }
74 | }
75 | }
76 | }
77 | }
78 |
--------------------------------------------------------------------------------
/misc_group/effect_id.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "value": "1",
4 | "description": "Speed"
5 | },
6 | {
7 | "value": "2",
8 | "description": "Slowness"
9 | },
10 | {
11 | "value": "3",
12 | "description": "Haste"
13 | },
14 | {
15 | "value": "4",
16 | "description": "Mining Fatigue"
17 | },
18 | {
19 | "value": "5",
20 | "description": "Strength"
21 | },
22 | {
23 | "value": "6",
24 | "description": "Instant Health"
25 | },
26 | {
27 | "value": "7",
28 | "description": "Instand Damage"
29 | },
30 | {
31 | "value": "8",
32 | "description": "Jump Boost"
33 | },
34 | {
35 | "value": "9",
36 | "description": "Nausea"
37 | },
38 | {
39 | "value": "10",
40 | "description": "Regeneration"
41 | },
42 | {
43 | "value": "11",
44 | "description": "Resistance"
45 | },
46 | {
47 | "value": "12",
48 | "description": "Fire Resistance"
49 | },
50 | {
51 | "value": "13",
52 | "description": "Water Breathing"
53 | },
54 | {
55 | "value": "14",
56 | "description": "Invisibility"
57 | },
58 | {
59 | "value": "15",
60 | "description": "Blindness"
61 | },
62 | {
63 | "value": "16",
64 | "description": "Night Vision"
65 | },
66 | {
67 | "value": "17",
68 | "description": "Hunger"
69 | },
70 | {
71 | "value": "18",
72 | "description": "Weakness"
73 | },
74 | {
75 | "value": "19",
76 | "description": "Poison"
77 | },
78 | {
79 | "value": "20",
80 | "description": "Wither"
81 | },
82 | {
83 | "value": "21",
84 | "description": "Health Boost"
85 | },
86 | {
87 | "value": "22",
88 | "description": "Absorbtion"
89 | },
90 | {
91 | "value": "23",
92 | "description": "Saturation"
93 | },
94 | {
95 | "value": "24",
96 | "description": "Glowing"
97 | },
98 | {
99 | "value": "25",
100 | "description": "Levitation"
101 | },
102 | {
103 | "value": "26",
104 | "description": "Luck"
105 | },
106 | {
107 | "value": "27",
108 | "description": "Bad Luck"
109 | }
110 | ]
111 |
--------------------------------------------------------------------------------
/item/map.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/item_tag.json"],
4 | "children": {
5 | "map_scale_direction": {
6 | "type": "int"
7 | },
8 | "map_tracking_position": {
9 | "type": "byte"
10 | },
11 | "display": {
12 | "type": "compound",
13 | "children": {
14 | "MapColor": {
15 | "type": "int",
16 | "description": "Color of the map"
17 | }
18 | }
19 | },
20 | "Decorations": {
21 | "description": "List of map decorations",
22 | "type": "list",
23 | "item": {
24 | "type": "compound",
25 | "children": {
26 | "id": {
27 | "description": "Arbitrary name of decoration",
28 | "type": "string"
29 | },
30 | "type": {
31 | "type": "byte",
32 | "description": "Type of decoration",
33 | "suggestions": [
34 | {
35 | "value": "0",
36 | "description": "White arrow"
37 | },
38 | {
39 | "value": "1",
40 | "description": "Green arrow"
41 | },
42 | {
43 | "value": "2",
44 | "description": "Red arrow"
45 | },
46 | {
47 | "value": "3",
48 | "description": "Blue arrow"
49 | },
50 | {
51 | "value": "4",
52 | "description": "White X"
53 | },
54 | {
55 | "value": "5",
56 | "description": "Red triangle"
57 | },
58 | {
59 | "value": "6",
60 | "description": "Large white dot"
61 | },
62 | {
63 | "value": "7",
64 | "description": "Small white dot"
65 | },
66 | {
67 | "value": "8",
68 | "description": "Woodland Mansion"
69 | },
70 | {
71 | "value": "9",
72 | "description": "Ocean Monument"
73 | }
74 | ]
75 | },
76 | "x": {
77 | "description": "X position of decoration",
78 | "type": "double"
79 | },
80 | "z": {
81 | "description": "Z position of decoration",
82 | "type": "double"
83 | },
84 | "rot": {
85 | "description": "Rotation of decoration",
86 | "type": "double"
87 | }
88 | }
89 | }
90 | }
91 | }
92 | }
93 |
--------------------------------------------------------------------------------
/block/structure_block.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/block_entity.json"],
4 | "children": {
5 | "author": {
6 | "type": "string",
7 | "description": "The author of this structure"
8 | },
9 | "ignoreEntities": {
10 | "type": "byte",
11 | "description": "Should the structure ignore entities"
12 | },
13 | "integrity": {
14 | "type": "float",
15 | "description": "What percent of blocks should be placed"
16 | },
17 | "metadata": {
18 | "type": "string"
19 | },
20 | "mirror": {
21 | "type": "string",
22 | "description": "The mirror if this structure",
23 | "suggestions": ["NONE", "LEFT_RIGHT", "FRONT_BACK"]
24 | },
25 | "mode": {
26 | "type": "string",
27 | "description": "Mode of this structure block",
28 | "suggestions": ["SAVE", "LOAD", "CORNER", "DATA"]
29 | },
30 | "name": {
31 | "type": "string",
32 | "description": "Name of the structure"
33 | },
34 | "posX": {
35 | "type": "int",
36 | "description": "Offset of the structure on the x axis "
37 | },
38 | "posY": {
39 | "type": "int",
40 | "description": "Offset of the structure on the y axis "
41 | },
42 | "posZ": {
43 | "type": "int",
44 | "description": "Offset of the structure on the z axis "
45 | },
46 | "powered": {
47 | "type": "byte",
48 | "description": "If the structure block is powered by redstone"
49 | },
50 | "rotation": {
51 | "type": "string",
52 | "description": "Rotation of the structure",
53 | "suggestions": [
54 | "NONE",
55 | "CLOCKWISE_90",
56 | "COUNTERCLOCKWISE_90",
57 | "CLOCKWISE_180"
58 | ]
59 | },
60 | "seed": {
61 | "type": "long",
62 | "description": "The seed for the integerity"
63 | },
64 | "showair": {
65 | "type": "byte",
66 | "description": "Should the structure block show air"
67 | },
68 | "showboundingbox": {
69 | "type": "byte",
70 | "description": "Should the structure block show the bounding box"
71 | },
72 | "sizeX": {
73 | "type": "int",
74 | "description": "Size of the structure on the x axis. (Length)"
75 | },
76 | "sizeY": {
77 | "type": "int",
78 | "description": "Size of the structure on the y axis. (Height)"
79 | },
80 | "sizeZ": {
81 | "type": "int",
82 | "description": "Size of the structure on the z axis. (Width)"
83 | }
84 | }
85 | }
86 |
--------------------------------------------------------------------------------
/ref/entity.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["./nameable.json"],
4 | "children": {
5 | "id": {
6 | "type": "string",
7 | "description": "ID of the entity",
8 | "suggestions": [
9 | {
10 | "function": {
11 | "id": "entityList"
12 | }
13 | }
14 | ]
15 | },
16 | "Pos": {
17 | "type": "list",
18 | "description": "X, Y, and Z coordinates of the entity",
19 | "item": {
20 | "type": "double"
21 | }
22 | },
23 | "Motion": {
24 | "description": "X, Y, and Z motion of the entity",
25 | "type": "list",
26 | "item": {
27 | "type": "double"
28 | }
29 | },
30 | "Rotation": {
31 | "description": "Pitch and Yaw of the entity",
32 | "type": "list",
33 | "item": {
34 | "type": "double"
35 | }
36 | },
37 | "FallDistance": {
38 | "description": "How many blocks the entity has fallen",
39 | "type": "float"
40 | },
41 | "Fire": {
42 | "description": "How many ticks the entity is on fire until it isn't",
43 | "type": "short"
44 | },
45 | "Air": {
46 | "description": "How much air the entity has left before it starts to drown",
47 | "type": "short"
48 | },
49 | "OnGround": {
50 | "description": "If the entity is on the ground",
51 | "type": "byte"
52 | },
53 | "NoGravity": {
54 | "description": "If the entity should not fall",
55 | "type": "byte"
56 | },
57 | "Dimension": {
58 | "description": "The dimension the entity is in",
59 | "type": "int",
60 | "suggestions": [
61 | {
62 | "value": "-1",
63 | "description": "The Nether"
64 | },
65 | {
66 | "value": "0",
67 | "description": "Overworld"
68 | },
69 | {
70 | "value": "1",
71 | "description": "The End"
72 | }
73 | ]
74 | },
75 | "Invulnerable": {
76 | "description": "If the entity should not take damage from non creative and void damage",
77 | "type": "byte"
78 | },
79 | "PortalCooldown": {
80 | "description": "How long until the entity can teleport through a nether portal",
81 | "type": "int"
82 | },
83 | "UUIDLeast": {
84 | "description": "UUIDLeast of the entity",
85 | "type": "long"
86 | },
87 | "UUIDMost": {
88 | "description": "UUIDMost of the entity",
89 | "type": "long"
90 | },
91 | "CustomNameVisible": {
92 | "description": "Is the name visible",
93 | "type": "byte"
94 | },
95 | "Silent": {
96 | "description": "Is the entity silent",
97 | "type": "byte"
98 | },
99 | "Passengers": {
100 | "description": "A list of entities riding this entity",
101 | "type": "list",
102 | "item": {
103 | "ref": "./entity.json"
104 | }
105 | },
106 | "Glowing": {
107 | "description": "Is this entity glowing",
108 | "type": "byte"
109 | },
110 | "Tags": {
111 | "description": "A list of tags",
112 | "type": "list",
113 | "item": {
114 | "type": "string"
115 | }
116 | }
117 | }
118 | }
119 |
--------------------------------------------------------------------------------
/implementation.md:
--------------------------------------------------------------------------------
1 | # Implementation specs
2 |
3 | ## General Nodes
4 |
5 | A node is a JSON object. The format is fully specified in `schema.json` under `#/defintions/nest_node`. Each node specifies one of:
6 | - An NBT tag along with suggestions & a description
7 | - A reference to another node
8 | - A reference function
9 |
10 | ## NBT Nodes
11 |
12 | An NBT nodes always has the property `type`. `type` is one of
13 | - `root`
14 | - `no-nbt`
15 | - `byte`
16 | - `short`
17 | - `int`
18 | - `long`
19 | - `float`
20 | - `double`
21 | - `byte_array`
22 | - `string`
23 | - `list`
24 | - `compound`
25 | - `int_array`
26 | - `long_array`
27 |
28 | ### Root nodes
29 |
30 | Root nodes are not actual NBT tags, but they act like it. Root nodes are used in root files, like `blocks.json` & `root.json`.
31 |
32 | In `root.json`, the root tag just contains references to `blocks.json`, `items.json`, & `entities.json` with the properties `block`, `item`, & `entity` respectively.
33 |
34 | In `blocks.json` (or the others), the children tag contains the IDs of the NBT holder (like an entity id or item id).
35 |
36 | Root tags have a special parsing feature. If one of their children starts with a `$`, the rest of the child is a path. That path points to a JSON file that contains an array of either strings or objects with `value` & `description` (the value is like the string if you strings in that array). All of the value of the child is assigned to all of the values in that list.
37 |
38 | (IE if you have `["minecraft:chest", "minecraft:dispenser"]` as file `foo.json`, then has the child `"$./foo.json": {"type": "no-nbt"}`, `{"type": "no-nbt"}` would be assigned to chest & dispenser)
39 |
40 | ## Reference Nodes
41 |
42 | A reference node is a node containing a path to another node. The index in the walker path should not advance when getting the node specified.
43 |
44 | A reference is a posix-style path with an optional fragment. The fragment is also a posix-style path (no fragment though). This tells what node in the file to get. The index should not advance when reading though the fragment path
45 |
46 | ## Function Nodes
47 |
48 | Function come in two varieties: Reference & Suggestion functions.
49 | Both functions have the same format, but different locations.
50 | Functions have two properties: `id` & `params`. `id` is the ID of the function, and `params` are an object containing parameters for the function.
51 |
52 | ### Reference Functions
53 |
54 | All reference functions should be implemented, as they are vital to walking the node tree.
55 | These nodes should be implemented by calling the function based on `id`, then getting the node referenced with the same code used to get the node from a node with `ref: "..."`
56 |
57 | - `insertStringNBT`: inserts a string based on NBT
58 | params:
59 | - `ref`: a format string (like printf) for the string in the NBT to be inserted
60 | - `default`: a default path (no format) for the function to use in case
61 | - the tag specified by `tag_path` is not defined
62 | - the tag specified by `tag_path` is not a string
63 | - `tag_path`: The path of the NBT tag (using a posix-like path)
64 |
65 | ### Suggestion Functions
66 |
67 | Suggestion functions are optional to implement. To get good results, return an empty array for undefined functions
68 |
69 | - `itemList`: Gets a list of all item ids
70 | params: none
71 | - `blockList`: Get a list of all block ids
72 | params: none
73 | - `entityList`: Get a list of all entity ids
74 | params: none
75 |
--------------------------------------------------------------------------------
/misc_group/enchant.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "value": "minecraft:protection",
4 | "description": "Protection"
5 | },
6 | {
7 | "value": "minecraft:fire_protection",
8 | "description": "Fire Protection"
9 | },
10 | {
11 | "value": "minecraft:feather_falling",
12 | "description": "Feather Falling"
13 | },
14 | {
15 | "value": "minecraft:blast_protection",
16 | "description": "Blast Protection"
17 | },
18 | {
19 | "value": "minecraft:projectile_protection",
20 | "description": "Projectile Protection"
21 | },
22 | {
23 | "value": "minecraft:respiration",
24 | "description": "Respiration"
25 | },
26 | {
27 | "value": "minecraft:aqua_affinity",
28 | "description": "Aqua Affinity"
29 | },
30 | {
31 | "value": "minecraft:thorns",
32 | "description": "Thorns"
33 | },
34 | {
35 | "value": "minecraft:depth_strider",
36 | "description": "Depth Strider"
37 | },
38 | {
39 | "value": "minecraft:frost_walker",
40 | "description": "Frost Walker"
41 | },
42 | {
43 | "value": "minecraft:binding_curse",
44 | "description": "Curse of Binding"
45 | },
46 | {
47 | "value": "minecraft:sharpness",
48 | "description": "Sharpness"
49 | },
50 | {
51 | "value": "minecraft:smite",
52 | "description": "Smite"
53 | },
54 | {
55 | "value": "minecraft:bane_of_arthropods",
56 | "description": "Bane of Arthropods"
57 | },
58 | {
59 | "value": "minecraft:knockback",
60 | "description": "Knockback"
61 | },
62 | {
63 | "value": "minecraft:fire_aspect",
64 | "description": "Fire Aspect"
65 | },
66 | {
67 | "value": "minecraft:looting",
68 | "description": "Looting"
69 | },
70 | {
71 | "value": "minecraft:sweeping_edge",
72 | "description": "Sweeping Edge"
73 | },
74 | {
75 | "value": "minecraft:efficiency",
76 | "description": "Efficiency"
77 | },
78 | {
79 | "value": "minecraft:silk_touch",
80 | "description": "Silk Touch"
81 | },
82 | {
83 | "value": "minecraft:unbreaking",
84 | "description": "Unbreaking"
85 | },
86 | {
87 | "value": "minecraft:fortune",
88 | "description": "Fortune"
89 | },
90 | {
91 | "value": "minecraft:power",
92 | "description": "Power"
93 | },
94 | {
95 | "value": "minecraft:punch",
96 | "description": "Punch"
97 | },
98 | {
99 | "value": "minecraft:flame",
100 | "description": "Flame"
101 | },
102 | {
103 | "value": "minecraft:infinity",
104 | "description": "Infinity"
105 | },
106 | {
107 | "value": "minecraft:luck_of_the_sea",
108 | "description": "Luck of the Sea"
109 | },
110 | {
111 | "value": "minecraft:lure",
112 | "description": "Lure"
113 | },
114 | {
115 | "value": "minecraft:loyalty",
116 | "description": "Loyalty"
117 | },
118 | {
119 | "value": "minecraft:impaling",
120 | "description": "Impaling"
121 | },
122 | {
123 | "value": "minecraft:riptide",
124 | "description": "Riptide"
125 | },
126 | {
127 | "value": "minecraft:channeling",
128 | "description": "Channeling"
129 | },
130 | {
131 | "value": "minecraft:multishot",
132 | "description": "Multishot"
133 | },
134 | {
135 | "value": "minecraft:quick_charge",
136 | "description": "Quick Charge"
137 | },
138 | {
139 | "value": "minecraft:piercing",
140 | "description": "Piercing"
141 | },
142 | {
143 | "value": "minecraft:mending",
144 | "description": "Mending"
145 | },
146 | {
147 | "value": "minecraft:vanishing_curse",
148 | "description": "Curse of Vanishing"
149 | }
150 | ]
151 |
--------------------------------------------------------------------------------
/ref/item_tag.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "additionalChildren": true,
4 | "children": {
5 | "AttributeModifiers": {
6 | "description": "List of modifiers to an entities attributes",
7 | "type": "list",
8 | "item": {
9 | "description": "An individual modifier",
10 | "type": "compound",
11 | "children": {
12 | "AttributeName": {
13 | "description": "The name of the attribute",
14 | "type": "string",
15 | "suggestions": [
16 | "generic.maxHealth",
17 | "generic.followRange",
18 | "generic.knockbackResistance",
19 | "generic.movementSpeed",
20 | "generic.attackDamage",
21 | "generic.armor",
22 | "generic.armorToughness",
23 | "generic.attackSpeed",
24 | "generic.luck",
25 | "horse.jumpStrength",
26 | "generic.flyingSpeed",
27 | "zombie.spawnReinforcements"
28 | ]
29 | },
30 | "Name": {
31 | "description": "An arbitrary name",
32 | "type": "string"
33 | },
34 | "Slot": {
35 | "description": "The slot that this modifier takes effect in",
36 | "type": "string",
37 | "suggestions": [
38 | "mainhand",
39 | "offhand",
40 | "feet",
41 | "legs",
42 | "chest",
43 | "head"
44 | ]
45 | },
46 | "Amount": {
47 | "description": "The amount of this modifier",
48 | "type": "double"
49 | },
50 | "Operation": {
51 | "description": "The operation this modifier does to the base amount",
52 | "type": "int",
53 | "suggestions": [
54 | {
55 | "value": "0",
56 | "description": "Adds \"Amount\" to the attribute"
57 | },
58 | {
59 | "value": "1",
60 | "description": "Multiplies the attribute by \"Amount\""
61 | },
62 | {
63 | "value": "2",
64 | "description": "Multiplies each modifier by \"Amount\""
65 | }
66 | ]
67 | },
68 | "UUIDLeast": {
69 | "description": "UUIDLeast of this modifier",
70 | "type": "long"
71 | },
72 | "UUIDMost": {
73 | "description": "UUIDMost of this modifier",
74 | "type": "long"
75 | }
76 | }
77 | }
78 | },
79 | "display": {
80 | "description": "Dsiplay properties for the item",
81 | "type": "compound",
82 | "children": {
83 | "Name": {
84 | "description": "A JSON text component for the items name",
85 | "type": "string"
86 | },
87 | "color": {
88 | "description": "The color of leather armor. Still exists on other items",
89 | "type": "int"
90 | },
91 | "Lore": {
92 | "description": "Lines of lore. Each line is a JSON text component",
93 | "type": "list",
94 | "item": {
95 | "type": "string"
96 | }
97 | }
98 | }
99 | },
100 | "Enchantments": {
101 | "description": "A list of enchantments",
102 | "type": "list",
103 | "item": {
104 | "type": "compound",
105 | "children": {
106 | "id": {
107 | "description": "The ID of the enchantment",
108 | "type": "string",
109 | "suggestions": [
110 | {
111 | "values": "../misc_group/enchant.json"
112 | }
113 | ]
114 | },
115 | "lvl": {
116 | "type": "short",
117 | "description": "Level of the enchantment"
118 | }
119 | }
120 | }
121 | },
122 | "CanDestroy": {
123 | "description": "A list of blocks that can be destroyed with this item in adventure mode",
124 | "type": "list",
125 | "item": {
126 | "type": "string"
127 | }
128 | },
129 | "CanPlaceOn": {
130 | "description": "A list of blocks this block can be placed on in adventure mode",
131 | "type": "list",
132 | "item": {
133 | "type": "string"
134 | }
135 | },
136 | "HideFlags": {
137 | "type": "int"
138 | },
139 | "CustomModelData": {
140 | "description": "A model override predicate",
141 | "type": "int"
142 | }
143 | }
144 | }
145 |
--------------------------------------------------------------------------------
/entity/armor_stand.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/entity.json"],
4 | "children": {
5 | "DisabledSlots": {
6 | "type": "int",
7 | "description": "What slots should be disabled",
8 | "suggestions": [
9 | {
10 | "value": "2039583",
11 | "description": "Disables everything"
12 | }
13 | ]
14 | },
15 | "HandItems": {
16 | "type": "list",
17 | "item": {
18 | "ref": "../ref/inventory_item.json"
19 | },
20 | "description": "Items in main and offhand"
21 | },
22 | "ArmorItems": {
23 | "type": "list",
24 | "item": {
25 | "ref": "../ref/inventory_item.json"
26 | },
27 | "description": "Armor in armor slots"
28 | },
29 | "Marker": {
30 | "type": "byte",
31 | "description": "Should the armor stand have no hitbox"
32 | },
33 | "Invisible": {
34 | "type": "byte",
35 | "description": "Should the armor stand be invisible"
36 | },
37 | "NoBasePlate": {
38 | "type": "byte",
39 | "description": "Should the armor stand have no base plate"
40 | },
41 | "FallFlying": {
42 | "type": "byte",
43 | "description": "Should the entity glide when falling as long as it has an elytra in it's chest slot"
44 | },
45 | "Pose": {
46 | "type": "compound",
47 | "description": "The post of the armor stand",
48 | "children": {
49 | "Body": {
50 | "type": "compound",
51 | "children": {
52 | "x-rotation": {
53 | "type": "float",
54 | "description": "X rotation of the body"
55 | },
56 | "y-rotation": {
57 | "type": "float",
58 | "description": "Y rotation of the body"
59 | },
60 | "z-rotation": {
61 | "type": "float",
62 | "description": "Z rotation of the body"
63 | }
64 | }
65 | },
66 | "LeftArm": {
67 | "type": "compound",
68 | "children": {
69 | "x-rotation": {
70 | "type": "float",
71 | "description": "X rotation of the left arm"
72 | },
73 | "y-rotation": {
74 | "type": "float",
75 | "description": "Y rotation of the left arm"
76 | },
77 | "z-rotation": {
78 | "type": "float",
79 | "description": "Z rotation of the left arm"
80 | }
81 | }
82 | },
83 | "RightArm": {
84 | "type": "compound",
85 | "children": {
86 | "x-rotation": {
87 | "type": "float",
88 | "description": "X rotation of the right arm"
89 | },
90 | "y-rotation": {
91 | "type": "float",
92 | "description": "Y rotation of the right arm"
93 | },
94 | "z-rotation": {
95 | "type": "float",
96 | "description": "Z rotation of the right arm"
97 | }
98 | }
99 | },
100 | "LeftLeg": {
101 | "type": "compound",
102 | "children": {
103 | "x-rotation": {
104 | "type": "float",
105 | "description": "X rotation of the left leg"
106 | },
107 | "y-rotation": {
108 | "type": "float",
109 | "description": "Y rotation of the left leg"
110 | },
111 | "z-rotation": {
112 | "type": "float",
113 | "description": "Z rotation of the left leg"
114 | }
115 | }
116 | },
117 | "RightLeg": {
118 | "type": "compound",
119 | "children": {
120 | "x-rotation": {
121 | "type": "float",
122 | "description": "X rotation of the right leg"
123 | },
124 | "y-rotation": {
125 | "type": "float",
126 | "description": "Y rotation of the right leg"
127 | },
128 | "z-rotation": {
129 | "type": "float",
130 | "description": "Z rotation of the right leg"
131 | }
132 | }
133 | },
134 | "Head": {
135 | "type": "compound",
136 | "children": {
137 | "x-rotation": {
138 | "type": "float",
139 | "description": "X rotation of the head"
140 | },
141 | "y-rotation": {
142 | "type": "float",
143 | "description": "Y rotation of the head"
144 | },
145 | "z-rotation": {
146 | "type": "float",
147 | "description": "Z rotation of the head"
148 | }
149 | }
150 | }
151 | }
152 | },
153 | "ShowArms": {
154 | "type": "byte",
155 | "description": "Should the arms be displayed"
156 | },
157 | "Small": {
158 | "type": "byte",
159 | "description": "Should the armor stand be small"
160 | }
161 | }
162 | }
163 |
--------------------------------------------------------------------------------
/docs/schema.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "http://json-schema.org/draft-07/schema#",
3 | "oneOf": [
4 | {
5 | "type": "array",
6 | "items": {
7 | "oneOf": [
8 | {
9 | "type": "string"
10 | },
11 | {
12 | "type": "object",
13 | "properties": {
14 | "value": {
15 | "type": "string"
16 | },
17 | "description": {
18 | "type": "string"
19 | }
20 | },
21 | "required": ["value", "description"]
22 | }
23 | ]
24 | }
25 | },
26 | {
27 | "$ref": "#/definitions/nest_node"
28 | }
29 | ],
30 | "definitions": {
31 | "references": {
32 | "type": "object",
33 | "patternProperties": {
34 | "^.*$": {
35 | "oneOf": [
36 | {
37 | "$ref": "#/definitions/nest_node"
38 | },
39 | {
40 | "type": "object",
41 | "properties": {
42 | "references": {
43 | "$ref": "#/definitions/references"
44 | }
45 | },
46 | "required": ["references"],
47 | "additionalProperties": false
48 | }
49 | ]
50 | }
51 | }
52 | },
53 | "nest_node": {
54 | "type": "object",
55 | "properties": {
56 | "suggestions": {
57 | "type": "array",
58 | "items": {
59 | "oneOf": [
60 | {
61 | "type": "string"
62 | },
63 | {
64 | "type": "object",
65 | "properties": {
66 | "value": {
67 | "type": "string"
68 | },
69 | "description": {
70 | "type": "string"
71 | }
72 | },
73 | "required": ["value", "description"]
74 | },
75 | {
76 | "type": "object",
77 | "properties": {
78 | "values": {
79 | "type": "string"
80 | }
81 | },
82 | "required": ["values"]
83 | },
84 | {
85 | "type": "object",
86 | "properties": {
87 | "function": {
88 | "$ref": "#/definitions/function"
89 | }
90 | },
91 | "required": ["function"]
92 | }
93 | ]
94 | }
95 | },
96 | "description": {
97 | "type": "string"
98 | },
99 | "references": {
100 | "$ref": "#/definitions/references"
101 | }
102 | },
103 | "oneOf": [
104 | {
105 | "$ref": "#/definitions/noProp"
106 | },
107 | {
108 | "$ref": "#/definitions/rootProp"
109 | },
110 | {
111 | "$ref": "#/definitions/compoundProp"
112 | },
113 | {
114 | "$ref": "#/definitions/listProp"
115 | },
116 | {
117 | "properties": {
118 | "ref": {
119 | "type": "string"
120 | }
121 | },
122 | "required": ["ref"]
123 | },
124 | {
125 | "properties": {
126 | "function": {
127 | "$ref": "#/definitions/function"
128 | }
129 | },
130 | "required": ["function"]
131 | }
132 | ]
133 | },
134 | "noProp": {
135 | "required": ["type"],
136 | "properties": {
137 | "type": {
138 | "enum": [
139 | "no-nbt",
140 | "byte",
141 | "short",
142 | "int",
143 | "long",
144 | "float",
145 | "double",
146 | "byte_array",
147 | "string",
148 | "int_array",
149 | "long_array"
150 | ]
151 | }
152 | }
153 | },
154 | "rootProp": {
155 | "required": ["type"],
156 | "properties": {
157 | "type": {
158 | "enum": ["root"]
159 | },
160 | "children": {
161 | "type": "object"
162 | }
163 | }
164 | },
165 | "compoundProp": {
166 | "required": ["type"],
167 | "properties": {
168 | "type": {
169 | "enum": ["compound"]
170 | },
171 | "additionalChildren": {
172 | "type": "boolean"
173 | },
174 | "children": {
175 | "type": "object",
176 | "patternProperties": {
177 | "^.*$": {
178 | "$ref": "#/definitions/nest_node"
179 | }
180 | }
181 | },
182 | "child_ref": {
183 | "type": "array",
184 | "items": {
185 | "type": "string"
186 | }
187 | }
188 | }
189 | },
190 | "listProp": {
191 | "required": ["type"],
192 | "properties": {
193 | "type": {
194 | "enum": ["list"]
195 | },
196 | "item": {
197 | "$ref": "#/definitions/nest_node"
198 | }
199 | }
200 | },
201 | "function": {
202 | "type": "object",
203 | "properties": {
204 | "id": {
205 | "type": "string"
206 | },
207 | "params": {
208 | "type": "object"
209 | }
210 | },
211 | "required": ["id"]
212 | }
213 | }
214 | }
215 |
--------------------------------------------------------------------------------
/entity/villager.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["../ref/breedable.json"],
4 | "children": {
5 | "Profession": {
6 | "type": "int",
7 | "description": "Profession of the villager",
8 | "suggestions": [
9 | {
10 | "value": "0",
11 | "description": "Farmer"
12 | },
13 | {
14 | "value": "1",
15 | "description": "Librarian"
16 | },
17 | {
18 | "value": "2",
19 | "description": "Priest"
20 | },
21 | {
22 | "value": "3",
23 | "description": "Blacksmith"
24 | },
25 | {
26 | "value": "4",
27 | "description": "Butcher"
28 | },
29 | {
30 | "value": "5",
31 | "description": "Nitwit"
32 | }
33 | ]
34 | },
35 | "Riches": {
36 | "type": "int"
37 | },
38 | "Career": {
39 | "function": {
40 | "id": "insertStringNBT",
41 | "params": {
42 | "ref": "#careers/%s",
43 | "default": "#careers/none",
44 | "tag_path": "./Profession"
45 | }
46 | },
47 | "description": "Which careers the villager has"
48 | },
49 | "CareerLevel": {
50 | "type": "int",
51 | "description": "Level of trading options"
52 | },
53 | "Willing": {
54 | "type": "byte",
55 | "description": "Is the villager willing to breed"
56 | },
57 | "Inventory": {
58 | "type": "list",
59 | "item": {
60 | "ref": "./inventory_item.json"
61 | },
62 | "description": "The items a villager has in their inventory"
63 | },
64 | "Offers": {
65 | "description": "Trading offers",
66 | "type": "compound",
67 | "children": {
68 | "Recipes": {
69 | "description": "List of trading offers",
70 | "type": "list",
71 | "item": {
72 | "description": "A trading offer",
73 | "type": "compound",
74 | "children": {
75 | "rewardExp": {
76 | "type": "byte",
77 | "description": "How much XP is rewarded to the player"
78 | },
79 | "maxUses": {
80 | "type": "int",
81 | "description": "How many times this trade can be used"
82 | },
83 | "uses": {
84 | "type": "int",
85 | "description": "How many times this trade has been used"
86 | },
87 | "buy": {
88 | "ref": "../ref/inventory_item.json",
89 | "description": "The first item the villager is buying"
90 | },
91 | "buyB": {
92 | "ref": "../ref/inventory_item.json",
93 | "description": "The second item the villager is buying"
94 | },
95 | "sell": {
96 | "ref": "../ref/inventory_item.json",
97 | "description": "The item the villager is selling"
98 | }
99 | }
100 | }
101 | }
102 | }
103 | }
104 | },
105 | "references": {
106 | "careers": {
107 | "references": {
108 | "0": {
109 | "type": "int",
110 | "suggestions": [
111 | {
112 | "value": "1",
113 | "description": "Farmer"
114 | },
115 | {
116 | "value": "2",
117 | "description": "Fisherman"
118 | },
119 | {
120 | "value": "3",
121 | "description": "Shepherd"
122 | },
123 | {
124 | "value": "4",
125 | "description": "Fletcher"
126 | }
127 | ]
128 | },
129 | "1": {
130 | "type": "int",
131 | "suggestions": [
132 | {
133 | "value": "1",
134 | "description": "Librarian"
135 | },
136 | {
137 | "value": "2",
138 | "description": "Cartographer"
139 | }
140 | ]
141 | },
142 | "2": {
143 | "type": "int",
144 | "suggestions": [
145 | {
146 | "value": "1",
147 | "description": "Cleric"
148 | }
149 | ]
150 | },
151 | "3": {
152 | "type": "int",
153 | "suggestions": [
154 | {
155 | "value": "1",
156 | "description": "Armorer"
157 | },
158 | {
159 | "value": "2",
160 | "description": "Weapon Smith"
161 | },
162 | {
163 | "value": "3",
164 | "description": "Tool Smith"
165 | }
166 | ]
167 | },
168 | "4": {
169 | "type": "int",
170 | "suggestions": [
171 | {
172 | "value": "1",
173 | "description": "Butcher"
174 | },
175 | {
176 | "value": "2",
177 | "description": "Leatherworker"
178 | }
179 | ]
180 | },
181 | "5": {
182 | "type": "int",
183 | "suggestions": [
184 | {
185 | "value": "1",
186 | "description": "Nitwit"
187 | }
188 | ]
189 | },
190 | "none": {
191 | "type": "int"
192 | }
193 | }
194 | }
195 | }
196 | }
197 |
--------------------------------------------------------------------------------
/ref/mob.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "compound",
3 | "child_ref": ["./entity.json"],
4 | "children": {
5 | "Health": {
6 | "type": "float",
7 | "description": "The health of the mob"
8 | },
9 | "AbsorptionAmount": {
10 | "type": "float",
11 | "description": "How many absorbtion health the mob has"
12 | },
13 | "HurtTime": {
14 | "type": "short",
15 | "description": "How may ticks since the mob was hurt"
16 | },
17 | "HurtByTimestamp": {
18 | "type": "int",
19 | "description": "When was the mob last hurt"
20 | },
21 | "DeathTime": {
22 | "type": "short",
23 | "description": "Number of ticks the mob has been dead for"
24 | },
25 | "FallFlying": {
26 | "type": "byte",
27 | "description": "If the mob should fly if wearing elytra"
28 | },
29 | "Attributes": {
30 | "type": "list",
31 | "item": {
32 | "type": "compound",
33 | "children": {
34 | "Name": {
35 | "type": "string",
36 | "description": "Name of the attribute",
37 | "suggestions": [
38 | "generic.maxHealth",
39 | "generic.followRange",
40 | "generic.knockbackResistance",
41 | "generic.movementSpeed",
42 | "generic.attackDamage",
43 | "generic.armor",
44 | "generic.armorToughness",
45 | "generic.attackSpeed",
46 | "generic.luck",
47 | "horse.jumpStrength",
48 | "generic.flyingSpeed",
49 | "zombie.spawnReinforcements"
50 | ]
51 | },
52 | "Base": {
53 | "type": "double",
54 | "description": "Base value"
55 | },
56 | "Modifiers": {
57 | "description": "A list of modifiers",
58 | "type": "list",
59 | "item": {
60 | "type": "compound",
61 | "children": {
62 | "Name": {
63 | "description": "An arbitrary name",
64 | "type": "string"
65 | },
66 | "Amount": {
67 | "description": "The amount of this modifier",
68 | "type": "double"
69 | },
70 | "Operation": {
71 | "description": "The operation this modifier does to the base amount",
72 | "type": "int",
73 | "suggestions": [
74 | {
75 | "value": "0",
76 | "description": "Adds \"Amount\" to the attribute"
77 | },
78 | {
79 | "value": "1",
80 | "description": "Multiplies the attribute by \"Amount\""
81 | },
82 | {
83 | "value": "2",
84 | "description": "Multiplies each modifier by \"Amount\""
85 | }
86 | ]
87 | },
88 | "UUIDLeast": {
89 | "description": "UUIDLeast of this modifier",
90 | "type": "long"
91 | },
92 | "UUIDMost": {
93 | "description": "UUIDMost of this modifier",
94 | "type": "long"
95 | }
96 | }
97 | }
98 | }
99 | }
100 | }
101 | },
102 | "ActiveEffects": {
103 | "type": "list",
104 | "item": {
105 | "ref": "./potion_effect.json"
106 | },
107 | "description": "A list of effects on the mob"
108 | },
109 | "HandItems": {
110 | "type": "list",
111 | "item": {
112 | "ref": "./inventory_item.json"
113 | },
114 | "description": "Items in the main and off hand"
115 | },
116 | "ArmorItems": {
117 | "type": "list",
118 | "item": {
119 | "ref": "./inventory_item.json"
120 | },
121 | "description": "Armor items"
122 | },
123 | "HandDropChances": {
124 | "type": "list",
125 | "item": {
126 | "type": "float"
127 | },
128 | "description": "Chance for item in hands to drop"
129 | },
130 | "ArmorDropChances": {
131 | "type": "list",
132 | "item": {
133 | "type": "float"
134 | },
135 | "description": "Chance for item in armor slots to drop"
136 | },
137 | "DeathLootTable": {
138 | "type": "string",
139 | "description": "Loot table to drop upon death"
140 | },
141 | "DeathLootTableSeed": {
142 | "type": "long",
143 | "description": "Seed for random numbers in death loot table"
144 | },
145 | "CanPickUpLoot": {
146 | "type": "byte",
147 | "description": "If the mob can pick up items"
148 | },
149 | "NoAI": {
150 | "type": "byte",
151 | "description": "Should the mob not do any"
152 | },
153 | "PersistenceRequired": {
154 | "type": "byte",
155 | "description": "Should the mob be forced to never despawn"
156 | },
157 | "LeftHanded": {
158 | "type": "byte",
159 | "description": "Is the mob left handed"
160 | },
161 | "Team": {
162 | "type": "string",
163 | "description": "The team to put the mob on when it spawns"
164 | },
165 | "Leashed": {
166 | "type": "byte",
167 | "description": "Is the mob leashed"
168 | },
169 | "Leash": {
170 | "description": "The Leash destination",
171 | "type": "compound",
172 | "children": {
173 | "UUIDMost": {
174 | "description": "UUIDMost of the leash holder",
175 | "type": "long"
176 | },
177 | "UUIDLeast": {
178 | "description": "UUIDLeast of the leash holder",
179 | "type": "long"
180 | },
181 | "X": {
182 | "type": "int",
183 | "description": "X position of leash knot"
184 | },
185 | "Y": {
186 | "type": "int",
187 | "description": "Y position of leash knot"
188 | },
189 | "Z": {
190 | "type": "int",
191 | "description": "Z position of leash knot"
192 | }
193 | }
194 | }
195 | }
196 | }
197 |
--------------------------------------------------------------------------------
/roots/entities.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "root",
3 | "children": {
4 | "none": {
5 | "ref": "../ref/entity.json"
6 | },
7 | "$../entity/group/mob.json": {
8 | "ref": "../ref/mob.json"
9 | },
10 | "$../entity/group/breedable.json": {
11 | "ref": "../ref/breedable.json"
12 | },
13 | "$../entity/group/fireball.json": {
14 | "ref": "../ref/fireball_base.json"
15 | },
16 | "$../entity/group/throwable.json": {
17 | "ref": "../ref/throwable.json"
18 | },
19 | "minecraft:area_effect_cloud": {
20 | "ref": "../entity/area_effect_cloud.json"
21 | },
22 | "minecraft:armor_stand": {
23 | "ref": "../entity/armor_stand.json"
24 | },
25 | "minecraft:bat": {
26 | "ref": "../entity/bat.json"
27 | },
28 | "minecraft:boat": {
29 | "ref": "../entity/boat.json"
30 | },
31 | "minecraft:creeper": {
32 | "ref": "../entity/creeper.json"
33 | },
34 | "minecraft:donkey": {
35 | "ref": "../entity/chest_horse.json"
36 | },
37 | "minecraft:ender_dragon": {
38 | "ref": "../entity/ender_dragon.json"
39 | },
40 | "minecraft:enderman": {
41 | "ref": "../entity/enderman.json"
42 | },
43 | "minecraft:endermite": {
44 | "ref": "../entity/endermite.json"
45 | },
46 | "minecraft:evocation_illager": {
47 | "ref": "../entity/spell_illager.json"
48 | },
49 | "minecraft:horse": {
50 | "ref": "../entity/horse.json"
51 | },
52 | "minecraft:husk": {
53 | "type": "compound",
54 | "child_ref": ["../ref/zombie.json"]
55 | },
56 | "minecraft:illusion_illager": {
57 | "ref": "../entity/spell_illager.json"
58 | },
59 | "minecraft:llama": {
60 | "ref": "../entity/llama.json"
61 | },
62 | "minecraft:magma_cube": {
63 | "ref": "../entity/slime.json"
64 | },
65 | "minecraft:mule": {
66 | "ref": "../entity/chest_horse.json"
67 | },
68 | "minecraft:ocelot": {
69 | "ref": "../entity/ocelot.json"
70 | },
71 | "minecraft:parrot": {
72 | "ref": "../entity/parrot.json"
73 | },
74 | "minecraft:pig": {
75 | "ref": "../entity/pig.json"
76 | },
77 | "minecraft:rabbit": {
78 | "ref": "../entity/rabbit.json"
79 | },
80 | "minecraft:sheep": {
81 | "ref": "../entity/sheep.json"
82 | },
83 | "minecraft:shulker": {
84 | "ref": "../entity/shulker.json"
85 | },
86 | "minecraft:skeleton_horse": {
87 | "ref": "../entity/skeleton_horse.json"
88 | },
89 | "minecraft:slime": {
90 | "ref": "../entity/slime.json"
91 | },
92 | "minecraft:snowman": {
93 | "ref": "../entity/snowman.json"
94 | },
95 | "minecraft:vex": {
96 | "ref": "../entity/vex.json"
97 | },
98 | "minecraft:villager": {
99 | "ref": "../entity/villager.json"
100 | },
101 | "minecraft:villager_golem": {
102 | "ref": "../entity/villager_golem.json"
103 | },
104 | "minecraft:vindication_illager": {
105 | "ref": "../entity/vindication_illager.json"
106 | },
107 | "minecraft:wither": {
108 | "ref": "../entity/wither.json"
109 | },
110 | "minecraft:wolf": {
111 | "ref": "../entity/wolf.json"
112 | },
113 | "minecraft:zombie": {
114 | "type": "compound",
115 | "child_ref": ["../ref/zombie.json"]
116 | },
117 | "minecraft:zombie_horse": {
118 | "ref": "../entity/horse.json"
119 | },
120 | "minecraft:zombie_pigman": {
121 | "ref": "../entity/zombie_pigman.json"
122 | },
123 | "minecraft:zombie_villager": {
124 | "ref": "../entity/zombie_villager.json"
125 | },
126 | "minecraft:item": {
127 | "ref": "../entity/item.json"
128 | },
129 | "minecraft:xp_orb": {
130 | "ref": "../entity/xp_orb.json"
131 | },
132 | "minecraft:fireball": {
133 | "ref": "../entity/fireball.json"
134 | },
135 | "minecraft:arrow": {
136 | "ref": "../entity/arrow.json"
137 | },
138 | "minecraft:potion": {
139 | "ref": "../entity/potion.json"
140 | },
141 | "minecraft:spectral_arrow": {
142 | "ref": "../entity/spectral_arrow.json"
143 | },
144 | "minecraft:minecart": {
145 | "ref": "../entity/minecart.json"
146 | },
147 | "minecraft:commandblock_minecart": {
148 | "ref": "../entity/commandblock_minecart.json"
149 | },
150 | "minecraft:furnace_minecart": {
151 | "ref": "../entity/furnace_minecart.json"
152 | },
153 | "minecraft:hopper_minecart": {
154 | "ref": "../entity/hopper_minecart.json"
155 | },
156 | "minecraft:spawner_minecart": {
157 | "ref": "../entity/spawner_minecart.json"
158 | },
159 | "minecraft:tnt_minecart": {
160 | "ref": "../entity/tnt_minecart.json"
161 | },
162 | "minecraft:falling_block": {
163 | "ref": "../entity/falling_block.json"
164 | },
165 | "minecraft:tnt": {
166 | "ref": "../entity/tnt.json"
167 | },
168 | "minecraft:ender_crystal": {
169 | "ref": "../entity/ender_crystal.json"
170 | },
171 | "minecraft:evocation_fangs": {
172 | "ref": "../entity/evocation_fangs.json"
173 | },
174 | "minecraft:eye_of_ender_signal": {
175 | "ref": "../ref/entity.json"
176 | },
177 | "minecraft:fireworks_rocket": {
178 | "ref": "../entity/fireworks_rocket.json"
179 | },
180 | "minecraft:item_frame": {
181 | "ref": "../entity/item_frame.json"
182 | },
183 | "minecraft:leash_knot": {
184 | "ref": "../ref/entity.json"
185 | },
186 | "minecraft:llama_spit": {
187 | "ref": "../entity/llama_spit.json"
188 | },
189 | "minecraft:painting": {
190 | "ref": "../entity/painting.json"
191 | },
192 | "minecraft:shulker_bullet": {
193 | "ref": "../entity/shulker_bullet.json"
194 | },
195 | "minecraft:turtle": {
196 | "ref": "../entity/turtle.json"
197 | },
198 | "minecraft:phantom": {
199 | "ref": "../entity/phantom.json"
200 | },
201 | "minecraft:trident": {
202 | "ref": "../entity/trident.json"
203 | },
204 | "minecraft:cod_fish": {
205 | "ref": "../entity/fish.json"
206 | },
207 | "minecraft:salmon_fish": {
208 | "ref": "../entity/fish.json"
209 | }
210 | }
211 | }
212 |
--------------------------------------------------------------------------------
/item/group/generic.json:
--------------------------------------------------------------------------------
1 | [
2 | "minecraft:apple",
3 | "minecraft:arrow",
4 | "minecraft:coal",
5 | "minecraft:charcoal",
6 | "minecraft:diamond",
7 | "minecraft:iron_ingot",
8 | "minecraft:gold_ingot",
9 | "minecraft:stick",
10 | "minecraft:bowl",
11 | "minecraft:mushroom_stew",
12 | "minecraft:string",
13 | "minecraft:feather",
14 | "minecraft:gunpowder",
15 | "minecraft:wheat_seeds",
16 | "minecraft:bread",
17 | "minecraft:flint",
18 | "minecraft:porkchop",
19 | "minecraft:cooked_porkchop",
20 | "minecraft:painting",
21 | "minecraft:golden_apple",
22 | "minecraft:enchanted_golden_apple",
23 | "minecraft:bucket",
24 | "minecraft:water_bucket",
25 | "minecraft:lava_bucket",
26 | "minecraft:minecart",
27 | "minecraft:saddle",
28 | "minecraft:redstone",
29 | "minecraft:snowball",
30 | "minecraft:oak_boat",
31 | "minecraft:leather",
32 | "minecraft:milk_bucket",
33 | "minecraft:brick",
34 | "minecraft:clay_ball",
35 | "minecraft:paper",
36 | "minecraft:book",
37 | "minecraft:slime_ball",
38 | "minecraft:chest_minecart",
39 | "minecraft:furnace_minecart",
40 | "minecraft:egg",
41 | "minecraft:compass",
42 | "minecraft:clock",
43 | "minecraft:glowstone_dust",
44 | "minecraft:cod",
45 | "minecraft:salmon",
46 | "minecraft:clownfish",
47 | "minecraft:pufferfish",
48 | "minecraft:cooked_cod",
49 | "minecraft:cooked_salmon",
50 | "minecraft:ink_sac",
51 | "minecraft:rose_red",
52 | "minecraft:cactus_green",
53 | "minecraft:cocoa_beans",
54 | "minecraft:lapis_lazuli",
55 | "minecraft:purple_dye",
56 | "minecraft:cyan_dye",
57 | "minecraft:light_gray_dye",
58 | "minecraft:gray_dye",
59 | "minecraft:pink_dye",
60 | "minecraft:lime_dye",
61 | "minecraft:dandelion_yellow",
62 | "minecraft:light_blue_dye",
63 | "minecraft:magenta_dye",
64 | "minecraft:orange_dye",
65 | "minecraft:bone_meal",
66 | "minecraft:bone",
67 | "minecraft:sugar",
68 | "minecraft:cookie",
69 | "minecraft:filled_map",
70 | "minecraft:melon",
71 | "minecraft:pumpkin_seeds",
72 | "minecraft:melon_seeds",
73 | "minecraft:beef",
74 | "minecraft:cooked_beef",
75 | "minecraft:chicken",
76 | "minecraft:cooked_chicken",
77 | "minecraft:rotten_flesh",
78 | "minecraft:ender_pearl",
79 | "minecraft:blaze_rod",
80 | "minecraft:ghast_tear",
81 | "minecraft:gold_nugget",
82 | "minecraft:glass_bottle",
83 | "minecraft:spider_eye",
84 | "minecraft:fermented_spider_eye",
85 | "minecraft:blaze_powder",
86 | "minecraft:magma_cream",
87 | "minecraft:ender_eye",
88 | "minecraft:speckled_melon",
89 | "minecraft:bat_spawn_egg",
90 | "minecraft:blaze_spawn_egg",
91 | "minecraft:cave_spider_spawn_egg",
92 | "minecraft:chicken_spawn_egg",
93 | "minecraft:cow_spawn_egg",
94 | "minecraft:creeper_spawn_egg",
95 | "minecraft:donkey_spawn_egg",
96 | "minecraft:elder_guardian_spawn_egg",
97 | "minecraft:enderman_spawn_egg",
98 | "minecraft:endermite_spawn_egg",
99 | "minecraft:evocation_illager_spawn_egg",
100 | "minecraft:ghast_spawn_egg",
101 | "minecraft:guardian_spawn_egg",
102 | "minecraft:horse_spawn_egg",
103 | "minecraft:husk_spawn_egg",
104 | "minecraft:llama_spawn_egg",
105 | "minecraft:magma_cube_spawn_egg",
106 | "minecraft:mooshroom_spawn_egg",
107 | "minecraft:mule_spawn_egg",
108 | "minecraft:ocelot_spawn_egg",
109 | "minecraft:parrot_spawn_egg",
110 | "minecraft:pig_spawn_egg",
111 | "minecraft:polar_bear_spawn_egg",
112 | "minecraft:rabbit_spawn_egg",
113 | "minecraft:sheep_spawn_egg",
114 | "minecraft:shulker_spawn_egg",
115 | "minecraft:silverfish_spawn_egg",
116 | "minecraft:skeleton_spawn_egg",
117 | "minecraft:skeleton_horse_spawn_egg",
118 | "minecraft:slime_spawn_egg",
119 | "minecraft:spider_spawn_egg",
120 | "minecraft:squid_spawn_egg",
121 | "minecraft:stray_spawn_egg",
122 | "minecraft:vex_spawn_egg",
123 | "minecraft:villager_spawn_egg",
124 | "minecraft:vindication_illager_spawn_egg",
125 | "minecraft:witch_spawn_egg",
126 | "minecraft:wither_skeleton_spawn_egg",
127 | "minecraft:wolf_spawn_egg",
128 | "minecraft:zombie_spawn_egg",
129 | "minecraft:zombie_horse_spawn_egg",
130 | "minecraft:zombie_pigman_spawn_egg",
131 | "minecraft:zombie_villager_spawn_egg",
132 | "minecraft:experience_bottle",
133 | "minecraft:fire_charge",
134 | "minecraft:emerald",
135 | "minecraft:item_frame",
136 | "minecraft:carrot",
137 | "minecraft:potato",
138 | "minecraft:baked_potato",
139 | "minecraft:poisonous_potato",
140 | "minecraft:map",
141 | "minecraft:golden_carrot",
142 | "minecraft:nether_star",
143 | "minecraft:pumpkin_pie",
144 | "minecraft:enchanted_book",
145 | "minecraft:nether_brick",
146 | "minecraft:quartz",
147 | "minecraft:tnt_minecart",
148 | "minecraft:hopper_minecart",
149 | "minecraft:prismarine_shard",
150 | "minecraft:prismarine_crystals",
151 | "minecraft:rabbit",
152 | "minecraft:cooked_rabbit",
153 | "minecraft:rabbit_stew",
154 | "minecraft:rabbit_foot",
155 | "minecraft:rabbit_hide",
156 | "minecraft:armor_stand",
157 | "minecraft:iron_horse_armor",
158 | "minecraft:golden_horse_armor",
159 | "minecraft:diamond_horse_armor",
160 | "minecraft:lead",
161 | "minecraft:name_tag",
162 | "minecraft:command_block_minecart",
163 | "minecraft:mutton",
164 | "minecraft:cooked_mutton",
165 | "minecraft:end_crystal",
166 | "minecraft:chorus_fruit",
167 | "minecraft:chorus_fruit_popped",
168 | "minecraft:beetroot",
169 | "minecraft:beetroot_seeds",
170 | "minecraft:beetroot_soup",
171 | "minecraft:dragon_breath",
172 | "minecraft:spectral_arrow",
173 | "minecraft:shield",
174 | "minecraft:elytra",
175 | "minecraft:spruce_boat",
176 | "minecraft:birch_boat",
177 | "minecraft:jungle_boat",
178 | "minecraft:acacia_boat",
179 | "minecraft:dark_oak_boat",
180 | "minecraft:totem_of_undying",
181 | "minecraft:shulker_shell",
182 | "minecraft:iron_nugget",
183 | "minecraft:knowledge_book",
184 | "minecraft:debug_stick",
185 | "minecraft:music_disc_13",
186 | "minecraft:music_disc_cat",
187 | "minecraft:music_disc_blocks",
188 | "minecraft:music_disc_chirp",
189 | "minecraft:music_disc_far",
190 | "minecraft:music_disc_mall",
191 | "minecraft:music_disc_mellohi",
192 | "minecraft:music_disc_stal",
193 | "minecraft:music_disc_strad",
194 | "minecraft:music_disc_ward",
195 | "minecraft:music_disc_11",
196 | "minecraft:music_disc_wait"
197 | ]
198 |
--------------------------------------------------------------------------------