[versions]

# plugins
spotless = "7.0.2"
nexusPublish = "2.0.0"
checkstyleTools = "10.21.1"
fabricLoom = "1.9-SNAPSHOT"

# fabric
minecraft = "1.21"
yarn-mappings = "1.21+build.9"
fabric_loader = "0.16.10"
fabric-api = "0.102.0+1.21"
fabric-kotlin = "1.13.0+kotlin.2.1.0"

# Kotlin
kotlin = "2.0.0"
silkMc = "1.10.7"
# Also modrinth version in gradle.properties

# hglabor
hglaborUtils = "1.21.4-0.0.1"

# mongodb
mongodb = "5.2.0"

# animation
playerAnimator = "1.0.2-rc1+1.21"
geckolib = "4.5.6"


# general
gson = "2.11.0"
geantyref = "1.3.16"
annotations = "26.0.1"
serialization = "1.6.0"
netty = "4.1.117.Final"

# platform api versions
sponge = "10.0.0"
minestom = "0d47d97417"
paper = "1.21.4-R0.1-SNAPSHOT"

# platform extensions
paperLib = "1.0.8"
packetEvents = "2.7.0"
protocolLib = "6845acd89d"

cloudnet = "4.0.0-RC10"


[libraries]

# fabric
minecraft = { module = "com.mojang:minecraft", version.ref = "minecraft" }
yarn-mappings = { module = "net.fabricmc:yarn", version.ref = "yarn-mappings" }

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-kotlin = { module = "net.fabricmc:fabric-language-kotlin", version.ref = "fabric-kotlin" }

# general
netty = { group = "io.netty", name = "netty-buffer", version.ref = "netty" }
gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" }
annotations = { group = "org.jetbrains", name = "annotations", version.ref = "annotations" }
serialization = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "serialization" }
geantyref = { group = "io.leangen.geantyref", name = "geantyref", version.ref = "geantyref" }

# platform api
paper = { group = "io.papermc.paper", name = "paper-api", version.ref = "paper" }
sponge = { group = "org.spongepowered", name = "spongeapi", version.ref = "sponge" }
minestom = { group = "net.minestom", name = "minestom-snapshots", version.ref = "minestom" }

# platform extensions
paperLib = { group = "io.papermc", name = "paperlib", version.ref = "paperLib" }
protocolLib = { group = "com.github.dmulloy2", name = "ProtocolLib", version.ref = "protocolLib" }
packetEvents = { group = "com.github.retrooper", name = "packetevents-spigot", version.ref = "packetEvents" }

# silk
silk-bundle = { group = "maven.modrinth", name = "silk", version = "1.11.0" }
silk-commands = { group = "net.silkmc", name = "silk-commands", version.ref = "silkMc" }
silk-core = { group = "net.silkmc", name = "silk-core", version.ref = "silkMc" }
silk-network = { group = "net.silkmc", name = "silk-network", version.ref = "silkMc" }
silk-nbt = { group = "net.silkmc", name = "silk-nbt", version.ref = "silkMc" }
silk-game = { group = "net.silkmc", name = "silk-game", version.ref = "silkMc" }
owolib = { group = "io.wispforest", name = "owo-lib", version = "0.12.15+1.21" }

# perfomance
sodium = { group = "maven.modrinth", name = "sodium", version = "mc1.21-0.5.11" }
lithium = { group = "maven.modrinth", name = "lithium", version = "mc1.21-0.13.1" }
modmenu = { group = "maven.modrinth", name = "modmenu", version = "11.0.3" }
ferrite-core = { group = "maven.modrinth", name = "ferrite-core", version = "7.0.0-fabric" }
nvidium = { group = "maven.modrinth", name = "nvidium", version = "0.3.1" }

# npc-lib
npcLibApi = { group = "io.github.juliarn", name = "npc-lib-api", version = "3.0.0-beta10" }
npcLibCommon = { group = "io.github.juliarn", name = "npc-lib-common", version = "3.0.0-beta10" }

# animation
playerAnimator = { group = "dev.kosmx.player-anim", name = "player-animation-lib-fabric", version.ref = "playerAnimator" }
geckolib = { group = "software.bernie.geckolib", name = "geckolib-fabric-1.21", version.ref = "geckolib" }
emoteLib = { group = "gg.norisk", name = "emote-lib", version = "1.21-1.1.20" }

# cloudnet
cloudnet-driver = { module = "eu.cloudnetservice.cloudnet:driver", version.ref = "cloudnet" }
cloudnet-bridge = { module = "eu.cloudnetservice.cloudnet:bridge", version.ref = "cloudnet" }
cloudnet-wrapper = { module = "eu.cloudnetservice.cloudnet:wrapper-jvm", version.ref = "cloudnet" }

# nrc
nrcClient = { group = "gg.norisk", name = "nrc-client", version = "1.0.68+fabric.1.21" }
nrcUi = { group = "gg.norisk", name = "nrc-ui", version = "1.0.85+fabric.1.21" }
nrcCore = { group = "gg.norisk", name = "nrc-core", version = "1.0.30+fabric.1.21" }
nrcZoom = { group = "gg.norisk", name = "noriskclient-zoom", version = "1.21-2.0.2" }
nrcFullbright = { group = "gg.norisk", name = "fullbright", version = "1.21-2.0.0" }
nrcFreelook = { group = "gg.norisk", name = "freelook", version = "1.21-2.0.4" }
nrcNametag = { group = "gg.norisk", name = "nametags", version = "1.21-2.0.0" }

# mongodb
mongodb-core = { group = "org.mongodb", name = "mongodb-driver-core", version.ref = "mongodb" }
mongodb-kotlin = { group = "org.mongodb", name = "mongodb-driver-kotlin-coroutine", version.ref = "mongodb" }
mongodb-driver = { group = "org.mongodb", name = "mongodb-driver-reactivestreams", version.ref = "mongodb" }
mongodb-bson = { group = "org.mongodb", name = "bson-kotlinx", version.ref = "mongodb" }
reactive-streams = { group = "org.reactivestreams", name = "reactive-streams", version = "1.0.4" }
reactor-core = { group = "io.projectreactor", name = "reactor-core", version = "3.7.2" }

# hglabor utils
hglabor-database-utils = { group = "de.hglabor", name = "hglabor-utils-database", version.ref = "hglaborUtils" }

# misc
worldedit = { group = "com.sk89q.worldedit", name = "worldedit-fabric-mc1.21", version = "7.3.4" }

# dummy version, just here for renovate to detect that there is something to update
checkstyleTools = { group = "com.puppycrawl.tools", name = "checkstyle", version.ref = "checkstyleTools" }

[bundles]
#silk = ["silk-commands", "silk-core", "silk-network", "silk-game", "silk-nbt"]
silk = ["silk-commands", "silk-core", "silk-network", "silk-game", "silk-nbt"]
performance = ["sodium", "lithium", "modmenu", "ferrite-core", "nvidium"]
fabric = ["fabric-api", "fabric-kotlin", "fabric_loader"]
nrc = ["nrcFreelook", "nrcFullbright", "nrcZoom", "nrcNametag", "nrcClient", "nrcUi", "nrcCore"]
mongodb = ["mongodb-core", "mongodb-kotlin", "mongodb-bson"]
hglaborutils = ["hglabor-database-utils"]
cloudnet = ["cloudnet-bridge", "cloudnet-driver", "cloudnet-wrapper"]

[plugins]

spotless = { id = "com.diffplug.spotless", version.ref = "spotless" }
nexusPublish = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "nexusPublish" }
fabricLoom = { id = "fabric-loom", version.ref = "fabricLoom" }
kotlin = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
kotlin_serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
shadowJar = { id = "com.github.johnrengelman.shadow", version = "7.1.2" }
