BBSMC Logo
模组整合包光影资源包软件汉化
数据包插件
论坛
登录
模组插件数据包光影资源包整合包软件汉化
登录
设置
模组菜单 - Mod Menu
模组菜单 - Mod Menu

模组菜单 - Mod Menu

此模组添加了一个用于查看模组列表的菜单界面

实用工具
6,09819a year ago
模组菜单 - Mod Menu

模组菜单 - Mod Menu

此模组添加了一个用于查看模组列表的菜单界面

6,098
19
实用工具

基本信息

我的世界Java版本

26.1-snapshot-4
1.21.x
1.20.x
1.19.x
1.18.x
1.17.x
1.16.4–1.16.5
1.16.1
1.15.2
1.14.4

平台

\n \n \n Fabric
\n \n \n \n \n \n \n \n \n Quilt

运行环境

客户端

其他链接

反馈问题 查看源码
Modrinth地址

搬运团队

BBSMC 官方搬运(1)
BBSMC 官方搬运(1)团队

搬运资源声明

对于可进行 JAR 文件搬运的许可证,我们提供站内下载服务;其他资源会跳转到原帖下载。资源更新可能不及时,建议前往资源内提供的原帖链接下载最新版本。

详情信息

许可证 MIT
发布于 a year ago
更新于 5 days ago
简介渲染图更新日志版本百科反馈讨论

模组菜单

模组屏幕的屏幕截图,在搜索栏和筛选按钮下方的左侧显示了一些模组的列表,其中选中了模组菜单。在屏幕的右侧,它显示了有关该模组的更多详细信息,例如作者、描述、链接、信用以及配置模组的按钮。

模组菜单允许您查看已安装的模组,如果模组支持,还可以快速轻松地访问模组的配置屏幕。

模组菜单还支持一些更高级的功能,例如可翻译的模组名称和描述,由于Patbox的文本占位符 API,在模组描述中支持QuickText 格式,从常规模组中筛选出库模组,为托管在 Modrinth 上或提供自己更新源的模组提供模组更新检查器,以及为我们提供的所有功能进行深度配置。

支持的平台

模组菜单目前可用于《我的世界:Java 版》1.14 或更高版本的 Fabric 或 Quilt。

开发者

模组菜单为开发者提供了许多 API,以改善他们的模组在模组菜单中的显示方式。这些以语言键、JSON 元数据甚至 Java API 的形式出现。

翻译 API

您可以在不触及任何 Java 代码的情况下翻译您的模组的名称、摘要和描述。只需以支持的格式将翻译键添加到您想要的任何语言中。

翻译 API 文档

这是模组菜单翻译成海盗语的一个示例。要创建您自己的翻译,只需将翻译键末尾的modmenu(不是开头的那个)替换为您自己的模组 ID,例如modmenu.descriptionTranslation.traverse。

en_pt.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

{
 ...
  "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 模块等。

任何其他值将被忽略,并且模组菜单不支持添加您自己的徽章。如果您有一个令人信服的新徽章用例,您可以在此处打开一个问题。

链接("links": { })

links对象允许模组作者在其描述的末尾添加自定义超链接。如果您在官方的fabric.mod.json元数据中指定了sources联系人,它也将包含在链接部分中。

links对象中的任何键都将包含在链接部分中,键将用作翻译键。例如,这个:

fabric.mod.json

"custom": {
    "modmenu": {
        "links": {
          "modmenu.discord": "https://discord.gg/jEGF5fb"
        }
    }
}

将显示为一个带有文本“Discord”的链接,因为“Discord”是模组菜单提供的“modmenu.discord”的英语翻译。

模组菜单提供了几个可用于链接的默认翻译。完整列表可以在模组菜单的语言文件这里中看到。所有默认链接翻译键都采用modmenu.<type>的形式。

如果您想添加自定义链接,也可以提供自己的翻译。确保为任何自定义键使用您自己的命名空间(而不是modmenu)。

父模组("parent": "mod_id" or { })

父模组用于将一个模组显示为另一个模组的子模组。这意味着用于将模组分为不同的模块。以下在fabric.mod.json中的元素将定义模组为'flamingo'模组的子模组:

fabric.mod.json

"custom": {
    "modmenu": {
        "parent": "flamingo"
    }
}

但是,如果您想将模组分组在一个父模组下,但父模组不是实际的模组,您也可以这样做。在下面的示例中,一个模组正在为父模组定义元数据。确保此元数据包含在使用该假/虚拟父模组的所有子模组中。这也可以用作可选父模组的回退,如果存在模组的实际元数据,它将被替换。

fabric.mod.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

"custom": {
    "modmenu": {
        "update_checker": false
    }
}

Quilt 元数据 API

由于模组菜单也支持 Quilt,Fabric 元数据 API 部分中的相同 API 也可用于 Quilt 模组,但自定义元数据的格式略有不同。

不是在"custom"块内的"modmenu"块,而是将"modmenu"块作为根对象中的元素。所以它应该看起来像:

quilt.mod.json

{
 ...
  "modmenu": {
    // 这里是您的链接、徽章等内容的位置
  }
}

Java API

要使用 Java API,您需要在您的 gradle 项目中将模组菜单作为编译时依赖项添加。这不会使您的模组需要模组菜单,但它将在您的环境中供您进行测试。

build.gradle

// 将 Terraformers maven 仓库添加到您的 repositories 块中
repositories {
  maven {
    name = "Terraformers"
    url = "https://maven.terraformersmc.com/"
  }
}

// 在您的环境中添加模组菜单作为依赖项
dependencies {
  modImplementation("com.terraformersmc:modmenu:${project.modmenu_version}")
}

然后,在您的gradle.properties中定义您正在使用的模组菜单的版本。您可以在这里获得最新的版本号,但如果您没有使用最新的《我的世界》版本,您可能需要不同的版本。有关版本的完整列表,请参阅版本页面。

gradle.properties

modmenu_version=VERSION_NUMBER_HERE

如果您不想在测试环境中使用它,但仍然想针对模组菜单进行编译以使用 Java API,您可以使用modCompileOnly而不是modImplementation(即使模组菜单未更新到您正在运行的《我的世界》版本,这也将起作用)。

Java API 文档

入门

要使用该 API,在一个类上实现ModMenuApi接口,并将其作为"modmenu"类型的入口点添加到您的fabric.mod.json中,如下所示:

fabric.mod.json

"entrypoints": {
  "modmenu": [ "com.example.mod.ExampleModMenuApiImpl" ]
}

模组配置屏幕

模组可以提供一个屏幕工厂,以提供一个自定义的配置屏幕,通过配置按钮打开。在您的 API 实现中实现getModConfigScreenFactory方法来实现此目的。

此功能的预期用例是为模组提供自己的配置屏幕。配置屏幕的模组 ID 由入口点起源的源模组容器自动确定。

提供的配置屏幕

模组可以提供屏幕工厂,为其他模组提供通过配置按钮打开的自定义配置屏幕。在您的 API 实现中实现getProvidedConfigScreenFactories方法来实现此目的。

此功能的预期用例是像 Cloth Config 这样的模组为使用其 API 的模组提供配置屏幕。

模组包徽章

模组可以通过实现attachModpackBadges方法为其他模组赋予Modpack徽章,例如通过以下方式:

@Override
public void attachModpackBadges(Consumer<String> consumer) {
	consumer.accept("modmenu"); // 表示'modmenu'是模组包的一部分
}

请注意,像《我的世界》本身和模组加载器这样的“内部”模组不能被赋予模组包徽章,因为它们不是在典型的模组包中分发的。

静态辅助方法

ModMenuApi还为想要更好地与模组菜单配合使用的模组提供了一些辅助方法,例如制作自己的模组按钮。

创建一个模组屏幕实例

您可以调用此方法来获取模组屏幕的实例:

Screen createModsScreen(Screen previous)

创建一个模组按钮Text

您可以调用此方法来获取将在模组菜单模组按钮上显示的文本:

Text createModsButtonText()
BBSMC Logo

中国最活跃的 Minecraft 中文资源社区

QQ 群:1078515449

资源

模组整合包光影资源包

社区

论坛汉化软件插件

帮助

服务条款隐私政策社区规则开源代码
设置

"Minecraft"以及"我的世界"为美国微软公司的商标,本站与微软公司没有从属关系。 本站与 Modrinth 无从属关系,网站遵循 LGPL 协议开源。

© 2019-2025 青岛柒兮网络科技有限公司 | 鲁B2-20210590 | 鲁ICP备2021009459号-12