Skip to content

语法规范

语法解析依赖于ModMultiVersionInterpreter(内置)

主要语法:

  • ( )
  • ! && ||
  • != > >= < <= ==
  • &/&&
  • |/||
  • =/==
  • 支持变量自动替换
  • 左部省略自动补充$$ ==

关键字

  • 关键字必须全大写
关键字说明
PRINT调试输出
IF/END IF/ELSE/ELSE IFIF-ELSE表达式
EXCLUDE黑名单
ONLY白名单
ONEWAY单向同步
RENAME重命名文件
( )优先级括号
!
& &&
| ||
= ==相等
!=不相等
!=不相等
>大于
>=大于等于
<小于
<=小于等于

注释符号

  • //
  • #

变量

以下变量会自动替换

变量名类型示例
$$String加载器版本文件夹名称fabric-1.16.5
$folderString文件所在文件夹名称
$loaderString加载器名称(小写)forge
$fileNameString文件名称(带后缀)test.java
$fileNameWithoutExtensionString文件名称(无后缀)test

布尔表达式

可以使用上述关键字进行组合

左部省略时自动补充$$ ==

最终计算时会替换掉变量

示例:

  • fabric-1.16.5会自动识别为$$ == fabric-1.16.5
  • >=fabric-1.16.5会自动识别为$$ >= fabric-1.16.5
  • fabric-1.16.5 || fabric-1.18.2会自动识别为$$ == fabric-1.16.5 || $$ == fabric-1.18.2

IF-ELSE

  • 注释符号开头
  • 必须以{注释符号} IF {布尔表达式}开头
  • 必须以{注释符号} END IF结尾
  • 允许使用{注释符号} ELSE,{注释符号} ELSE IF {布尔表达式}

示例:

java
    public static void setScreen(MinecraftClient client, Screen screen) {
// IF fabric-1.16.5
//        client.openScreen(screen);
// ELSE
//        client.setScreen(screen);
// END IF
}

fabric-1.16.5文件夹中

java
    public static void setScreen(MinecraftClient client, Screen screen) {
// IF fabric-1.16.5
    client.openScreen(screen);
// ELSE
//        client.setScreen(screen);
// END IF
}

其他文件夹中

java
    public static void setScreen(MinecraftClient client, Screen screen) {
// IF fabric-1.16.5
//        client.openScreen(screen);
// ELSE
    client.setScreen(screen);
// END IF
}

PRINT

输出调试,主要用于变量的调试

示例

// PRINT folder: $folder 
// PRINT loader: $loader