├── .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 | --------------------------------------------------------------------------------