# SPDX-FileCopyrightText: 2023 Linnea Gräf <nea@nea.moe>
#
# SPDX-License-Identifier: CC0-1.0

[versions]
minecraft = "1.21.4"

# Update from https://kotlinlang.org/
kotlin = "2.1.0"
# Update from https://github.com/google/ksp/releases
kotlin_ksp = "2.1.0-1.0.29"

# Update from https://linkie.shedaniel.me/dependencies?loader=fabric
fabric_loader = "0.16.9"
fabric_api = "0.114.0+1.21.4"
yarn = "1.21.4+build.4"
modmenu = "13.0.0-beta.1"
architectury = "15.0.1"
rei = "18.0.796"

# Update from https://maven.fabricmc.net/net/fabricmc/fabric-language-kotlin/
fabric_kotlin = "1.13.0+kotlin.2.1.0"

# Update from https://maven.architectury.dev/dev/architectury/loom/dev.architectury.loom.gradle.plugin/
loom = "1.7.414" # TODO: port back to architectury (and) 1.9.424

# Update from https://modrinth.com/mod/qolify/versions?l=fabric
qolify = "1.6.0-1.21.1"

# Update from https://modrinth.com/mod/sodium/versions?l=fabric
sodium = "mc1.21.4-0.6.6-fabric"

# Update from https://modrinth.com/mod/freecam/versions?l=fabric
freecammod = "1.3.2+mc1.21.4"

# Update from https://modrinth.com/mod/no-chat-reports/versions?l=fabric
ncr = "Fabric-1.21.4-v2.11.0"

# Update from https://modrinth.com/mod/female-gender/versions?l=fabric
femalegender = "4.3.3+1.21.4"

# Update from https://modrinth.com/mod/explosive-enhancement/versions?l=fabric
explosiveenhancement = "1.2.3-1.21.0"

# Update from https://modrinth.com/mod/not-enough-animations/versions?l=fabric
notenoughanimations = "eZykTicT"

# Update from https://modrinth.com/mod/cit-resewn/versions?l=fabric
citresewn = "1.2.0+1.21"

devauth = "1.2.1"

# Update from https://ktor.io/
ktor = "3.0.3"

# Update from https://repo.nea.moe/#/releases/moe/nea/neurepoparser
neurepoparser = "1.6.0"

# Update from https://github.com/HotswapProjects/HotswapAgent/releases
# TODO: bump to 2.0.1
hotswap_agent = "1.4.2-SNAPSHOT"

# Update from https://github.com/LlamaLad7/MixinExtras/tags
mixinextras = "0.4.1"

jarvis = "1.1.4"
nealisp = "1.1.0"

# Update from https://github.com/NotEnoughUpdates/MoulConfig/tags
moulconfig = "3.3.0"

# Update from https://www.curseforge.com/minecraft/mc-mods/configured/files/all?page=1&pageSize=20
configured = "6023970"

# Update from https://modrinth.com/mod/hypixel-mod-api/versions
hypixelmodapi = "1.0.1"
hypixelmodapi_fabric = "1.0.1+build.1+mc1.21"

# Update from https://github.com/shedaniel/fabric-asm or https://maven.shedaniel.me/me/shedaniel/mm/
manninghamMills = "2.4.1"

# Update from https://docs.isxander.dev/yet-another-config-lib/installing-yacl
# Nvm, they just don't update docs: https://modrinth.com/mod/yacl/versions?l=fabric
yacl = "3.6.2+1.21.4-fabric"

# Update from https://maven.shedaniel.me/me/shedaniel/cloth/basic-math/0.6.1/
basicMath = "0.6.1"

# Update from https://mvnrepository.com/artifact/net.lenni0451.classtransform/core
classtransform = "1.14.0"

# Update from https://mvnrepository.com/artifact/org.ow2.asm/asm/
asm = "9.7.1"

[libraries]
minecraft = { module = "com.mojang:minecraft", version.ref = "minecraft" }
fabric_loader = { module = "net.fabricmc:fabric-loader", version.ref = "fabric_loader" }
fabric_api = { module = "net.fabricmc.fabric-api:fabric-api", version.ref = "fabric_api" }
fabric_api_deprecated = { module = "net.fabricmc.fabric-api:fabric-api-deprecated", version.ref = "fabric_api" }
fabric_kotlin = { module = "net.fabricmc:fabric-language-kotlin", version.ref = "fabric_kotlin" }
architectury = { module = "dev.architectury:architectury", version.ref = "architectury" }
rei_api = { module = "me.shedaniel:RoughlyEnoughItems-api", version.ref = "rei" }
moulconfig = { module = "org.notenoughupdates.moulconfig:modern", version.ref = "moulconfig" }
repoparser = { module = "moe.nea:neurepoparser", version.ref = "neurepoparser" }
mixinextras = { module = "io.github.llamalad7:mixinextras-fabric", version.ref = "mixinextras" }
jarvis_api = { module = "moe.nea.jarvis:jarvis-api", version.ref = "jarvis" }
jarvis_fabric = { module = "moe.nea.jarvis:jarvis-fabric", version.ref = "jarvis" }
nealisp = { module = "moe.nea:nealisp", version.ref = "nealisp" }
explosiveenhancement = { module = "maven.modrinth:explosive-enhancement", version.ref = "explosiveenhancement" }
manninghamMills = { module = "me.shedaniel:mm", version.ref = "manninghamMills" }
aaronhmapi = { module = "net.azureaaron:hm-api", version = "1.0.0+1.21" }
hypixelmodapi = { module = "net.hypixel:mod-api", version.ref = "hypixelmodapi" }
hypixelmodapi_fabric = { module = "maven.modrinth:hypixel-mod-api", version.ref = "hypixelmodapi_fabric" }
configured = { module = "curse.maven:configured-457570", version.ref = "configured" }
# Runtime:
notenoughanimations = { module = "maven.modrinth:not-enough-animations", version.ref = "notenoughanimations" }
hotswap = { module = "virtual.github.hotswapagent:hotswap-agent", version.ref = "hotswap_agent" }
architectury_fabric = { module = "dev.architectury:architectury-fabric", version.ref = "architectury" }
rei_fabric = { module = "me.shedaniel:RoughlyEnoughItems-fabric", version.ref = "rei" }
devauth = { module = "me.djtheredstoner:DevAuth-fabric", version.ref = "devauth" }
modmenu = { module = "maven.modrinth:modmenu", version.ref = "modmenu" }
qolify = { module = "maven.modrinth:qolify", version.ref = "qolify" }
ncr = { module = "maven.modrinth:no-chat-reports", version.ref = "ncr" }
sodium = { module = "maven.modrinth:sodium", version.ref = "sodium" }
freecammod = { module = "maven.modrinth:freecam", version.ref = "freecammod" }
citresewn = { module = "maven.modrinth:cit-resewn", version.ref = "citresewn" }
femalegender = { module = "maven.modrinth:female-gender", version.ref = "femalegender" }
yacl = { module = "dev.isxander:yet-another-config-lib", version.ref = "yacl" }
basicMath = { module = "me.shedaniel.cloth:basic-math", version.ref = "basicMath" }

classTransform-mixinsTranslator = { module = "net.lenni0451.classtransform:mixinstranslator", version.ref = "classtransform" }
classTransform-core = { module = "net.lenni0451.classtransform:core", version.ref = "classtransform" }

asm = { module = "org.ow2.asm:asm", version.ref = "asm" }

[bundles]
runtime_required = [
	"rei_fabric",
	#	"notenoughanimations",
	"hypixelmodapi_fabric",
]
runtime_optional = [
	"devauth",
	#	"freecammod",
	#	"sodium",
	#    "qolify",
	"ncr",
	#	"citresewn",
]

[plugins]
kotlin_jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
kotlin_plugin_serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
kotlin_plugin_powerassert = { id = "org.jetbrains.kotlin.plugin.power-assert", version.ref = "kotlin" }
kotlin_plugin_ksp = { id = "com.google.devtools.ksp", version.ref = "kotlin_ksp" }
loom = { id = "dev.architectury.loom", version.ref = "loom" }
shadow = { id = "com.github.johnrengelman.shadow", version = "8.1.1" }