跳到正文

HexParse

Converts custom code into (pattern or literal) list iota by command; with various features for coding conveniently.

收藏

截图

介绍

中文介绍正在准备中,下面暂时显示原文。

HexParse mod

Curseforge CurseForge
Modrinth Modrinth

Provides a pair of patterns and a set of commands to convert custom code into (pattern or literal) list iota; requires
player to have a focus item in hand.

A badge for hexdoc in the style of Devins Badges
A badge for addons.hexxy.media in the style of Devins Badges

(Old KubeJS version HERE)

| Example Code | Example Iota | Example Iota (Colorful Nested) |
|———————————————————————————|———————————————————————————|——————————————————————————————————-|
| Code | Iota | Iota (Colorful) |

_The
highlight VSCode extension
is available on the Marketplace (source code)._

Supported IO Item Types

  • Focuses
  • Spell Books
  • (1.20) Thought Knots
  • recognized by item classes (matched through the item class hierarchy), able to add more via HexParseAPI or IOMethod

Commands Added

Reading & Writing

  • /hexParse <code string> [rename]: parse input code into supported held item; optional rename argument to rename the item.
  • /hexParse read: read handheld item’s iota, parse into code and show in chat window; the result will be copied when clicked.
  • /hexParse read_signatures: same as read, but ignores all known pattern IDs and outputs all as angle signatures.
  • /hexParse clipboard [rename]: read client clipboard text and parse into supported held item; optional rename argument to rename the item.
  • /hexParse clipboard_angles [rename]: same as clipboard, but only accept patterns input with raw angle string like "wedsaq".
  • /hexParse clipboard_hexpattern [rename]: (experimental) same as clipboard, but accepts .hexpattern format; _warning: only partial features supported_.
  • /hexParse share: (experimental) same as read but broadcasts iota’s raw content and click-copy-able parsed code to every player in the server.
  • /hexParse read_hexbug: same as read but translates the result to the format used by discord HexBug’s /patterns hex command. _note: non-pattern constants and some old registry names still need to be handled manually_
  • /hexParse mind_stack ...: read/write iota from player’s mind (staff casting VM)
  • ... peek: read the last iota inside mind stack; gets null if stack is empty
  • ... push <code>: parse code and push into mind stack
  • ... push_clipboard: same as above, but code comes from clipboard
  • /hexParse property ...: (Hexcellular interop) get/set data for PropertyIota; used property names all force-added leading _ for security reason
  • ... read <propName>: read and parse from certain property
  • ... write <propName> <code>: write code into certain property
  • ... clipboard <propName>: same as above, but code comes from clipboard

Configs

  • /hexParse (macro/dialect) ...: edit client-saved code dialects (1-on-1 mapping, not starting with #) and macros ( mapped to code segments, starting with #)
  • ... list: list all saved macros/dialects; there exist several predefined macros from the nature
  • ... define <key> <value>: define a macro/dialect mapping; could be fresh-new or overriding existed one.
  • macro define_clipboard <key>: same as above, but only for macros, and reads player’s clipboard
  • ... remove <key>: remove mapping entry with given key (if exists)
  • /hexParse conflict: conflict resolver for multiple patterns with same short name (ID path)
  • _only enables in physical client (singleplayer, local multiplayer) or with OP permission_
  • ... or ... list: list all short names pointed by multiple long IDs
  • ... list <short_name>: list all conflicting IDs under certain short name
  • ... set <short_name> <long_ID>: redirect certain short name to input pattern ID

Misc. & Helpers

  • /hexParse donate [amount]: donate custom amount of media to the nature. Pay if you feel guilty using this mod ::)
  • /hexParse learn_great: Read handheld items and learns great pattern(s) inside.
  • /hexParse lehmer [...nums]: calculate lehmer code for given permutation (from ascending, e.g. 0 1 2 3 4); input should be separated with space; the result number can be used for Swindler’s Gambit.

OP-Only Commands

  • /hexParse unlock_great (unlockAll|lockAll|unlock <pattern id>|lock <pattern id>): controls great pattern unlocking process of current world by locking/unlocking all at once, or a single great pattern each execution.

Patterns Added

  • switch_comment: Transforms input Comment Iota into String Iota, or everything else into Comment Iota; has no effect without MoreIotas.
  • code2focus: Equivalent to /hexParse clipboard (now not only focuses).
  • focus2code: Equivalent to /hexParse read.
  • remove_comments: Clears comment iotas from a (nested) list input.
  • learn_patterns: Read handheld items and learns great pattern(s) inside.
  • create_linebreak: Adds a line-break comment iota with space-indents of given number to the stack.
  • donate: Equivalent to /hexParse donate.
  • (great spell) compile: takes in a MoreIotas string iota, and parses it into a code list; has no effect without MoreIotas.

Introduction also written in HexParse Patterns section inside the book.

Misc. Features

  • At each pattern’s page, press Shift to display the pattern’s registry ID

New Iota: CommentIota

CommentIota displays string inside, and parses into a null iota (with id: "hexparse:comment") which executes doing
nothing.
Comment iotas includes text comments, line-breaks & indents, and unknown great spell placeholders.
When player holds Shift key, all comments will be hidden.

HexParseAPI

  • Location: io.yukkuric.hexparse.api.HexParseAPI
  • Contents:
  • AddForthParser(p: IStr2Nbt)
  • AddForthParser(p: IStr2Nbt, id: String) — replaces the parser previously registered under the same ID
  • AddBackParser(p: INbt2Str)
  • AddBackParser(p: INbt2Str, id: String) — same ID-based replacement
  • RemoveForthParser(p: IStr2Nbt)
  • RemoveBackParser(p: INbt2Str)
  • <T : SpecialHandler> AddSpecialHandlerBackParser(cls: Class<T>, func: (T, CompoundTag) -> String)
  • CreateItemIOMethod(cls: Class<*>, writer: ((ItemStack, CompoundTag) -> Unit)?, reader: ((ItemStack) -> CompoundTag?)?, priority: Int = 0, validator: ((ItemStack, Boolean) -> Boolean)?)

For detailed usage guides, see How-To _(Generated by DeepSeek-v4.1-Flash)_

External Documents

Supported Expressions

see this file for all available symbols.

Available Configs

see this file for all available configs.

常见问题

HexParse 支持哪些 Minecraft 版本?

HexParse 支持 Minecraft Java 版 1.19.2–1.21.1,共 3 个版本,可用的加载器:Fabric / Forge / NeoForge。下载时注意选择和你游戏版本一致的文件。

HexParse 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric / Forge / NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:客户端和服务端都要装。

评论

登录后评论和评分