Mod Menu
modmenu · 158797314 загрузок · MIT
клиент: required · сервер: unsupported (заявлено автором мода)
Добавляет меню мода для просмотра списка установленных модов.
Описание
Меню модов

Меню модов позволяет просматривать установленные вами моды и, если они поддерживаются модом, обеспечивает быстрый и легкий доступ к экранам конфигурации мода.
Меню модов также поддерживает некоторые более продвинутые функции, такие как переводимые названия и описания модов, поддержка быстрого форматирования текста в описаниях модов благодаря API-интерфейсу Text Placeholder ](https://modrinth.com/mod/placeholder-api) Patbox], фильтрация библиотечных модов из обычных модов, проверка обновлений модов для модов, размещенных на Modrinth или которые предоставляют свои собственные источники обновлений, а также глубокая настройка для всех функций, которые мы предоставляем.
Поддерживаемые платформы
Меню модов в настоящее время доступно для Fabric или Quilt в Minecraft: Java Edition 1.14 или новее.
Разработчики
Меню модов включает в себя ряд API-интерфейсов, позволяющих разработчикам улучшить внешний вид их модов в меню модов. Они представлены в виде языковых ключей, метаданных JSON и даже Java API.
API перевода
Вы можете перевести название, краткое описание и описание вашего мода, не затрагивая код Java. Просто добавьте ключи перевода в поддерживаемом формате на любой язык, который вам нужен.
Документация API переводаВот пример перевода Mod Menu на Pirate Speak. Чтобы создать свой собственный, просто замените modmenu в конце (НЕ тот, что в начале) ключа перевода на свой собственный идентификатор мода, например modmenu.descriptionTranslation.traverse.
en_pt.json
"modmenu.nameTranslation.modmenu": "Menu o' mods!",
"modmenu.descriptionTranslation.modmenu": "Menu o' mods ye installed matey!",
"modmenu.summaryTranslation.modmenu": "Menu o' mods ye installed matey!"
Общий перевод здесь излишен и его не нужно включать, поскольку он аналогичен описанию, но он был включен для того, чтобы показать, что вы можете переводить краткое описание (краткое описание мода в одно предложение) отдельно от описания, даже на английском языке!
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": "Example API",
"description": "Modular example library",
"icon": "assets/example-api-module-v1/parent_icon.png",
"badges": [ "library" ]
},
"update_checker": true
}
}
}
Документация по API метаданных Fabric
Значки ("badges": [ ])
Хотя значок Client добавляется автоматически к модам, установленным только на стороне клиента (для этого установите "environment": "client" в fabric.mod.json), другие значки, такие как значки Library и Deprecated, требуют определения здесь.
Поддерживаемые значения:
library- следует назначать модам, которые являются чисто зависимыми от других модов, которые не должны показываться пользователю по умолчанию, если они не включат их.deprecated- следует назначать модам, которые существуют исключительно по устаревшим причинам, например, старый модуль API или что-то в этом роде.
Любые другие будут игнорироваться, а меню модов не поддерживает добавление собственных значков. Вы можете открыть проблему здесь, если у вас есть убедительный вариант использования нового значка.
Ссылки ("links": { })
Объект links позволяет авторам модов добавлять собственные гиперссылки в конец своего описания. Если вы укажете контакт sources в официальных метаданных fabric.mod.json, он также будет включен в раздел ссылок.
Любой ключ объекта links будет включен в раздел ссылок, причем этот ключ будет использоваться в качестве ключа перевода. Например, это:
fabric.mod.json
"custom": {
"modmenu": {
"links": {
"modmenu.discord": "https://discord.gg/jEGF5fb"
}
}
}
будет отображаться как ссылка с текстом «Discord», поскольку «Discord» — это английский перевод «modmenu.discord», предоставленный Mod Menu.
Меню модов предоставляет несколько переводов по умолчанию, которые можно использовать для ссылок. Полный список можно увидеть в языковом файле Mod Menu здесь. Все ключи перевода ссылок по умолчанию имеют вид modmenu.<type>.
Вы также можете предоставить свои собственные переводы, если хотите добавить пользовательские ссылки. Обязательно используйте ваше собственное пространство имен (в отличие от modmenu) для любых пользовательских ключей.
Родители ("parent": "mod_id" or { })
Родители используются для отображения мода как дочернего по отношению к другому. Это предназначено для модов, разделенных на разные модули. Следующий элемент в fabric.mod.json определит мод как дочерний по отношению к моду «фламинго»:
fabric.mod.json
"custom": {
"modmenu": {
"parent": "flamingo"
}
}
Однако, если вы хотите сгруппировать моды под родительским элементом, но родительский элемент не является реальным модом, вы тоже можете это сделать. В приведенном ниже примере мод определяет метаданные для родителя. Убедитесь, что эти метаданные включены во все дочерние элементы, которые используют поддельный/фиктивный родительский элемент. Это также можно использовать в качестве запасного варианта для необязательного родительского элемента; он будет заменен реальными метаданными мода, если они присутствуют.
fabric.mod.json
"custom": {
"modmenu": {
"parent": {
"id": "this-mod-isnt-real",
"name": "Fake Mod",
"description": "Do cool stuff with this fake mod",
"icon": "assets/real-mod/fake-mod-icon.png",
"badges": [ "library" ]
}
}
}
Фиктивные родительские моды поддерживают только следующие метаданные:
id(Строка)name(Строка)description(Строка)icon(Строка)badges(массив строк)
Отключить проверку обновлений ("update_checker": false)
По умолчанию программа проверки обновлений в меню модов будет использовать хэш jar вашего мода для поиска последней версии на Modrinth. Если он найдет соответствующий проект, он проверит наличие последней версии, которая поддерживает ваш загрузчик модов и версию Minecraft, и, если его хэш отличается от вашего существующего файла, он предложит пользователю, что доступно обновление.
Вы можете отключить проверку обновлений, установив для update_checker значение false в метаданных меню модов, например:
fabric.mod.json
"custom": {
"modmenu": {
"update_checker": false
}
}
API метаданных Quilt
Поскольку меню модов также поддерживает Quilt, те же API в разделе API метаданных Fabric также доступны для модов Quilt, но формат пользовательских метаданных немного отличается.
Вместо блока "modmenu" внутри блока "custom" вы помещаете блок "modmenu" в качестве элемента корневого объекта. Итак, это должно выглядеть так:
quilt.mod.json
{
...
"modmenu": {
// Here's where your links, badges, etc. stuff goes
}
}
API Java
Чтобы использовать Java API, вам необходимо добавить Mod Menu в качестве зависимости времени компиляции в ваш проект gradle. Это не приведет к тому, что вашему моду потребуется меню модов, но оно будет присутствовать в вашей среде, чтобы вы могли его протестировать.
build.gradle
// Add the Terraformers maven repo to your repositories block
repositories {
maven {
name = "Terraformers"
url = "https://maven.terraformersmc.com/"
}
}
// Add Mod Menu as a dependency in your environment
dependencies {
// Prior to Minecraft 26.x, use "modImplementation" instead
implementation("com.terraformersmc:modmenu:${project.modmenu_version}")
}
Затем определите версию меню модов, которую вы используете в своем gradle.properties. Вы можете получить номер последней версии здесь, но вам может понадобиться другая версия, если вы не используете последнюю версию Minecraft. Полный список версий см. на странице версии].
gradle.properties
modmenu_version=VERSION_NUMBER_HERE
Документация по Java APIЕсли вы не хотите использовать его в своей среде для тестирования, но все же хотите скомпилировать меню модов для использования Java API, вы можете использовать
modCompileOnlyвместоmodImplementation(это будет работать, даже если меню модов не обновлено до используемой вами версии Minecraft).
Начало работы
Чтобы использовать API, реализуйте интерфейс ModMenuApi в классе и добавьте его в качестве точки входа типа «modmenu» в свой fabric.mod.json следующим образом:
fabric.mod.json
"entrypoints": {
"modmenu": [ "com.example.mod.ExampleModMenuApiImpl" ]
}
Экраны конфигурации мода
Моды могут предоставить фабрику экранов, чтобы предоставить собственный экран конфигурации, который можно открыть с помощью кнопки конфигурации. Для этого реализуйте метод getModConfigScreenFactory в своей реализации API.
Предполагаемый вариант использования этого варианта — предоставить модам свои собственные экраны конфигурации. Идентификатор мода на экране конфигурации автоматически определяется исходным контейнером мода, из которого возникла точка входа.
Предоставленные экраны конфигурации
Моды могут предоставлять фабрики экранов для предоставления пользовательских экранов конфигурации, которые можно открывать с помощью кнопок конфигурации и для других модов. Для этого реализуйте метод getProvidedConfigScreenFactories в своей реализации API.
Предполагаемый вариант использования этого мода, такого как Cloth Config, для предоставления экранов конфигурации для модов, использующих его API.
Значки модпаков
Моды могут давать другим модам значок Modpack, реализуя метод attachModpackBadges, например, следующим образом:
@Override
public void attachModpackBadges(Consumer<String> consumer) {
consumer.accept("modmenu"); // Indicates that 'modmenu' is part of the modpack
}
Обратите внимание, что «внутренним» модам, таким как сам Minecraft и загрузчик модов, не может быть присвоен значок модпака, поскольку они не распространяются в составе типичного модпака.
Статические вспомогательные методы
ModMenuApi также предлагает несколько вспомогательных методов для модов, которые хотят лучше работать с меню модов, например создание собственных кнопок модов.
Создание экземпляра экрана модов
Вы можете вызвать этот метод, чтобы получить экземпляр экрана модов:
Screen createModsScreen(Screen previous)
Кнопка создания модов Text
Вы можете вызвать этот метод, чтобы получить текст, который будет отображаться на кнопке «Моды» в меню модов:
Text createModsButtonText()
Версии (60)
| Версия | Minecraft | Загрузчики | Файл |
|---|---|---|---|
20.0.3 |
26.2 | fabric, quilt | скачать |
18.0.2 |
26.1, 26.1.1, 26.1.2 | fabric, quilt | скачать |
17.0.1 |
1.21.11 | fabric, quilt | скачать |
11.0.5 |
1.21, 1.21.1 | fabric, quilt | скачать |
21.0.0 |
26.3 | fabric, quilt | скачать |
20.0.2 |
26.2 | fabric, quilt | скачать |
18.0.1 |
26.1, 26.1.1, 26.1.2 | fabric, quilt | скачать |
1.7.18 |
1.14.4 | fabric | скачать |
20.0.1 |
26.2 | fabric, quilt | скачать |
18.0.0 |
26.1, 26.1.1, 26.1.2 | fabric, quilt | скачать |
20.0.0 |
26.2 | fabric, quilt | скачать |
17.0.0 |
1.21.11 | fabric, quilt | скачать |
16.0.1 |
1.21.10, 1.21.9 | fabric, quilt | скачать |
15.0.2 |
1.21.6, 1.21.7, 1.21.8 | fabric, quilt | скачать |
14.0.2 |
1.21.5 | fabric, quilt | скачать |
13.0.4 |
1.21.4 | fabric, quilt | скачать |
12.0.1 |
1.21.2, 1.21.3 | fabric, quilt | скачать |
11.0.4 |
1.21, 1.21.1 | fabric, quilt | скачать |
16.0.0 |
1.21.10, 1.21.9 | fabric, quilt | скачать |
15.0.1 |
1.21.6, 1.21.7, 1.21.8 | fabric, quilt | скачать |
14.0.1 |
1.21.5 | fabric, quilt | скачать |
14.0.0 |
1.21.5 | fabric, quilt | скачать |
15.0.0 |
1.21.6, 1.21.7, 1.21.8 | fabric, quilt | скачать |
13.0.3 |
1.21.4 | fabric, quilt | скачать |
13.0.2 |
1.21.4 | fabric, quilt | скачать |
13.0.1 |
1.21.4 | fabric, quilt | скачать |
13.0.0 |
1.21.4 | fabric, quilt | скачать |
12.0.0 |
1.21.2, 1.21.2-pre1, 1.21.2-pre2, 1.21.2-pre3, 1.21.2-pre4, 1.21.2-pre5, 1.21.2-rc1, 1.21.3 | fabric, quilt | скачать |
11.0.3 |
1.21, 1.21.1 | fabric, quilt | скачать |
11.0.2 |
1.21, 1.21.1 | fabric, quilt | скачать |
11.0.1 |
1.21, 1.21.1, 1.21.1-rc1 | fabric, quilt | скачать |
11.0.0 |
1.21 | fabric, quilt | скачать |
9.2.0 |
1.20.4 | fabric, quilt | скачать |
10.0.0 |
1.20.5, 1.20.6 | fabric, quilt | скачать |
9.0.0 |
1.20.3, 1.20.3-pre4, 1.20.3-rc1, 1.20.4, 1.20.4-rc1, 23w51a, 23w51b, 24w03a, 24w03b, 24w04a, 24w05a, 24w05b, 24w06a, 24w07a | fabric, quilt | скачать |
8.0.1 |
1.20.2 | fabric, quilt | скачать |
8.0.0 |
1.20.2, 23w40a | fabric, quilt | скачать |
7.2.2 |
1.20.1 | fabric, quilt | скачать |
6.3.1 |
1.19.4, 23w12a, 23w13a, 23w13a_or_b, 23w14a | fabric, quilt | скачать |
7.2.1 |
1.20.1 | fabric, quilt | скачать |
5.1.0 |
1.19.3 | fabric, quilt | скачать |
6.3.0 |
1.19.4, 23w12a, 23w13a, 23w13a_or_b, 23w14a | fabric, quilt | скачать |
7.2.0 |
1.20.1 | fabric, quilt | скачать |
7.1.0 |
1.20.1 | fabric, quilt | скачать |
6.2.3 |
1.19.4, 23w12a, 23w13a, 23w13a_or_b, 23w14a | fabric, quilt | скачать |
7.0.1 |
1.20, 1.20.1, 1.20.1-rc1 | fabric, quilt | скачать |
7.0.0 |
1.20 | fabric, quilt | скачать |
6.2.2 |
1.19.4, 23w12a, 23w13a, 23w13a_or_b, 23w14a | fabric, quilt | скачать |
6.2.1 |
1.19.4, 23w12a, 23w13a, 23w13a_or_b, 23w14a | fabric, quilt | скачать |
1.14.5+build.30 |
1.16.1 | fabric | скачать |
6.2.0 |
1.19.4, 23w12a, 23w13a, 23w13a_or_b, 23w14a | fabric, quilt | скачать |
6.1.0 |
1.19.4, 23w12a, 23w13a, 23w13a_or_b, 23w14a | fabric, quilt | скачать |
5.0.2 |
1.19.3 | fabric, quilt | скачать |
2.0.17 |
1.17, 1.17.1 | fabric | скачать |
3.2.5 |
1.18.2 | fabric, quilt | скачать |
4.1.2 |
1.19.2 | fabric, quilt | скачать |
5.0.1 |
1.19.3 | fabric, quilt | скачать |
5.0.0 |
1.19.3 | fabric, quilt | скачать |
4.1.1 |
1.19.2 | fabric, quilt | скачать |
4.1.0 |
1.19.2 | fabric, quilt | скачать |