Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mineinabyss/idofront
Shared logic for our plugins and Gradle buildscripts
https://github.com/mineinabyss/idofront
gradle gradle-kotlin-script helper-functions spigot
Last synced: 10 days ago
JSON representation
Shared logic for our plugins and Gradle buildscripts
- Host: GitHub
- URL: https://github.com/mineinabyss/idofront
- Owner: MineInAbyss
- License: mit
- Created: 2020-01-16T00:39:45.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-10-24T19:34:12.000Z (about 2 months ago)
- Last Synced: 2024-10-24T19:34:24.438Z (about 2 months ago)
- Topics: gradle, gradle-kotlin-script, helper-functions, spigot
- Language: Kotlin
- Homepage:
- Size: 947 KB
- Stars: 15
- Watchers: 5
- Forks: 7
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Idofront
[![Package](https://img.shields.io/maven-metadata/v?metadataUrl=https://repo.mineinabyss.com/releases/com/mineinabyss/idofront-util/maven-metadata.xml)](https://repo.mineinabyss.com/#/releases/com/mineinabyss/idofront-util)
[![Wiki](https://img.shields.io/badge/-Project%20Wiki-blueviolet?logo=Wikipedia&labelColor=gray)](https://wiki.mineinabyss.com/idofront)
[![Contribute](https://shields.io/badge/Contribute-e57be5?logo=github%20sponsors&style=flat&logoColor=white)](https://wiki.mineinabyss.com/contributing/)Idofront is a set of modules we share between plugins. It includes helpful Minecraft extensions, gradle conventions, and more.
## Gradle quickstart
To use idofront as a platform in your projects:
#### Add idofrontVersion to your gradle.properties
```properties
idofrontVersion=...
```#### Configure your settings.gradle
```kotlin
pluginManagement {
repositories {
gradlePluginPortal()
maven("https://repo.mineinabyss.com/releases")
}
}dependencyResolutionManagement {
val idofrontVersion: String by settings
repositories {
maven("https://repo.mineinabyss.com/releases")
}
versionCatalogs {
create("idofrontLibs").from("com.mineinabyss:catalog:$idofrontVersion")
}
}
```#### Configure your build.gradle
```kotlin
plugins {
alias(idofrontLibs.plugins.mia.kotlin.jvm)
alias(idofrontLibs.plugins.mia.copyjar)
alias(idofrontLibs.plugins.mia.papermc)
alias(idofrontLibs.plugins.mia.nms)
alias(idofrontLibs.plugins.mia.autoversion)
// ...
}dependencies {
compileOnly(idofrontLibs.bundles.idofront.core)
compileOnly(idofrontLibs.kotlinx.serialization.json)
// ...
}
```#### Updating
Run `gradle updateIdofrontVersion`
# Modules
**Click on a module to see its wiki page!**
**`idofront-autoscan`** -
Helper functions for finding annotated classes at runtime, we use it to register things at startup.[**`idofront-catalog`**](https://wiki.mineinabyss.com/idofront/gradle/catalog/) -
Gradle [version catalog](https://docs.gradle.org/current/userguide/platforms.html#sub:version-catalog) containing our commonly used dependencies, including all idofront projects.[**`idofront-catalog-shaded`**](https://wiki.mineinabyss.com/idofront/platforms/) -
A Paper plugin with all the dependencies shaded, intended to be used by our other plugins using Paper's `join-classpath` option.[**`idofront-commands`**](https://wiki.mineinabyss.com/idofront/command-dsl/) -
A DSL for quickly building Minecraft commands.[**`idofront-config`**](https://wiki.mineinabyss.com/idofront/config/) -
Simple config system using kotlinx.serialization. Supports yaml, json, and more.**`idofront-fonts`** -
Font related helper functions, including (negative) spacing.[**`idofront-gradle`**](https://wiki.mineinabyss.com/idofront/gradle/plugins/) -
Gradle plugins to share build logic, including using NMS with mappings, and publishing to our maven repo.**`idofront-logging`** -
Super simple logging functions with MiniMessage support.[**`idofront-nms`**](https://wiki.mineinabyss.com/idofront/nms/) -
TypeAliases and `toNMS()`, `toBukkit()` functions for many NMS classes[**`idofront-serializers`**](https://wiki.mineinabyss.com/idofront/serialization/) -
Config-centric serializers for many Bukkit classes for kotlinx.serialization, including ItemStack, Recipes, or Components (via MiniMessage.)**`idofront-text-components`** -
Helper functions for adventure `Component`s[**`idofront-util`**](https://wiki.mineinabyss.com/idofront/util/) -
General utilities like destructure functions, plugin load helpers, or operator functions for Vector and Location.# Reference material
- This repo seems interesting to borrow from as a setup for conventions plugins: https://github.com/huanshankeji/gradle-common
- https://github.com/jjohannes/gradle-demos/tree/main