Books Can Enchant Anything
A Datapack that allows any enchanted book to be applied to any item in the anvil. Doesn't change any enchantments nor the enchanting table.
截图
介绍
Books Can Enchant Anything
A Minecraft data pack that lets any enchantment be applied to any item via enchanted book and anvil (or the /enchant command). Enchanting tables retain their vanilla behavior.
This means you can finally place Unbreaking on a flint and steel, Fire Aspect on a shovel, or Aqua Affinity on a mob head. Or more useful combinations, of course.
How it works
Works by overriding every vanilla enchantment’s supported_items attribute to a tag that contains every item in the game.
data/bcea/tags/item/all.json: an item tag listing every item ID in the game (exceptair).data/minecraft/enchantment/*.json: a full copy of each vanilla enchantment definition with only thesupported_itemsfield replaced with#bcea:all. Everything else (effects, costs, weights, slots,primary_items) is untouched, so enchanting-table behavior is unchanged, only anvil//enchantrestrictions are lifted.
Installation
Drop this folder into your world’s datapacks/ directory (or a resource-pack-style
zip of it), then run /reload or restart the world.
[!NOTE]
The items and enchantments in this pack are compiled directly from the vanilla client jar. Therefore, this pack does not work out-of-the-box with modded clients that introduce new items/blocks.
The next section explains how to update this pack for your desired version of Minecraft. In the future, perhaps I will automate this as a CI/CD workflow so that all of the recent Minecraft versions are supported with a pre-compiled release.
Updating for a new Minecraft version
The list of items and enchantments comes directly from a vanilla (or modded) client jar. Two scripts are included to regenerate this pack’s contents so it can be easily updated for a new game version.
The scripts require Python 3 and no additional dependencies. Run these commands from the root of this pack’s folder, passing the path to a vanilla client jar as an argument:
python3 scripts/update_item_tag.py /path/to/client.jar
python3 scripts/update_enchantments.py /path/to/client.jar
# Optionally create a zip of the pack:
zip -r books-can-enchant-anything_VERSION.zip data pack.mcmeta pack.png
update_item_tag.py rebuilds data/bcea/tags/item/all.json from the jar’s assets/minecraft/items/*.json item model list (every real item has one; air is excluded on purpose).
update_enchantments.py rebuilds data/minecraft/enchantment/*.json by copying each enchantment straight from the jar, then only modifying supported_items (changed to #bcea:all) and primary_items (added, set to the enchantment’s original vanilla supported_items, if the jar’s copy doesn’t already have one). This way enchanting tables still only show the vanilla list of available enchants, while anvil//enchant becomes fully permissive. It also warns about any enchantment .json present in the pack but missing from the jar, in case an enchantment was removed upstream.
常见问题
Books Can Enchant Anything 支持哪些 Minecraft 版本?
Books Can Enchant Anything 支持 Minecraft Java 版 26.1–26.3,共 5 个版本。下载时注意选择和你游戏版本一致的文件。
Books Can Enchant Anything 怎么安装?
新建世界时在「数据包」里把下载的 .zip 拖进去;已有的存档,把文件放进存档目录下的 datapacks 文件夹,进游戏输入 /reload 即可生效。服务器同样放在世界目录的 datapacks 里。
评论
登录后评论和评分