模组概述
这是一个在服务端运行的轻量模组,允许你拒绝某些从客户端发送来的合成操作。
更多信息可以查看 Wiki。
如何使用本模组?
在安装了此模组并加载存档后,此模组并不会主动修改任何东西。你需要在存档根目录下(即与 level.dat 同一目录下)创建并编辑名为“craftden1al.json”(不带引号,且在 Linux 系统上注意大小写)的文件。
craftden1al.json 示例:(“//”注释为方便理解,实际 JSON 文件并不允许注释)
{
"deny_mode": false, // 默认为“true”;可为“true”或“false”,“true”为黑名单模式,“false”为白名单模式
"patterns": [
[
{
"type": "rege_s_simple_datapack:all", // 一个字符串,表示条件类型的名称
"data": [] // 任意的 JSON 元素,取决于条件类型
}, // 一个包含键“type”与“data”的 JSON 对象,表示一个条件,当条件成立时才匹配配方;或“null”,表示无条件匹配
[
"minecraft:string", // 一个字符串表示物品的命名空间 ID(MC 1.7 后可用),或一个数值表示物品的数字 ID,或一个 JSON 对象表示更详细的物品(用法见下),或“null”表示空槽位
"minecraft:string", // 同上一行
"minecraft:string", // 同上一行
"minecraft:string" // 同上一行
], // 一个 JSON 数组,表示一个有序合成配方的物品顺序(矩形),从上至下,从左至右(即首个对应合成表的左上角,下一个往右,若往右没有,则往下并回到最左端),或一个无序合成配方的原材料列表(不能使用JSON对象的"count"键来表示多个物品,必须向数组重复添加元素);或“null”,表示原材料不重要
{
"id": "minecraft:wool", // 一个字符串表示物品的命名空间 ID(MC 1.7 后可用),或一个数值表示物品的数字 ID;没有此键值对,该物品将无效
"dv": 0, // 一个整型,表示物品的 DV(Data Value / Damage Value);没有此键值对则默认为“0”
"count": 1 // 一个整型,表示物品的数量;没有此键值对则默认为“1”
}, // 一个字符串或数值(用法见上),或一个 JSON 对象表示一个合成结果物品,或“null”表示合成结果物品不重要
2,
2 // 最后这两个“2”分别表示匹配有序合成表,且表宽为 2、高为 2;如果最后只有 1 个元素,不论元素为何,表示匹配无序合成表;如果最后没有元素,表示有序和无序合成表均匹配
]
] // 默认为“[]”;一个 JSON 数组,表示要匹配的所有合成配方图案;在黑名单模式下,会拒绝匹配到任一图案的配方在客户端合成;在白名单模式下,会拒绝没有匹配到任何图案的配方在客户端合成
}
如此一来,在编辑好文件并重新开启服务器 / 重新进入存档后,客户端玩家会发现只能够正常的使用 4 个线合成 1 个白色羊毛,尝试合成其他的配方时,虽然合成屏幕右侧能够显示合成结果物品,但是尝试取出物品时会“回弹”,达到了拒绝合成某些配方的效果。
另请注意
配方表请查阅 MC Wiki 历史,且有序合成表的宽和高都是严格“跟着源代码”走的。
例如钻石斧的宽高分别为 2、3,不可写成 3、3;且必须为 ["minecraft:diamond", "minecraft:diamond", "minecraft:diamond", "minecraft:stick", null, "minecraft:stick"],而不可写成其左右镜像形式(即 ["minecraft:diamond", "minecraft:diamond", "minecraft:stick", "minecraft:diamond", "minecraft:stick", null])。
如果你看不到源代码,最佳方案就是两个都写入图案。
常见问题
Q:客户端安装此模组有用吗?
A:客户端安装此模组,进入单人存档是有用的。进入多人游戏无作用,需要服务端安装。
Q:craftden1al.json 内定义的图案没有被加载?
A:请检查 craftden1al.json 的内容是否符合 JSON 的语法(特别注意逗号的有无、符号是否是半角、以及不能出现注释)。若有语法错误,游戏日志会有“Incorrect
JSON syntax of craftden1al.json, giving up
loading:原因”一行输出。以及确认键名是否拼写正确(如“patterns”写成了“pattern”导致没有加载任何图案),和配方表是否有误。
Q:在创造模式中,可以通过按数字键来取出结果物品槽位的物品而不回弹?
A:这是创造模式的特性,在生存/冒险模式中这种事情不会发生。
Q:craftden1al.json 会因为包含无效的物品 ID 等被覆写吗?
A:不会。本模组只会对该文件读取,不会写入。