Перейти к содержимому

Mod Menu

Добавляет меню модов для просмотра списка установленных модов.

от Prospector· gniftygnome, modmuss50Утилиты
FabricQuilt
Загрузчики
FabricQuilt
Скачиваний на Modrinth
155 млн
Подписчиков на Modrinth
27,6 тыс.
версии
203
Обновлён
13 октября 202613 окт.
Опубликован
в 2020
Mod Menu Banner — Fancy ModMenu banner · свайп

Коротко о моде

Работает на Fabric и Quilt
Для Minecraft 1.16.1, 1.16.4–26.3 …
Ставится только в игру; на сервер ставить не нужно
Последняя версия — 22.0.0-alpha.2 от 13 октября 2026
Нужен Fabric API и Text Placeholder API
Лицензия MIT — бесплатно
Где нужен
В игреобязателенНа серверене нужен

Ставится только в игру; на сервер ставить не нужно

Версии игры1.15.2, 1.16.1, 1.16.4–26.3 …
Описание переведено автоматическиПоказать оригинал (EN)

Mod Menu

Скриншот экрана модов, показывающий список нескольких модов слева под строкой поиска и кнопкой фильтров, где выбран Mod Menu. Справа отображается больше информации о моде, такой как авторы, описание, ссылки, благодарности и кнопка для настройки мода.

Mod Menu позволяет просматривать установленные моды и, если мод это поддерживает, обеспечивает быстрый и удобный доступ к экранам настройки мода.

Mod Menu также поддерживает некоторые более продвинутые функции, такие как переводимые названия и описания модов, поддержку форматирования QuickText в описаниях модов благодаря Text Placeholder API от Patbox, фильтрацию библиотечных модов из обычных модов, проверку обновлений для модов, размещённых на Modrinth или предоставляющих собственные источники обновлений, и глубокую настройку всех предоставляемых нами функций.

Поддерживаемые платформы

Mod Menu в настоящее время доступен для Fabric или Quilt на Minecraft: Java Edition 1.14 или новее.

Разработчикам

Mod Menu включает ряд API для разработчиков, чтобы улучшить отображение их мода в Mod Menu. Они представлены в виде языковых ключей, метаданных JSON и даже Java API.

API переводов

Вы можете перевести название, краткое описание и описание вашего мода, не трогая никакой Java-код. Просто добавьте ключи перевода в поддерживаемом формате на любой желаемый язык.

Документация API переводов

Вот пример переводов Mod Menu на пиратский говор. Чтобы создать свои, просто замените modmenu в конце (*НЕ* тот, что в начале) ключа перевода на свой ID мода, например 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

Есть ряд вещей, которые вы можете добавить только с помощью метаданных в вашем fabric.mod.json.

Все они добавляются в пользовательский блок в вашем fabric.mod.json для метаданных Mod Menu. Вот пример использования многих функций, которые предоставляет этот 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 или подобное.

Все остальные будут проигнорированы, и Mod Menu не поддерживает добавление собственных значков. Вы можете открыть issue здесь, если у вас есть веская причина для добавления нового значка.

Ссылки ("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 предоставляет несколько стандартных переводов, которые можно использовать для ссылок. Полный список можно посмотреть в языковом файле Mod Menu здесь. Все стандартные ключи перевода ссылок имеют форму `modmenu.`.

Вы также можете предоставить собственные переводы, если хотите добавить свои ссылки. Обязательно используйте *своё собственное пространство имён* (а не modmenu) для любых собственных ключей.

Родители ("parent": "mod_id" или { })
Image showing the Fabric API parent mod and some Fabric API child mods displayed hierarchically in ModMenu

Родители используются для отображения мода как дочернего по отношению к другому моду. Это предназначено для модов, разделённых на разные модули. Следующий элемент в fabric.mod.json определит мод как дочерний по отношению к моду 'flamingo':

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 (String)
  • name (String)
  • description (String)
  • icon (String)
  • badges (Array of Strings)
Отключение проверки обновлений ("update_checker": false)

По умолчанию проверка обновлений Mod Menu использует хеш jar-файла вашего мода для поиска последней версии на Modrinth. Если она находит подходящий проект, она проверяет последнюю версию, поддерживающую ваш загрузчик модов и версию Minecraft, и если у неё другой хеш, отличный от вашего существующего файла, она уведомит пользователя о доступном обновлении.

Вы можете отключить проверку обновлений, установив update_checker в false в метаданных Mod Menu следующим образом:

fabric.mod.json

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

Quilt Metadata API

Поскольку Mod Menu также поддерживает Quilt, те же API из раздела Fabric Metadata API также доступны для модов Quilt, но формат пользовательских метаданных немного отличается.

Вместо блока "modmenu" внутри блока "custom" ты помещаешь блок "modmenu" как элемент в корневой объект. То есть это должно выглядеть так:

quilt.mod.json

{
  ...
  "modmenu": {
    // Здесь размещаются твои ссылки, значки и прочее
  }
}

Java API

Чтобы использовать Java API, тебе нужно добавить Mod Menu как зависимость времени компиляции в твой gradle-проект. Это не сделает Mod Menu обязательным для твоего мода, но он будет присутствовать в твоём окружении для тестирования.

build.gradle

// Добавь maven-репозиторий Terraformers в блок repositories
repositories {
  maven {
    name = "Terraformers"
    url = "https://maven.terraformersmc.com/"
  }
}

// Добавь Mod Menu как зависимость в твоё окружение
dependencies {
  // До Minecraft 26.x используй "modImplementation"
  implementation("com.terraformersmc:modmenu:${project.modmenu_version}")
}

Затем укажи версию Mod Menu, которую используешь, в своём gradle.properties. Последний номер версии можно узнать здесь, но тебе может понадобиться другая версия, если ты не используешь последнюю версию Minecraft. Полный список версий смотри на странице версий.

gradle.properties

modmenu_version=VERSION_NUMBER_HERE

Если ты не хочешь держать его в своём окружении для тестирования, но всё ещё хочешь компилироваться против Mod Menu для использования Java API, можешь использовать modCompileOnly вместо modImplementation (это сработает, даже если Mod Menu не обновлён до версии Minecraft, на которой ты играешь).

Документация Java API

Начало работы

Чтобы использовать API, реализуй интерфейс ModMenuApi в классе и добавь его как точку входа типа "modmenu" в своём fabric.mod.json вот так:

fabric.mod.json

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

Экраны конфигурации модов

Моды могут предоставлять фабрику Screen, чтобы открывать собственный экран конфигурации по кнопке настроек. Для этого реализуй метод getModConfigScreenFactory в своей реализации API.

Предполагаемое применение — чтобы моды предоставляли свои собственные экраны конфигурации. ID мода экрана конфигурации автоматически определяется по исходному контейнеру мода, из которого пришла точка входа.

Предоставляемые экраны конфигурации

Моды могут предоставлять фабрики Screen, чтобы открывать собственные экраны конфигурации по кнопкам настроек и для других модов. Для этого реализуй метод getProvidedConfigScreenFactories в своей реализации API.

Предполагаемое применение — чтобы такой мод, как Cloth Config, предоставлял экраны конфигурации для модов, использующих его API.

Значки модпаков

Моды могут выдавать другим модам значок Modpack, реализуя метод attachModpackBadges, например так:

@Override
public void attachModpackBadges(Consumer<String> consumer) {
    consumer.accept("modmenu"); // Указывает, что 'modmenu' входит в модпак
}

Учти, что «внутренним» модам, таким как сам Minecraft и загрузчик модов, нельзя выдать значок модпака, так как они не распространяются в составе типичного модпака.

Статические вспомогательные методы

ModMenuApi также предлагает несколько вспомогательных методов для модов, которые хотят лучше работать с Mod Menu, например для создания собственных кнопок Mods.

Создание экземпляра экрана Mods

Ты можешь вызвать этот метод, чтобы получить экземпляр экрана Mods:

Screen createModsScreen(Screen previous)
Создание Text для кнопки Mods

Ты можешь вызвать этот метод, чтобы получить Text, который будет отображаться на кнопке Mods в Mod Menu:

Text createModsButtonText()

[![CurseForge](https://img.shields.io/badge/CurseForge-Download-orange?style=for-the-badge&logo=curseforge)](https://www.curseforge.com/minecraft/mc-mods/just-enough-beacons)
[![Modrinth](https://img.shields.io/badge/Modrinth-Download-green?style=for-the-badge&logo=modrinth)](https://modrinth.com/mod/just-enough-beacons)
[![GitHub](https://img.shields.io/badge/GitHub-Source-black?style=for-the-badge&logo=github)](https://github.com/ToCraft/JustEnoughBeacons)

**Just Enough Beacons** — это небольшой клиентский мод, который показывает эффекты маяка в интерфейсе маяка.

![preview](https://cdn.modrinth.com/data/just-enough-beacons/images/preview.png)

## Возможности

- Показывает эффекты маяка в интерфейсе маяка
- Показывает уровень эффекта
- Показывает радиус действия эффекта
- Работает с **Fabric**, **NeoForge** и **Forge**

## Зачем это нужно?

В ванильном Minecraft интерфейс маяка показывает только названия эффектов, но не их уровень или радиус действия. Этот мод добавляет эту информацию, чтобы вам не приходилось гадать, какой у вас уровень эффекта и как далеко он действует.

## Совместимость

- **Minecraft:** 1.16.5 - 1.21.x
- **Загрузчики:** Fabric, NeoForge, Forge
- **Сторона:** только клиент

## Часто задаваемые вопросы

**В: Работает ли это на серверах?**
О: Да, мод работает на серверах, так как он полностью клиентский.

**В: Нужно ли устанавливать его на сервер?**
О: Нет, устанавливать нужно только на клиент.

**В: Будет ли это работать с другими модами на маяки?**
О: В большинстве случаев да, но могут быть конфликты с модами, которые сильно изменяют интерфейс маяка.

## Ссылки

- [CurseForge](https://www.curseforge.com/minecraft/mc-mods/just-enough-beacons)
- [Modrinth](https://modrinth.com/mod/just-enough-beacons)
- [GitHub](https://github.com/ToCraft/JustEnoughBeacons)

Частые вопросы

Как установить Mod Menu?

Установите Fabric под свою версию Minecraft, скачайте Mod Menu под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.

Для каких версий Minecraft есть Mod Menu?

У Mod Menu есть сборки для Minecraft 1.14.4, 1.15.2, 1.16.1, 1.16.4–26.3.

Нужен ли Mod Menu на сервере?

Ставится только в игру; на сервер ставить не нужно

Лицензия и источник
MIT Licenseможно свободно использовать и распространять с указанием автора
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

Сайт использует cookie: необходимые — для входа и темы, а также счётчики посещений Яндекс Метрика и LiveInternet — по ним мы видим, как пользуются сайтом. Рекламных cookie у нас нет. Подробнее