{"id":28279398,"url":"https://github.com/croabeast/takion","last_synced_at":"2026-05-30T04:03:01.605Z","repository":{"id":277769523,"uuid":"933436581","full_name":"CroaBeast/Takion","owner":"CroaBeast","description":"Takion is a powerful Spigot library for advanced chat, text formatting, and messaging utilities in Minecraft plugins.","archived":false,"fork":false,"pushed_at":"2026-05-04T20:26:59.000Z","size":630,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-04T22:24:35.211Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","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/CroaBeast.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["CroaBeast"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":"croabeast","thanks_dev":null,"custom":"https://www.paypal.com/donate/?hosted_button_id=FQQR9FEHPLNQL"}},"created_at":"2025-02-16T00:10:08.000Z","updated_at":"2026-05-04T20:25:22.000Z","dependencies_parsed_at":"2025-02-16T01:19:04.538Z","dependency_job_id":"08b44409-b14c-4859-9bd4-f14508b9f210","html_url":"https://github.com/CroaBeast/Takion","commit_stats":null,"previous_names":["croabeast/takion"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/CroaBeast/Takion","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CroaBeast%2FTakion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CroaBeast%2FTakion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CroaBeast%2FTakion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CroaBeast%2FTakion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CroaBeast","download_url":"https://codeload.github.com/CroaBeast/Takion/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CroaBeast%2FTakion/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33679308,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-05-21T09:14:37.556Z","updated_at":"2026-05-30T04:03:01.599Z","avatar_url":"https://github.com/CroaBeast.png","language":"Java","funding_links":["https://github.com/sponsors/CroaBeast","https://buymeacoffee.com/croabeast","https://www.paypal.com/donate/?hosted_button_id=FQQR9FEHPLNQL"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://discord.com/invite/gzzhVqgy3b\" alt=\"Support Server\"\u003e\n        \u003cimg alt=\"Discord\" src=\"https://img.shields.io/discord/826555143398752286?style=for-the-badge\u0026logo=discord\u0026label=Support%20Server\u0026color=635aea\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n# ✨ Takion\n\nTakion is an all-in-one toolkit for building premium chat and text experiences on top of the Spigot and Paper Minecraft APIs. From rich message formatting to per-channel moderation rules, Takion ships with a curated set of managers, adapters, and utilities so you can focus on gameplay instead of infrastructure.\n\n\u003e **TL;DR**: Drop Takion into your plugin to gain a scheduler-aware messaging layer, powerful placeholder resolution, flexible channel routing, and plenty of formatting sugar out-of-the-box. 🧙‍♂️\n\n---\n\n## 📚 Table of Contents\n\n1. [Highlights](#-highlights)\n2. [Module Overview](#-module-overview)\n3. [Ecosystem \u0026 Bundled APIs](#-ecosystem--bundled-apis)\n4. [Installation](#-installation)\n5. [Quickstart](#-quickstart)\n6. [Feature Tour](#-feature-tour)\n7. [Building from Source](#-building-from-source)\n8. [Contributing](#-contributing)\n9. [License](#-license)\n\n---\n\n## 🚀 Highlights\n\n- **Production-ready chat core** featuring color pipelines, rich components, and consistent alignment logic.\n- **Channel, placeholder, and rule management** baked directly into the `TakionLib` entry point for one-line access in your plugin lifecycle.\n- **Scheduler integration** via `GlobalScheduler`, making it trivial to run asynchronous or delayed messaging tasks without boilerplate.\n- **Drop-in metrics** (bstats) and optional Vault/chat bridges when using the plugin distribution.\n- **Ready for shading**—choose between the lightweight core API, the shaded binary, the `shaded:all` variant with extra bundled libraries, or the demonstration plugin module.\n\n---\n\n## 🧩 Module Overview\n\nTakion is a multi-module Gradle project. Pick the artifact that matches your distribution strategy:\n\n| Module   | Description                                                                                                                                                                 | Ideal For                                                                            |\n|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------|\n| `common` | Shared utilities under `me.croabeast.common`, including builders, reflection helpers, time utilities, dependency loading, and GUI helpers.                    | Reusing utility APIs independently from the main Takion API.                          |\n| `core`   | The primary Takion API containing `TakionLib` and managers. Optional when you only need to compile against the exposed API or validate the core sources.       | Compiling against Takion's main API or shading it yourself.                           |\n| `shaded` | Repackages `common` and `core` together with required libraries (PrismaticAPI, GlobalScheduler, YAML-API) and also publishes an `all` classifier with extra bundled libraries. | Shipping a single jar without configuring repositories in your consumer.             |\n| `plugin` | Example/production-ready plugin bundle that brings in optional adapters (Vault, bStats) and relocates packages using Shadow.                                                | Deploying Takion directly on a server or as a base plugin for further customization. |\n\nAll modules target **Java 8** using Gradle toolchains, so you can build and run on modern JDKs while remaining compatible with legacy Minecraft hosts.\n\n---\n\n## 🌐 Ecosystem \u0026 Bundled APIs\n\nTakion leans on several battle-tested libraries created by the same author:\n\n- [**PrismaticAPI**](https://github.com/CroaBeast/PrismaticAPI) - color gradients, RGB conversion and interactive chat components.\n- [**YAML-API**](https://github.com/CroaBeast/YAML-API) – lightweight YAML configuration helpers and file management.\n- [**GlobalScheduler**](https://github.com/CroaBeast/GlobalScheduler) – abstraction for Paper/Spigot task scheduling.\n- [**VaultAdapter**](https://github.com/CroaBeast/VaultAdapter) *(plugin module)* – bridges Vault chat/permissions into Takion placeholders.\n- [**CommandFramework**](https://github.com/CroaBeast/CommandFramework) and [**AdvancementInfo**](https://github.com/CroaBeast/AdvancementInfo)** (via the `shaded:all` classifier) – extendable command and advancement utilities.\n- [**bStats**](https://bstats.org/) *(plugin module)* – anonymous usage metrics (relocated to avoid conflicts).\n\nOptional integrations such as **InteractiveChat** or **Vault** can be toggled inside the plugin module without affecting the core API.\n\n---\n\n## 📦 Installation\n\nAdd the public repository and choose the dependency that fits your workflow. As of **Takion 1.6.3**, artifacts live under the\n`me.croabeast.takion` group and are published per-module (`common`, `core`, `shaded`, `plugin`), with an additional `all` classifier on `shaded`.\n\n\u003e **Heads up:** You only need either the `shaded`, `shaded:all`, or `plugin` artifact at runtime. The `common` and `core` artifacts are optional—keep them as\n\u003e `compileOnly` dependencies when you want IDE access to the sources or plan to shade Takion yourself, but they are not\n\u003e required on your production server.\n\n### Gradle (Kotlin DSL)\n```kotlin\nrepositories {\n    maven(\"https://croabeast.github.io/repo/\")\n}\n\ndependencies {\n    // Optional: keep common/core on the compileOnly classpath for source access while shading\n    compileOnly(\"me.croabeast.takion:common:1.6.3\")\n    compileOnly(\"me.croabeast.takion:core:1.6.3\")\n    // Choose exactly one runtime\n    implementation(\"me.croabeast.takion:shaded:1.6.3\")\n    // implementation(\"me.croabeast.takion:shaded:1.6.3:all\")\n    // implementation(\"me.croabeast.takion:plugin:1.6.3\")\n}\n```\n\n### Gradle (Groovy DSL)\n```groovy\nrepositories {\n    maven { url \"https://croabeast.github.io/repo/\" }\n}\n\ndependencies {\n    // Optional: keep common/core on the compileOnly classpath for source access while shading\n    compileOnly \"me.croabeast.takion:common:1.6.3\"\n    compileOnly \"me.croabeast.takion:core:1.6.3\"\n    // Choose exactly one runtime\n    implementation \"me.croabeast.takion:shaded:1.6.3\"\n    // implementation \"me.croabeast.takion:shaded:1.6.3:all\"\n    // implementation \"me.croabeast.takion:plugin:1.6.3\"\n}\n```\n\n### Maven\n```xml\n\u003crepositories\u003e\n    \u003crepository\u003e\n        \u003cid\u003ecroabeast-repo\u003c/id\u003e\n        \u003curl\u003ehttps://croabeast.github.io/repo/\u003c/url\u003e\n    \u003c/repository\u003e\n\u003c/repositories\u003e\n\n\u003cdependencies\u003e\n    \u003c!-- Optional: include common/core for compilation-time access to the API --\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003eme.croabeast.takion\u003c/groupId\u003e\n        \u003cartifactId\u003ecommon\u003c/artifactId\u003e\n        \u003cversion\u003e1.6.3\u003c/version\u003e\n        \u003cscope\u003eprovided\u003c/scope\u003e\n    \u003c/dependency\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003eme.croabeast.takion\u003c/groupId\u003e\n        \u003cartifactId\u003ecore\u003c/artifactId\u003e\n        \u003cversion\u003e1.6.3\u003c/version\u003e\n        \u003cscope\u003eprovided\u003c/scope\u003e\n    \u003c/dependency\u003e\n    \u003c!-- Choose exactly one runtime --\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003eme.croabeast.takion\u003c/groupId\u003e\n        \u003cartifactId\u003eshaded\u003c/artifactId\u003e\n        \u003cversion\u003e1.6.3\u003c/version\u003e\n    \u003c/dependency\u003e\n    \u003c!--\n    \u003cdependency\u003e\n        \u003cgroupId\u003eme.croabeast.takion\u003c/groupId\u003e\n        \u003cartifactId\u003eshaded\u003c/artifactId\u003e\n        \u003cversion\u003e1.6.3\u003c/version\u003e\n        \u003cclassifier\u003eall\u003c/classifier\u003e\n    \u003c/dependency\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003eme.croabeast.takion\u003c/groupId\u003e\n        \u003cartifactId\u003eplugin\u003c/artifactId\u003e\n        \u003cversion\u003e1.6.3\u003c/version\u003e\n    \u003c/dependency\u003e\n    --\u003e\n\u003c/dependencies\u003e\n```\n\nOnce declared, reload your project and you are ready to import `TakionLib`.\n\n---\n\n## 🏃 Quickstart\n\n1. **Initialize the library** during your plugin's `onEnable` hook:\n    ```java\n    public class MyPlugin extends JavaPlugin {\n        private TakionLib takion;\n\n        @Override\n        public void onEnable() {\n            takion = new TakionLib(this);\n        }\n    }\n    ```\n2. **Send rich messages** with placeholders and gradients:\n    ```java\n    takion.getLoadedSender()\n          .addPlaceholder(\"{player}\", player.getName())\n          .send(\"\u003cgradient:#8a4dff:#4dfcff\u003eHello, {player}!\u003creset\u003e\");\n    ```\n3. **Display titles** with animation timings:\n    ```java\n    takion.getTitleManager()\n          .builder(\"\u0026dWelcome\", \"\u00267Enjoy your stay!\")\n          .fadeIn(10).stay(60).fadeOut(10)\n          .send(player);\n    ```\n4. **Reuse Takion's Prismatic chat processor** when working with interactive chat components:\n    ```java\n    BaseComponent[] components = MultiComponent\n          .fromString(takion.getChatProcessor(), \"\u003crun:\\\"/spawn\\\"\u003eSpawn\u003c/text\u003e\")\n          .compile(player);\n    ```\n\n   Takion creates this processor automatically. Plugins only need `setChatProcessor(...)` when they want to replace the default component preprocessing.\n\nEverything is exposed through `TakionLib`, so once you keep a reference, the rest of the managers are a method call away.\n\n---\n\n## 🧭 Feature Tour\n\n| Capability                | What it does                                                                                                         |\n|---------------------------|----------------------------------------------------------------------------------------------------------------------|\n| **PlaceholderManager**    | Register, resolve, and chain placeholders with context-aware values, including Vault/chat integrations when present. |\n| **MessageSender**         | Compose reusable templates, apply gradients, center text, and deliver to players, console, or audiences.             |\n| **TitleManager**          | Configure fade timings globally and build one-off titles through a fluent builder API.                               |\n| **CharacterManager**      | Normalize character widths, handle small capitals, and align text perfectly in chat or GUIs.                         |\n| **ChannelManager**        | Define named chat channels, route messages, and attach formatting or permission requirements.                        |\n| **FormatManager \u0026 Rules** | Parse simple markup, enforce server-specific rules (`GameRuleManager`), and blend them into outbound messages.       |\n| **TakionLogger**          | Structured logging with optional server/plugin separation, colorized output, and external API hooks.                 |\n| **GlobalScheduler**       | Unified async/sync task scheduling compatible with Bukkit, Paper, and Folia environments.                            |\n\nAll components are designed to be modular: you can use them individually or stitch them together for a full chat pipeline.\n\n---\n\n## 🛠️ Building from Source\n\n1. **Clone the repository**:\n   ```bash\n   git clone https://github.com/CroaBeast/Takion.git\n   cd Takion\n   ```\n2. **Build every module** (jars end up in `*/build/libs`):\n   ```bash\n   ./gradlew clean build\n   ```\n3. **Pick your artifact**:\n    - `common/build/libs/common-\u003cversion\u003e.jar` - shared utilities.\n    - `core/build/libs/core-\u003cversion\u003e.jar` – API only.\n    - `shaded/build/libs/shaded-\u003cversion\u003e.jar` – shaded distribution.\n    - `shaded/build/libs/shaded-\u003cversion\u003e-all.jar` – shaded distribution with the `all` classifier.\n    - `plugin/build/libs/plugin-\u003cversion\u003e.jar` – ready-to-run plugin with relocated packages.\n\nGradle Wrapper handles dependency downloads, so no additional setup is required.\n\n---\n\n## 🤝 Contributing\n\nWe welcome contributions! Before opening a pull request:\n\n1. Discuss major features in [GitHub issues](https://github.com/CroaBeast/Takion/issues) or in the Discord server.\n2. Follow the existing code style and prefer Lombok annotations where the project already uses them.\n3. Include tests or examples when adding new messaging features or integrations.\n4. Run `./gradlew check` to ensure the build stays green.\n\n---\n\n## 📄 License\n\nTakion is distributed under the **GNU General Public License v3.0**. See the [LICENSE](LICENSE) file for full terms. Using the shaded/plugin distributions on a server implies acceptance of the GPLv3 requirements.\n\nEnjoy crafting delightful chat experiences! 💬\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcroabeast%2Ftakion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcroabeast%2Ftakion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcroabeast%2Ftakion/lists"}