HexParse
模组属性评比

距离显示结果还剩3票~

路过的这位少侠,你觉得这款Mod怎么样,可否愿意来评一评它呢?登录并评比
更新日志
  • 暂无日志..

历史编辑记录更多
    管理组

      暂无管理组..

    编辑组

      暂无编辑组..

    活跃
    开源

    HexParse

    0.0

    无人问津

    昨日指数: 19
    昨日平均指数: 62.986

    1.08万

    总浏览

    100.00%

    资料填充率


    如何下载?
    • 概述

      本模组为咒法学添加了一套指令,用于将一套(以注册名为主的)自定义代码解析为法术列表,以及反向解析。解析功能需要手中持有核心

      同时添加了用于给代码段添加换行与注释的新 iota 类型。

      (是 KubeJS 版本 的移植)

      示例代码示例解析后核心(启用彩色配对括号)
      HexParse-第1张图片HexParse-第2张图片

      (图中所示示例代码使用了此处的 VSCode 插件以支持基本的文本高亮,需要手动放置于“%USERPROFILE%\.vscode\extensions\hexParse_highlight”目录生效)


      内容介绍


      支持的可读写物品

      • 核心

      • 法术书

      • (1.20)结念绳

      • (HexOverpowered联动)造物

      • 该系统依据物品类识别,可于 HexParseAPI 或 IOMethod 添加更多支持物品。


      添加指令

      读写

      • /hexParse <代码文本> [重命名]:直接解析输入的代码至手持核心;若提供了“重命名”可选参数则会同时重命名核心;

      • /hexParse read:读取玩家手中的核心,将其内容解析为代码输出至聊天窗口;

      • /hexParse clipboard [重命名]:读取玩家剪贴板内容,将其作为代码解析至核心;“重命名”可选参数同上;

      • /hexParse clipboard_angles [重命名]:同上,但只会解析其中形如“wedsaq”的笔划序列段,并将其逐个转为图案;

      • /hexParse read_hexbug:同read,但会尝试将格式翻译以适配Discord内HexBug的`/patterns hex`命令;注:非图案常量、部分HexBug内过时注册名等仍需手动处理;

      • /hexParse share:(实验性质)同上,但同时广播核心原始内容与解析后代码至服务器内所有玩家;

      • /hexParse mind_stack ...:从玩家思维栈(法杖施法空间)读写Iota:

        • ... peek:读取栈内最后一个Iota,若栈为空则得到null;

        • ... push <code>:解析代码并压入思维栈;

        • ... push_clipboard:同上,但代码来自读取剪贴板;

      • /hexParse property ...:(Hexcellular联动)向质性Iota读写数据;出于安全性考虑,使用的质性名称会强制添加“_”前缀:

        • ... read <propName>:从指定质性读取内容;

        • ... write <propName> <code>:解析代码并写入指定质性;

        • ... clipboard <propName>:同上,但代码来自读取剪贴板;

      配置

      • /hexParse (macro/dialect) ...:管理存储于客户端的别名(dialect,不以#开头的1对1文本映射)和宏(以#开头,映射为不定长代码段):

        • ... list:列出所有保存的宏/别名;

        • ... define <key> <value>:定义一组宏/别名,可以为新定义或覆盖已有;

        • macro define_clipboard <key>:同上,但仅对宏可用,读取剪贴板作为宏内容;

        • ... remove <key>:移除一个保存的宏/别名(若存在);

      • /hexParse conflict:在不同图案拥有相同短名称(ID路径)时解决冲突:

        • 仅在物理客户端(单人游戏、本地联机)或拥有OP权限时启用;

        • ... 或 ... list:列出全部对应多个长ID的短名称;

        • ... list <短名称>:列出给定短名称下相互冲突的所有长ID;

        • ... set <短名称> <长ID>:重定向给定短名称至长图案ID;

      杂项 & 帮手

      • /hexParse donate [数量]:向自然捐赠等价于指定数量紫水晶粉的媒质,使用于为了使用此mod而产生负罪感的场合 ::);或许可以用来刷一些随消耗媒质增长的指标_(:з」∠)_

      • /hexParse lehmer [...数字列表]:计算给定排列(从升序出发,如0 1 2 3 4)对应的Lehmer Code;输入之间需要以空格分隔;所得结果可用于骗徒之策略

      OP指令

      • /hexParse unlock_great (unlockAll|lockAll|unlock <pattern id>|lock <pattern id>):配置当前世界的卓越法术解锁状态,子指令分别用于全部解锁、全部锁定与按ID锁定/解锁特定;该指令仅在卓越法术解析配置为 BY_SCROLL 时启用。


      添加图案

      • MoreIotas联动)注释转换:将输入注释iota转换为字符串iota;或将任何其它iota转换为注释iota;

      • 编码之策略:解析手中核心为代码并输出于聊天栏(等价于指令/hexParse read);出于安全考虑仅能运行于法杖绘制环境中;

      • 解码之策略:将剪贴板内容解析至手持核心内(等价于指令/hexParse clipboard);出于安全考虑仅能运行于法杖绘制环境中;

      • 内化卓越法术:读取并学习手持物品内的卓越法术;

      • 压缩注释之纯化:清除输入列表内各层级的所有注释;

      • 换行之纯化:生成一个包含指定数目个空格缩进的换行注释iota

      • 捐赠:等价于指令/hexParse donate

      详见指导书内图案章节的“HexParse新增图案”栏目。


      添加 iota 类型:CommentIota

      用于显示换行与注释等的 iota 类型,代码执行时会视为不做任何动作的图案


      支持的格式

      详见此文件


      其它功能

      在书中图案页,按下shift后将显示对应图案的注册id,可用于代码编写


      配置列表


      可配置的限制解析卓越法术功能

      在解析到受限的卓越法术时,一个特殊占位注释将会取代实际的图案iota输出,该占位符也支持反向解析回原始输入。

      示例
      HexParse-第3张图片
      HexParse-第4张图片

      配置中的 ParseGreatSpells 项指定了该部分功能的具体行为。

      注:解析包含卓越法术的核心为代码的功能始终不受限

      普通模式(默认),配置:BY_SCROLL

      卓越法术一开始解析受限,但可以通过获取包含卓越法术的道具(远古卷轴、核心、施法道具等)并使用特定图案读取学习其内容。

      (当然也可以指令直接解锁)

      简单模式(0.7版本之前的默认),配置:ALL

      可以不受限地直接解析任意卓越法术。

      困难模式,配置:DISABLED

      禁用正向解析卓越法术的功能。


      其它配置

      配置名类型描述

      CommentParsingMode

      enum

      如何处理注释解析为Iota:

      ALL:“comment_%s”手动注释与形如“”、“//”的代码注释都将被解析;

      MANUAL(默认):仅“comment_%s”被解析;

      DISABLED:所有注释均被忽略。

      IndentParsingMode
      enum

      如何处理换行与缩进解析为Iota:

      ALL(默认):文本缩进将被自动转为相应“tab_%d”;

      MANUAL:仅手动输入的“tab_%d”被解析;

      DISABLED:所有换行均被忽略。

      ShowUnknownNBT

      enum

      读取时如何处理暂不支持的iota nbt数据:

      KEEP_NBT(默认):将整个NBT以Base64串的形式存储;

      SHOW_NBT:输出 UNKNOWN(文本化NBT)

      SIMPLE:仅展示 UNKNOWN

      MaxBlankLineCountint最大允许多少个连续的空行存在;多余空行将被忽略。

      AddIndentInsideMacro

      bool

      缩进数会自动叠加至宏中的 tab_N 上。

      ParserBaseCost

      int

      解析(除注释换行外)的每个iota所需基础开销。

      (默认为0,门径、质性等常量会额外收取费用)

      FairPlayPropNames

      bool按输入文本将质性名称打乱为原本风格内容

      ShowColorfulNested

      bool是否将配对列表方括号(1.20版本中包括配对内省/反思图案)显示为彩色(默认开启)。


      (1.8.0版本之后)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)?

    短评加载中..