chatit/build.gradle

195 lines
12 KiB
Groovy
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

buildscript {
repositories {
// Эти репозитории предназначены только для Gradle-плагинов, другие репозитории размещайте в блоке ниже
mavenCentral()
}
dependencies {
// После удаления Mixin здесь больше не требуется зависимостей
}
}
plugins {
id 'eclipse'
id 'idea'
id 'net.minecraftforge.gradle' version '[6.0.16,6.2)'
}
group = mod_group_id
version = mod_version
base {
archivesName = mod_id
}
java {
toolchain.languageVersion = JavaLanguageVersion.of(17)
}
minecraft {
// Маппинги могут быть изменены в любое время и должны быть в следующем формате.
// Канал: Версия:
// official MCVersion Официальные имена полей/методов из файлов маппингов Mojang
// parchment YYYY.MM.DD-MCVersion Открытые имена параметров и javadocs, созданные сообществом, на основе official
// Вы должны быть в курсе лицензии Mojang при использовании 'official' или 'parchment' маппингов.
// Дополнительная информация здесь: https://github.com/MinecraftForge/MCPConfig/blob/master/Mojang.md
// Parchment — неофициальный проект, поддерживаемый ParchmentMC, отдельный от MinecraftForge
// Дополнительная настройка необходима для использования их маппингов: https://parchmentmc.org/docs/getting-started
// Используйте неофициальные маппинги на свой риск. Они могут не всегда работать.
// Просто повторно запустите задачу настройки после изменения маппингов для обновления рабочей области.
mappings channel: mapping_channel, version: mapping_version
// Когда true, это свойство будет заставлять все конфигурации запуска Eclipse/IntelliJ IDEA выполнять задачу "prepareX" для данной конфигурации запуска перед запуском игры.
// В большинстве случаев нет необходимости включать.
// enableEclipsePrepareRuns = true
// enableIdeaPrepareRuns = true
// Это свойство позволяет настроить задачи ProcessResources Gradle для запуска в IDE перед запуском игры.
// Должно быть установлено в true для корректной работы шаблона.
// См. https://docs.gradle.org/current/dsl/org.gradle.language.jvm.tasks.ProcessResources.html
copyIdeResources = true
// Когда true, это свойство добавит имя папки всех объявленных конфигураций запуска в сгенерированные конфигурации IDE.
// Имя папки можно установить в конфигурации запуска с помощью свойства "folderName".
// По умолчанию имя папки конфигурации запуска — это имя Gradle-проекта, содержащего его.
// generateRunFolders = true
// Это свойство включает трансформеры доступа для использования в разработке.
// Они будут применены к артефакту Minecraft.
// Файл трансформера доступа может быть в любом месте проекта.
// Однако он должен находиться в "META-INF/accesstransformer.cfg" в финальном jar моде, чтобы быть загруженным Forge.
// Это расположение по умолчанию — лучшая практика для автоматического размещения файла в правильном месте в финальном jar.
// См. https://docs.minecraftforge.net/en/latest/advanced/accesstransformers/ для дополнительной информации.
// accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
// Конфигурации запуска по умолчанию.
// Их можно настроить, удалить или дублировать по мере необходимости.
runs {
// применяется ко всем конфигурациям запуска ниже
configureEach {
workingDirectory project.file('run')
// Рекомендуемые данные логирования для среды разработки
// Маркеры могут быть добавлены/удалены по мере необходимости, разделенные запятыми.
// "SCAN": Для сканирования модов.
// "REGISTRIES": Для срабатывания событий реестра.
// "REGISTRYDUMP": Для получения содержимого всех реестров.
property 'forge.logging.markers', 'REGISTRIES'
// Рекомендуемый уровень логирования для консоли
// Вы можете установить различные уровни здесь.
// Пожалуйста, прочитайте: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels
property 'forge.logging.console.level', 'debug'
mods {
"${mod_id}" {
source sourceSets.main
}
}
}
client {
// Список пространств имен, из которых загружаются gametest'ы. Пустой = все пространства имен.
property 'forge.enabledGameTestNamespaces', mod_id
}
server {
property 'forge.enabledGameTestNamespaces', mod_id
args '--nogui'
}
// Эта конфигурация запускает GameTestServer и выполняет все зарегистрированные gametest'ы, затем выходит.
// По умолчанию сервер упадет, если не предоставлены gametest'ы.
// Система gametest также включена по умолчанию для других конфигураций запуска через команду /test.
gameTestServer {
property 'forge.enabledGameTestNamespaces', mod_id
}
data {
// пример переопределения workingDirectory, установленного в configureEach выше
workingDirectory project.file('run-data')
// Укажите modid для генерации данных, куда выводить результирующий ресурс и где искать существующие ресурсы.
args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
}
}
}
// Включите ресурсы, сгенерированные генераторами данных.
sourceSets.main.resources { srcDir 'src/generated/resources' }
repositories {
// Добавляйте репозитории для зависимостей здесь
// ForgeGradle автоматически добавляет Forge maven и Maven Central для вас
// Если у вас есть зависимости модов в ./libs, вы можете объявить их как репозиторий следующим образом.
// См. https://docs.gradle.org/current/userguide/declaring_repositories.html#sub:flat_dir_resolver
// flatDir {
// dir 'libs'
// }
}
dependencies {
// Укажите версию Minecraft для использования.
// Любой артефакт может быть предоставлен, пока у него есть артефакт с классификатором "userdev" и он является совместимым патчером.
// Классификатор "userdev" будет запрошен и настроен ForgeGradle.
// Если groupId "net.minecraft" и artifactId один из ["client", "server", "joined"],
// то выполняется специальная обработка для настройки зависимости на ваниль без использования внешнего репозитория.
minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}"
// Пример зависимости мода с JEI - использование fg.deobf() обеспечивает ремаппинг зависимости на ваши маппинги разработки
// API JEI объявлен для использования во время компиляции, в то время как полный артефакт JEI используется во время выполнения
// compileOnly fg.deobf("mezz.jei:jei-${mc_version}-common-api:${jei_version}")
// compileOnly fg.deobf("mezz.jei:jei-${mc_version}-forge-api:${jei_version}")
// runtimeOnly fg.deobf("mezz.jei:jei-${mc_version}-forge:${jei_version}")
// Пример зависимости мода, использующего jar мода из ./libs с плоским репозиторием
// Это соответствует ./libs/coolmod-${mc_version}-${coolmod_version}.jar
// groupId игнорируется при поиске — в данном случае это "blank"
// implementation fg.deobf("blank:coolmod-${mc_version}:${coolmod_version}")
// Для дополнительной информации:
// http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html
// http://www.gradle.org/docs/current/userguide/dependency_management.html
}
tasks.named('processResources', ProcessResources).configure {
var replaceProperties = [
minecraft_version : minecraft_version, minecraft_version_range: minecraft_version_range,
forge_version : forge_version, forge_version_range: forge_version_range,
loader_version_range: loader_version_range,
mod_id : mod_id, mod_name: mod_name, mod_license: mod_license, mod_version: mod_version,
mod_authors : mod_authors, mod_description: mod_description,
]
inputs.properties replaceProperties
filesMatching(['META-INF/mods.toml', 'pack.mcmeta']) {
expand replaceProperties + [project: project]
}
}
// Пример того, как получить свойства в манифест для чтения во время выполнения.
tasks.named('jar', Jar).configure {
manifest {
attributes([
"Specification-Title" : mod_id,
"Specification-Vendor" : mod_authors,
"Specification-Version" : "1", // Мы версия 1 самих себя
"Implementation-Title" : project.name,
"Implementation-Version" : project.jar.archiveVersion,
"Implementation-Vendor" : mod_authors,
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
])
}
// Это предпочтительный метод для переобфускации вашего jar файла
finalizedBy 'reobfJar'
}
tasks.withType(JavaCompile).configureEach {
options.encoding = 'UTF-8' // Используйте кодировку UTF-8 для компиляции Java
}