{"id":22837051,"url":"https://github.com/mineinabyss/idofront","last_synced_at":"2025-04-24T03:25:13.149Z","repository":{"id":37501307,"uuid":"234201953","full_name":"MineInAbyss/Idofront","owner":"MineInAbyss","description":"Shared logic for our plugins and Gradle buildscripts","archived":false,"fork":false,"pushed_at":"2025-04-19T17:54:33.000Z","size":1021,"stargazers_count":14,"open_issues_count":6,"forks_count":10,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-19T20:17:40.922Z","etag":null,"topics":["gradle","gradle-kotlin-script","helper-functions","spigot"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MineInAbyss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-16T00:39:45.000Z","updated_at":"2025-02-02T00:41:45.000Z","dependencies_parsed_at":"2024-02-14T00:26:48.574Z","dependency_job_id":"14a4ff0d-4a34-4bd3-98b2-78ede6869f68","html_url":"https://github.com/MineInAbyss/Idofront","commit_stats":null,"previous_names":[],"tags_count":203,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MineInAbyss%2FIdofront","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MineInAbyss%2FIdofront/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MineInAbyss%2FIdofront/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MineInAbyss%2FIdofront/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MineInAbyss","download_url":"https://codeload.github.com/MineInAbyss/Idofront/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250553717,"owners_count":21449450,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gradle","gradle-kotlin-script","helper-functions","spigot"],"created_at":"2024-12-12T23:15:31.728Z","updated_at":"2025-04-24T03:25:13.128Z","avatar_url":"https://github.com/MineInAbyss.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# Idofront\n[![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)\n[![Wiki](https://img.shields.io/badge/-Project%20Wiki-blueviolet?logo=Wikipedia\u0026labelColor=gray)](https://wiki.mineinabyss.com/idofront)\n[![Contribute](https://shields.io/badge/Contribute-e57be5?logo=github%20sponsors\u0026style=flat\u0026logoColor=white)](https://wiki.mineinabyss.com/contributing/)\n\u003c/div\u003e\n\nIdofront is a set of modules we share between plugins. It includes helpful Minecraft extensions, gradle conventions, and more.\n\n## Gradle quickstart\n\nTo use idofront as a platform in your projects:\n\n#### Add idofrontVersion to your gradle.properties\n\n```properties\nidofrontVersion=...\n```\n\n#### Configure your settings.gradle\n\n```kotlin\npluginManagement {\n    repositories {\n        gradlePluginPortal()\n        maven(\"https://repo.mineinabyss.com/releases\")\n    }\n}\n\ndependencyResolutionManagement {\n    val idofrontVersion: String by settings\n    \n    repositories {\n        maven(\"https://repo.mineinabyss.com/releases\")\n    }\n    versionCatalogs {\n        create(\"idofrontLibs\").from(\"com.mineinabyss:catalog:$idofrontVersion\")\n    }\n}\n```\n\n#### Configure your build.gradle\n\n```kotlin\nplugins {\n    alias(idofrontLibs.plugins.mia.kotlin.jvm)\n    alias(idofrontLibs.plugins.mia.copyjar)\n    alias(idofrontLibs.plugins.mia.papermc)\n    alias(idofrontLibs.plugins.mia.nms)\n    alias(idofrontLibs.plugins.mia.autoversion)\n    // ...\n}\n\ndependencies {\n    compileOnly(idofrontLibs.bundles.idofront.core)\n    compileOnly(idofrontLibs.kotlinx.serialization.json)\n    // ...\n}\n```\n\n#### Updating\n\nRun `gradle updateIdofrontVersion`\n\n# Modules\n\n**Click on a module to see its wiki page!**\n\n**`idofront-autoscan`** -\nHelper functions for finding annotated classes at runtime, we use it to register things at startup.\n\n[**`idofront-catalog`**](https://wiki.mineinabyss.com/idofront/gradle/catalog/) -\nGradle [version catalog](https://docs.gradle.org/current/userguide/platforms.html#sub:version-catalog) containing our commonly used dependencies, including all idofront projects.\n\n[**`idofront-catalog-shaded`**](https://wiki.mineinabyss.com/idofront/platforms/) -\nA Paper plugin with all the dependencies shaded, intended to be used by our other plugins using Paper's `join-classpath` option.\n\n[**`idofront-commands`**](https://wiki.mineinabyss.com/idofront/command-dsl/) -\nA DSL for quickly building Minecraft commands.\n\n[**`idofront-config`**](https://wiki.mineinabyss.com/idofront/config/) -\nSimple config system using kotlinx.serialization. Supports yaml, json, and more.\n\n**`idofront-fonts`** -\nFont related helper functions, including (negative) spacing.\n\n[**`idofront-gradle`**](https://wiki.mineinabyss.com/idofront/gradle/plugins/) -\nGradle plugins to share build logic, including using NMS with mappings, and publishing to our maven repo.\n\n**`idofront-logging`** -\nSuper simple logging functions with MiniMessage support.\n\n[**`idofront-nms`**](https://wiki.mineinabyss.com/idofront/nms/) -\nTypeAliases and `toNMS()`, `toBukkit()` functions for many NMS classes\n\n[**`idofront-serializers`**](https://wiki.mineinabyss.com/idofront/serialization/) -\nConfig-centric serializers for many Bukkit classes for kotlinx.serialization, including ItemStack, Recipes, or Components (via MiniMessage.)\n\n**`idofront-text-components`** -\nHelper functions for adventure `Component`s\n\n[**`idofront-util`**](https://wiki.mineinabyss.com/idofront/util/) -\nGeneral utilities like destructure functions, plugin load helpers, or operator functions for Vector and Location.\n\n# Reference material\n\n- This repo seems interesting to borrow from as a setup for conventions plugins: https://github.com/huanshankeji/gradle-common\n- https://github.com/jjohannes/gradle-demos/tree/main\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmineinabyss%2Fidofront","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmineinabyss%2Fidofront","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmineinabyss%2Fidofront/lists"}