搜索历史
清空
暂无搜索历史
论坛热搜
1
乌托邦探险之旅3.2
热
3
上古老物 冒险者传说 by WhiteSword
新
5
洛心斗罗-福利|公会据点战|武魂||抽奖|最终版
2
Jenny — 有趣的模拟女友模组|珍妮模组
热
4
幻虚斗罗V1.5
6
水星迫降——在未知的世界中挣扎
登陆 注册 QQ登陆
快捷导航
查看: 112|回复: 0

模组菜单 - Mod Menu

[复制链接]

5159

主题

5

回帖

6129

积分

龙❁妻

Rank: 8Rank: 8

经验
6129 EP
金粒
928 粒
绿宝石
20 块
爱心
0 点
发表于 2025-7-25 18:02:06 | 显示全部楼层 |阅读模式
此模组添加了一个用于查看模组列表的菜单界面
#模组菜单
![模组屏幕的屏幕截图,在搜索栏和筛选按钮下方的左侧显示了一些模组的列表,其中选中了模组菜单。在屏幕的右侧,它显示了有关该模组的更多详细信息,例如作者、描述、链接、信用以及配置模组的按钮。](https://cdn.bbsmc.net/bbsmc/data/cached_images/04bd33027facb77f1b445c6b8f17a0274f1569bc.webp)
模组菜单允许您查看已安装的模组,如果模组支持,还可以快速轻松地访问模组的配置屏幕。
模组菜单还支持一些更高级的功能,例如可翻译的模组名称和描述,由于[Patbox](https://ko-fi.com/patbox)的[文本占位符API](https://bbsmc.net/mod/placeholder-api),在模组描述中支持[QuickText格式](https://placeholders.pb4.eu/user/quicktext/),从常规模组中筛选出库模组,为托管在Modrinth上或提供自己更新源的模组提供模组更新检查器,以及为我们提供的所有功能进行深度配置。
###支持的平台
模组菜单目前可用于《我的世界:Java版》1.14或更高版本的Fabric或Quilt。
##开发者
模组菜单为开发者提供了许多API,以改善他们的模组在模组菜单中的显示方式。这些以语言键、JSON元数据甚至JavaAPI的形式出现。
###翻译API
您可以在不触及任何Java代码的情况下翻译您的模组的名称、摘要和描述。只需以支持的格式将翻译键添加到您想要的任何语言中。
翻译API文档
这是模组菜单翻译成海盗语的一个示例。要创建您自己的翻译,只需将翻译键末尾的`modmenu`(***不是***开头的那个)替换为您自己的模组ID,例如`modmenu.descriptionTranslation.traverse`。
`en_pt.json`
```json
\"modmenu.nameTranslation.modmenu\":\"菜单o\'模组!\",
\"modmenu.descriptionTranslation.modmenu\":\"菜单o\'模组ye安装matey!\",
\"modmenu.summaryTranslation.modmenu\":\"菜单o\'模组ye安装matey!\"
```
>这里的摘要翻译是多余的,不需要包含,因为它与描述相同,但它被包含是为了表明您可以将摘要(模组的简短的一句话描述)与描述分开翻译,即使是在英语中!
###Fabric元数据API
您可以在`fabric.mod.json`中的元数据中添加许多内容。
所有这些都添加到`fabric.mod.json`中为模组菜单的元数据的自定义块中。这是此API提供的许多功能的示例用法:
`fabric.mod.json`
```json5
{
...
\"custom\":{
\"modmenu\":{
\"links\":{
\"modmenu.discord\":\"https://discord.gg/jEGF5fb\"
},
\"badges\":[\"library\",\"deprecated\"],
\"parent\":{
\"id\":\"example-api\",
\"name\":\"示例API\",
\"description\":\"模块化示例库\",
\"icon\":\"assets/example-api-module-v1/parent_icon.png\",
\"badges\":[\"library\"]
},
\"update_checker\":true
}
}
}
```
Fabric元数据API文档
####徽章(`\"badges\":[]`)
虽然`Client`徽章会自动添加到仅设置为客户端的模组中(在`fabric.mod.json`中设置`\"environment\":\"client\"`来实现),但其他徽章,如`Library`和`Deprecated`徽章需要在此处定义。
支持的值:
-`library`-应分配给纯粹作为其他模组依赖项的模组,默认情况下不应向用户显示,除非他们将其打开。
-`deprecated`-应分配给纯粹出于遗留原因存在的模组,例如旧的API模块等。
任何其他值将被忽略,并且模组菜单不支持添加您自己的徽章。如果您有一个令人信服的新徽章用例,您可以在此处[打开一个问题](https://github.com/TerraformersMC/ModMenu/issues)。
####链接(`\"links\":{}`)
`links`对象允许模组作者在其描述的末尾添加自定义超链接。如果您在官方的`fabric.mod.json`元数据中指定了`sources`联系人,它也将包含在链接部分中。
`links`对象中的任何键都将包含在链接部分中,键将用作翻译键。例如,这个:
`fabric.mod.json`
```json
\"custom\":{
\"modmenu\":{
\"links\":{
\"modmenu.discord\":\"https://discord.gg/jEGF5fb\"
}
}
}
```
将显示为一个带有文本“Discord”的链接,因为“Discord”是模组菜单提供的“modmenu.discord”的英语翻译。
模组菜单提供了几个可用于链接的默认翻译。完整列表可以在模组菜单的语言文件[这里](https://github.com/TerraformersMC/ModMenu/blob/-/src/main/resources/assets/modmenu/lang/en_us.json)中看到。所有默认链接翻译键都采用`modmenu.
`的形式。
如果您想添加自定义链接,也可以提供自己的翻译。确保为任何自定义键使用***您自己的命名空间***(而不是`modmenu`)。
####父模组(`\"parent\":\"mod_id\"or{}`)
父模组用于将一个模组显示为另一个模组的子模组。这意味着用于将模组分为不同的模块。以下在`fabric.mod.json`中的元素将定义模组为\'flamingo\'模组的子模组:
`fabric.mod.json`
```json
\"custom\":{
\"modmenu\":{
\"parent\":\"flamingo\"
}
}
```
但是,如果您想将模组分组在一个父模组下,但父模组不是实际的模组,您也可以这样做。在下面的示例中,一个模组正在为父模组定义元数据。确保此元数据包含在使用该假/虚拟父模组的所有子模组中。这也可以用作可选父模组的回退,如果存在模组的实际元数据,它将被替换。
`fabric.mod.json`
```json
\"custom\":{
\"modmenu\":{
\"parent\":{
\"id\":\"this-mod-isnt-real\",
\"name\":\"虚拟模组\",
\"description\":\"使用这个虚拟模组做很酷的事情\",
\"icon\":\"assets/real-mod/fake-mod-icon.png\",
\"badges\":[\"library\"]
}
}
}
```
虚拟父模组仅支持以下元数据:
-`id`(字符串)
-`name`(字符串)
-`description`(字符串)
-`icon`(字符串)
-`badges`(字符串数组)
####禁用更新检查器(`\"update_checker\":false`)
默认情况下,模组菜单的更新检查器将使用您的模组的jar文件的哈希值在Modrinth上查找最新版本。如果它找到匹配的项目,它将检查支持您的模组加载器和《我的世界》版本的最新版本,如果它的哈希值与您现有的文件不同,它将提示用户有可用的更新。
您可以通过在您的模组菜单元数据中像这样将`update_checker`设置为`false`来禁用更新检查器:
`fabric.mod.json`
```json
\"custom\":{
\"modmenu\":{
\"update_checker\":false
}
}
```
###Quilt元数据API
由于模组菜单也支持Quilt,Fabric元数据API部分中的相同API也可用于Quilt模组,但自定义元数据的格式略有不同。
不是在`\"custom\"`块内的`\"modmenu\"`块,而是将`\"modmenu\"`块作为根对象中的元素。所以它应该看起来像:
`quilt.mod.json`
```json5
{
...
\"modmenu\":{
//这里是您的链接、徽章等内容的位置
}
}
```
###JavaAPI
要使用JavaAPI,您需要在您的gradle项目中将模组菜单作为编译时依赖项添加。这不会使您的模组需要模组菜单,但它将在您的环境中供您进行测试。
`build.gradle`
```gradle
//将Terraformersmaven仓库添加到您的repositories块中
repositories{
maven{
name=\"Terraformers\"
url=\"https://maven.terraformersmc.com/\"
}
}
//在您的环境中添加模组菜单作为依赖项
dependencies{
modImplementation(\"com.terraformersmc:modmenu:${project.modmenu_version}\")
}
```
然后,在您的`gradle.properties`中定义您正在使用的模组菜单的版本。您可以在[这里](https://bbsmc.net/mod/modmenu/version/latest)获得最新的版本号,但如果您没有使用最新的《我的世界》版本,您可能需要不同的版本。有关版本的完整列表,请参阅[版本页面](https://bbsmc.net/mod/modmenu/versions)。
`gradle.properties`
```properties
modmenu_version=VERSION_NUMBER_HERE
```
>如果您不想在测试环境中使用它,但仍然想针对模组菜单进行编译以使用JavaAPI,您可以使用`modCompileOnly`而不是`modImplementation`(即使模组菜单未更新到您正在运行的《我的世界》版本,这也将起作用)。
JavaAPI文档
###入门
要使用该API,在一个类上实现`ModMenuApi`接口,并将其作为\"modmenu\"类型的入口点添加到您的`fabric.mod.json`中,如下所示:
`fabric.mod.json`
```json
\"entrypoints\":{
\"modmenu\":[\"com.example.mod.ExampleModMenuApiImpl\"]
}
```
###模组配置屏幕
模组可以提供一个屏幕工厂,以提供一个自定义的配置屏幕,通过配置按钮打开。在您的API实现中实现`getModConfigScreenFactory`方法来实现此目的。
此功能的预期用例是为模组提供自己的配置屏幕。配置屏幕的模组ID由入口点起源的源模组容器自动确定。
###提供的配置屏幕
模组可以提供屏幕工厂,为其他模组提供通过配置按钮打开的自定义配置屏幕。在您的API实现中实现`getProvidedConfigScreenFactories`方法来实现此目的。
此功能的预期用例是像ClothConfig这样的模组为使用其API的模组提供配置屏幕。
###模组包徽章
模组可以通过实现`attachModpackBadges`方法为其他模组赋予`Modpack`徽章,例如通过以下方式:
```java
@Override
publicvoidattachModpackBadges(Consumer
consumer){
        consumer.accept(\"modmenu\");//表示\'modmenu\'是模组包的一部分
}
```
请注意,像《我的世界》本身和模组加载器这样的“内部”模组不能被赋予模组包徽章,因为它们不是在典型的模组包中分发的。
###静态辅助方法
`ModMenuApi`还为想要更好地与模组菜单配合使用的模组提供了一些辅助方法,例如制作自己的模组按钮。
####创建一个模组屏幕实例
您可以调用此方法来获取模组屏幕的实例:
```java
ScreencreateModsScreen(Screenprevious)
```
####创建一个模组按钮`Text`
您可以调用此方法来获取将在模组菜单模组按钮上显示的文本:
```java
TextcreateModsButtonText()
```







===下载地址===
所有版本下载地址已整理至网盘,请下载对应文件:
游客,如果您要查看本帖隐藏内容请回复

文件名:downloads/模组菜单-ModMenu.txt
楼主 2025-7-25 18:02:06 回复 收起回复
小僵尸论坛感谢有你~
回复 论坛版权

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 手机动态码快速登录

本版积分规则



介绍

我的世界(Minecraft)小僵尸论坛
收录了来自各地的我的世界(MC)爱好者们的各种资源

须知: 切勿滥用举报,任何与举报相关的信息必须属实!

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标 本站与Mojang以及微软公司没有从属关系

官方

新浪微博 腾讯微博 微信公众号 投稿规则 版权声明 捐助我们

官方QQ①群: 291907844 (点击加群)
官方QQ②群: 421312192
官方QQ③群: 528726532

我的世界(Minecraft)小僵尸论坛

新会员

QQ|Archiver|手机版|小黑屋|Minecraft(我的世界)小僵尸论坛 |网站地图

GMT+8, 2025-10-12 14:43 , Processed in 0.226891 second(s), 112 queries .

快速回复 返回顶部 返回列表