前言:
此教程参考官方WIKI
但是可能并不会同步mod更新(毕竟还是要以官方WIKI为重嘛)
1.准备工作
首先你需要个JSON文件(如果不知道最好先搜一下),并且里面应该包含可在浏览器(也就是互联网)上访问版本控制数据的链接(比如在GitHub上存储版本数据,或者在自己web服务器中)。
并且链接应该在你的config文件夹中的 versioner.cfg 的 versionDataURL 字段中添加链接。
(比如你的json文件在github.com/123/123/blob/master/ver.json,那么你应该要点击raw按钮跳转到源文件的url上复制此url即可(需要源文件的url ))
2.编写json
如果是小白,不懂json的话,最好还是搜下json格式与编辑看一下,以为json的格式很容易出错!
下面是WIKI中提到的示例json的第三方注解汉化版 (注意,在编写完成后必须删除注解,也就是包括//文字内容)
{
"versionName": "1.2.0", // 这是最新版本的版本名称(也就是1.12.2或者1.7.10这样的)
"versionCode": 20, // 版本代码用于比较版本。 更大的版本代码 = 更新的版本。 如果你不填写这个,versionName 将用于比较版本,但它可能不准确(如果您更改了此项,注意在整合包的config文件夹中的versioner.cfg 的I:versionCode也更改成一样的数字)
"versionFormat": "%versionName%", //您可以使用 %variable_name% 格式来表示变量。 JSON 中不是列表或对象的所有其他字段都是变量。
"sponsors": [{ // 赞助商对象由赞助商对象数组组成(此项可以删除,但是删除时请注意要删干净,不能多括号或者少括号)
"category": "gold",
"displayName": "sponsors.test", // 您可以在此处使用翻译键,这将是实际显示的名称
"titleFormat": ["GOLD", "BOLD"], // 如何在游戏中显示类别标题。 查看所有可用选项的 Minecraft 格式代码。
"sponsorFormat": ["GOLD"],
"sponsors": [{
"name": "TCreopargh",
"uuid": "2d06868c-6d9b-433a-a356-1a7993b62b8d" // 您可以使用名称或 uuid 来代表玩家。 当两者都定义时,UUID 优先。
},
{
"name": "Notch"
},
"Dinnerbone" // 您可以在此处使用字符串而不是对象。 如果它与 uuid 格式不匹配,它将作为名称。
]
},
{
"category": "diamond",
"titleFormat": ["AQUA", "BOLD"],
"sponsorFormat": ["AQUA"],
"sponsors": [{
"name": "Herobrine"
}]
}
],
"sponsorMessage": ["", { // 为此使用 Minecraft 的原始 JSON 文本格式(例如发送 /tellraw 命令的方式),此文本显示在赞助商列表的底部。(此项可删除)
"text": "Thank all of you for sponsoring!",
"color": "gold"
}, {
"text": "\n"
}, {
"text": "Become a sponsor!",
"color": "red",
"bold": true,
"underlined": true,
"clickEvent": {
"action": "open_url",
"value": "http://patreon.tcreopargh.xyz/"
}
}],
"changelogs": { //更新日志
"1.2.0": [ //1.2.0更新版本的内容
"Fixed some more bugs", //具体内容
"Removed Herobrine",
"Fixed the version number being too low"
],
"1.1.0": [ //1.1.0更新版本的内容
"Fixed some bugs" //具体内容
]
},
"variables": { // 您可以使用变量来格式化字符串或在 CraftTweaker 中获取它们(此项应该能删除)
"testInt": 1000,
"testString": "abcde",
"testArray": [
1,
2,
3
],
"testData": {
"a": [
"111",
"222",
"333"
]
}
},
"welcomeMessage": ["", { // 欢迎信息,也是原始 JSON 格式
"text": "Hello, welcome to play ", //欢迎文本
"color": "gold" //颜色
}, {
"text": "TestPack!",
"color": "aqua"
}, {
"text": "\n"
}, {
"text": "Join our discord server!",
"bold": true, //是否加粗
"underlined": true, //是否加下划线
"color": "blue", //颜色
"clickEvent": {
"action": "open_url", //打开url的动作
"value": "https://discord.gg/WbrB4VaUsz" //url链接
}
}]
}
3.上传到仓库
如果不知道上传到仓库的话还是建议你别用这个了吧
(毕竟需要网络存储你的配置文件)
配置文件分析
general {
# 在每行更新日志之前添加了额外的文本(类似于小尾巴,只不过是放在前面)
S:changelogPrefix= -
# 消息边框的样式(在第二个等号以及后面是自定义文本)
S:delimiter=========================================
# 如果设置为 false,mod 将不会尝试获取版本数据。
# 整合包使用者可以在此关闭版本检测
B:enableVersionChecking=true
# 你的整合包名称
S:modpackName=
# 当用户点击更新按钮时打开的 url,注意必须要加http:// 或 https://
# 注意:这可以被 ' 覆盖
S:updateURL=
# 在连接因超时而关闭之前连接到 URL 的时间。
I:versionCheckerConnectTimeout=5000
# 在连接因超时而关闭之前要读取多少时间。
I:versionCheckerReadTimeout=5000
# 将从哪里获取版本数据 JSON,注意必须要加http:// 或 https://
S:versionDataURL=
##########################################################################################################
# 版本通知
#--------------------------------------------------------------------------------------------------------#
# 更新通知和消息
##########################################################################################################
versionnotifications {
# 如果有可用更新,首次登录世界时显示聊天消息?
B:showLoginChatUpdateNotification=true
# 如果为 true,将在此 mod 无法获取所有更新数据时,会在聊天中显示错误消息
B:showUpdateCheckFailedMessage=true
# 如果在 JSON 中定义了welcomeMessage,则在登录世界时在聊天中显示消息
B:showWelcomeMessage=true
}
##########################################################################################################
# 当前版本
#--------------------------------------------------------------------------------------------------------#
# 用于设置当前版本信息的配置
# 对于整合包开发者:确保在更新整合包时更改这些!
##########################################################################################################
currentversion {
# 格式化当前版本时使用的变量。 每行一个条目,格式为 key=value
# 值必须遵循JSON格式,例如字符串必须用双引号引起来
S:variables <
>
# 当前版本的版本代码,不能为负数(如:1 或者11)
I:versionCode=0
# 如何输出格式化的版本名称(仅用于显示当前版本)
S:versionFormat=%currentVersionName%
# 当前版本的版本名称
S:versionName=1.0.0
}
##########################################################################################################
# 主菜单
#--------------------------------------------------------------------------------------------------------#
# 主菜单渲染的配置
##########################################################################################################
mainmenu {
# 当用户单击文本时,他们将被转到此链接。
# 将其留空以使其与 updateURL 相同,或者将其留空以根本不向他们转到此链接
S:clickLink=
# 是否启用此模组添加的主菜单渲染。 如果设置为 false,则以下所有选项都将不起作用。
B:enableMainMenu=true
# 主菜单文本和屏幕边框之间的间距。 (水平)(当文本位置为中心时忽略)
I:marginHorizontal=2
# 主菜单文本和屏幕边框之间的间距。 (垂直)(当文本位置为中心时忽略)
I:marginVertical=2
# 放置主菜单文本的位置。 必须是以下之一:'TOP_LEFT'(左上)、'TOP_RIGHT'(右上)、'BOTTOM_LEFT'(左下)、'BOTTOM_RIGHT'(右下)、'TOP_CENTER'(上居中)、'BOTTOM_CENTER'(下居中)、'CENTER_LEFT'(左居中)、'CENTER_RIGHT'(右居中)、'CENTER'(居中)
S:menuTextPosition=TOP_LEFT
# 主菜单文本的默认颜色,尽管您始终可以使用颜色代码来覆盖它。
# 必须转换成十进制整数。 (0xffffff -> 16777215)
I:textColor=16777215
# 显示在主菜单上的文本。 您可以在字符串中使用 %versionName% 等变量。
# 注意:这可以被获取的版本数据 JSON 覆盖!
S:textLines <
§eVersion§f: §9%currentVersionName%
%isUpdateAvailable%
>
# 将鼠标悬停在文本上时显示的文本,作为工具提示。
# 注意:这可以被获取的版本数据 JSON 覆盖!
S:tooltipText <
§eCurrent Version§f: §6%currentVersionName% (%currentVersionCode%)
§2Latest Version§