HexParse

HexParse

将自定义代码转换为(模式或字面量)列表iota通过命令;要求玩家手中持有焦点物品。

魔法

HexParse 模组

Curseforge CurseForge
Modrinth Modrinth

提供一组图案和一系列命令,用于将自定义代码转换为(图案或字面量)列表 iota;需要玩家手持焦点物品。

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

(旧版 KubeJS 版本位于 此处)

示例代码 示例 Iota 示例 Iota(彩色嵌套)
Code Iota Iota (Colorful)

语法高亮的 VSCode 扩展 可在应用市场获取(源代码)。

支持的 IO 物品类型

  • 焦点
  • 法术书
  • (1.20)思绪结
  • 通过物品类识别,可通过 HexParseAPI 或 IOMethod 添加更多类型

新增指令

读取与写入

  • /hexParse <代码字符串> [重命名]:将输入的代码解析到手持的支持物品中;可选 重命名 参数用于重命名物品。
  • /hexParse read:读取手持物品的 iota,解析为代码并显示在聊天窗口中;点击结果即可复制。
  • /hexParse read_signatures:与 read 相同,但忽略所有已知的图案 ID,并全部输出为角度签名。
  • /hexParse clipboard [重命名]:读取客户端剪贴板文本并解析到手持的支持物品中;可选 重命名 参数用于重命名物品。
  • /hexParse clipboard_angles [重命名]:与 clipboard 相同,但仅接受以原始角度字符串(如 "wedsaq")输入的图案。
  • /hexParse clipboard_hexpattern [重命名]:(实验性)与 clipboard 相同,但接受 .hexpattern 格式;警告:仅支持部分功能。
  • /hexParse share:(实验性)与 read 相同,但将 iota 的原始内容及可点击复制的解析代码广播给服务器上的所有玩家。
  • /hexParse read_hexbug:与 read 相同,但会将结果转换为 Discord HexBug 的 /patterns hex 命令所使用的格式。注意:非图案常量及部分旧注册名仍需手动处理。
  • /hexParse mind_stack ...:读取/写入玩家思维堆栈(法杖施法 VM)中的 iota
    • ... peek:读取思维堆栈中的最后一个 iota;若堆栈为空则返回 null
    • ... push <代码>:解析代码并推入思维堆栈
    • ... push_clipboard:与上述相同,但代码来自剪贴板
  • /hexParse property ...:(Hexcellular 互操作)获取/设置 PropertyIota 的数据;出于安全考虑,使用的属性名均强制添加前缀 _
    • ... read <属性名>:读取并解析特定属性
    • ... write <属性名> <代码>:将代码写入特定属性
    • ... clipboard <属性名>:与上述相同,但代码来自剪贴板

配置

  • /hexParse (macro/dialect) ...:编辑客户端保存的代码方言(1对1映射,不以 # 开头)和宏(映射到代码段,以 # 开头)
    • ... list:列出所有已保存的宏/方言;存在若干预定义的宏来自自然
    • ... define <键> <值>:定义宏/方言映射;可以是新建或覆盖已有的映射。
    • macro define_clipboard <键>:与上述相同,但仅适用于宏,并读取玩家的剪贴板
    • ... remove <键>:移除给定键的映射条目(如果存在)
  • /hexParse conflict:多个具有相同短名称(ID 路径)的图案的冲突解决器
    • 仅在物理客户端(单人游戏、本地多人游戏)或拥有 OP 权限时启用
    • ... 或 ... list:列出所有被多个长 ID 指向的短名称
    • ... list <短名称>:列出特定短名称下的所有冲突 ID
    • ... set <短名称> <长ID>:将特定短名称重定向到输入的图案 ID

杂项与辅助

  • /hexParse donate [数量]:向自然捐赠自定义数量的媒质。如果因使用本模组感到愧疚,请付费吧 ::)
  • /hexParse learn_great:读取手持物品并学习其中的伟大学说图案。
  • /hexParse lehmer [...数字]:计算给定排列的 Lehmer 码(从升序开始,例如 0 1 2 3 4);输入应以空格分隔;结果数字可用于骗徒诡计。

仅限管理员指令

  • /hexParse unlock_great (unlockAll|lockAll|unlock <图案 id>|lock <图案 id>):通过一次性全部锁定/解锁,或每次执行单个伟大学说图案,来控制当前世界伟大学说图案的解锁进程。

新增图案

  • comment_switcher:将输入的注释 Iota 转换为字符串 Iota,或将其他任何内容转换为注释 Iota。
  • code2focus:等同于 /hexParse clipboard(现在不仅限于焦点)。
  • focus2code:等同于 /hexParse read。
  • remove_comments:从(嵌套)列表输入中清除注释 iota。
  • learn_patterns:读取手持物品并学习其中的伟大学说图案。
  • create_linebreak:向堆栈添加一个带有指定数量空格缩进的换行注释 iota。
  • donate:等同于 /hexParse donate。
  • (强大法术)compile:接收一个 MoreIotas 字符串 iota,并将其解析为代码列表。

书中 HexParse Patterns 部分也有相关介绍。

杂项功能

  • 在每个图案的页面中,按下 Shift 键可显示图案的注册 ID

新 Iota:CommentIota

CommentIota 显示内部字符串,并解析为一个空操作的 null iota(ID:"hexparse:comment")。
注释 iota 包括文本注释、换行与缩进,以及未知的伟大学说占位符。
当玩家按住 Shift 键时,所有注释将被隐藏。

HexParseAPI

  • 位置:io.yukkuric.hexparse.api.HexParseAPI
  • 内容:
    • AddForthParser(p: IStr2Nbt)
    • AddBackParser(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)?

详细使用指南,请参阅 How-To (由 GLM-5.1 生成)

外部文档

支持的表达式

请参阅 此文件 了解所有可用符号。

可用配置

请参阅 此文件 了解所有可用配置。