metadata:
  format: { version: 1.0 }
  polyglot-extensions:
    - plugins

plugins:
  com.github.johnrengelman.shadow: 7.1.2
  com.github.ben-manes.versions: 0.42.0
  com.diffplug.spotless: &spotless 6.6.1
  xyz.jpenilla.run-paper: &run-task 2.0.0
  xyz.jpenilla.run-velocity: *run-task
  xyz.jpenilla.run-waterfall: *run-task

versions:
  checkstyle: 9.0
  checkerQual: 3.22.1
  errorprone: 2.9.0
  geantyref: 1.3.13
  jmh: 1.27
  apiguardian: 1.1.2

  # integration
  guice: 4.2.3

  # kotlin
  kotlin: &kotlin 1.5.31
  dokka: *kotlin
  coroutines: 1.5.2

  # discord
  javacord: 3.1.1
  jda: 4.2.1_257

  # irc
  pircbotx: 12f5639c5d

  # minecraft
  guava: 21.0-jre
  brigadier: 1.0.17
  bukkit: 1.13.2-R0.1-SNAPSHOT
  commodore: 2.2
  bungeecord: 1.8-SNAPSHOT
  cloudburst: 1.0.0-SNAPSHOT
  adventureApi: 4.9.3
  adventurePlatform: 4.1.1
  paperApi: 1.16.5-R0.1-SNAPSHOT
  velocityApi: 3.1.0
  spongeApi7: 7.3.0
  jetbrainsAnnotations: 23.0.0
  fabricMinecraft: 1.19
  fabricLoader: 0.14.7
  fabricApi: 0.55.3+1.19
  fabricPermissionsApi: 0.1-SNAPSHOT

  # testing
  jupiterEngine : 5.8.2
  mockitoCore : 4.1.0
  mockitoKotlin : 4.0.0
  mockitoJupiter: 4.5.1
  truth : 1.1.3
  compileTesting: 0.19

  # build-logic
  indra: 2.1.1
  gradleTestLogger: 3.1.0
  gradleErrorprone: 2.0.2
  spotless: *spotless
  revapi: 1.7.0

dependencies:
  checkerQual:
    group: org.checkerframework
    name: checker-qual
    version: { ref: checkerQual }
  errorproneCore:
    group: com.google.errorprone
    name: error_prone_core
    version: { ref: errorprone }
  errorproneAnnotations:
    group: com.google.errorprone
    name: error_prone_annotations
    version: { ref: errorprone }
  geantyref:
    group: io.leangen.geantyref
    name: geantyref
    version: { ref: geantyref }
  jmhCore:
    group: org.openjdk.jmh
    name: jmh-core
    version: { ref: jmh }
  jmhGeneratorAnnprocess:
    group: org.openjdk.jmh
    name: jmh-generator-annprocess
    version: { ref: jmh }
  apiguardian:
    group: org.apiguardian
    name: apiguardian-api
    version: { ref: apiguardian }

  # integration
  guice:
    group: com.google.inject
    name: guice
    version: { ref: guice }

  # kotlin
  coroutinesCore:
    group: org.jetbrains.kotlinx
    name: kotlinx-coroutines-core
    version: { ref: coroutines }
  coroutinesJdk8:
    group: org.jetbrains.kotlinx
    name: kotlinx-coroutines-jdk8
    version: { ref: coroutines }

  # discord
  javacord:
    group: org.javacord
    name: javacord
    version: { ref: javacord }
  jda:
    group: net.dv8tion
    name: JDA
    version: { ref: jda }

  # irc
  pircbotx:
    group: com.github.pircbotx
    name: pircbotx
    version: { ref: pircbotx }

  # minecraft
  guava:
    group: com.google.guava
    name: guava
    version: { ref: guava }
  brigadier:
    group: com.mojang
    name: brigadier
    version: { ref: brigadier }
  bukkit:
    group: org.bukkit
    name: bukkit
    version: { ref: bukkit }
  commodore:
    group: me.lucko
    name: commodore
    version: { ref: commodore }
  jetbrainsAnnotations:
    group: org.jetbrains
    name: annotations
    version: { ref: jetbrainsAnnotations }
  bungeecord:
    group: net.md-5
    name: bungeecord-api
    version: { ref: bungeecord }
  cloudburst:
    group: org.cloudburstmc
    name: cloudburst-server
    version: { ref: cloudburst }
  adventureApi:
    group: net.kyori
    name: adventure-api
    version: { ref: adventureApi }
  adventurePlatformBukkit:
    group: net.kyori
    name: adventure-platform-bukkit
    version: { ref: adventurePlatform }
  adventurePlatformBungeecord:
    group: net.kyori
    name: adventure-platform-bungeecord
    version: { ref: adventurePlatform }
  adventureTextSerializerPlain:
    group: net.kyori
    name: adventure-text-serializer-plain
    version: { ref: adventureApi }
  paperApi:
    group: com.destroystokyo.paper
    name: paper-api
    version: { ref: paperApi }
  paperMojangApi :
    group: com.destroystokyo.paper
    name: paper-mojangapi
    version: { ref: paperApi }
  spongeApi7:
    group: org.spongepowered
    name: spongeapi
    version: { ref: spongeApi7 }
  velocityApi:
    group: com.velocitypowered
    name: velocity-api
    version: { ref: velocityApi }
  fabricMinecraft:
    group: com.mojang
    name: minecraft
    version: { ref: fabricMinecraft }
  fabricLoader:
    group: net.fabricmc
    name: fabric-loader
    version: { ref: fabricLoader }
  fabricPermissionsApi:
    group: me.lucko
    name: fabric-permissions-api
    version: { ref: fabricPermissionsApi }

  # testing
  jupiterEngine:
    group: org.junit.jupiter
    name: junit-jupiter-engine
    version: { ref: jupiterEngine }
  jupiterParams:
    group: org.junit.jupiter
    name: junit-jupiter-params
    version: { ref: jupiterEngine }
  mockitoCore:
    group: org.mockito
    name: mockito-core
    version: { ref: mockitoCore }
  mockitoKotlin:
    group: org.mockito.kotlin
    name: mockito-kotlin
    version: { ref: mockitoKotlin }
  mockitoJupiter:
    group: org.mockito
    name: mockito-junit-jupiter
    version: { ref: mockitoJupiter }
  truth:
    group: com.google.truth
    name: truth
    version: { ref: truth }
  truthJava8:
    group: com.google.truth.extensions
    name: truth-java8-extension
    version: { ref: truth }
  compileTesting:
    group: com.google.testing.compile
    name: compile-testing
    version: { ref: compileTesting }

  # build-logic
  indraCommon:
    group: net.kyori
    name: indra-common
    version: { ref: indra }
  indraPublishingSonatype:
    group: net.kyori
    name: indra-publishing-sonatype
    version: { ref: indra }
  gradleTestLogger:
    group: com.adarshr
    name: gradle-test-logger-plugin
    version: { ref: gradleTestLogger }
  gradleErrorprone:
    group: net.ltgt.gradle
    name: gradle-errorprone-plugin
    version: { ref: gradleErrorprone }
  gradleKotlinJvm:
    group: org.jetbrains.kotlin.jvm
    name: org.jetbrains.kotlin.jvm.gradle.plugin
    version: { ref: kotlin }
  gradleDokka:
    group: org.jetbrains.dokka
    name: dokka-gradle-plugin
    version: { ref: dokka }
  spotless:
    group: com.diffplug.spotless
    name: spotless-plugin-gradle
    version: { ref: spotless }
  revapi:
    group: com.palantir.gradle.revapi
    name: gradle-revapi
    version: { ref: revapi }

bundles:
  coroutines:
    - coroutinesCore
    - coroutinesJdk8
