
Takion
Takion is a powerful Spigot library for advanced chat, text formatting, and messaging utilities in Minecraft plugins.
- Загрузки
- 472
- Подписчики
- 0
- Обновлён
- 25 мая 2026 г.
- Лицензия
- GPL-3.0-only
Опубликован 7 апреля 2025 г.
✨ Takion
Takion 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.
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. 🧙♂️
📚 Table of Contents
- Highlights
- Module Overview
- Ecosystem & Bundled APIs
- Installation
- Quickstart
- Feature Tour
- Building from Source
- Contributing
- License
🚀 Highlights
- Production-ready chat core featuring color pipelines, rich components, and consistent alignment logic.
- Channel, placeholder, and rule management baked directly into the
TakionLibentry point for one-line access in your plugin lifecycle. - Scheduler integration via
GlobalScheduler, making it trivial to run asynchronous or delayed messaging tasks without boilerplate. - Drop-in metrics (bstats) and optional Vault/chat bridges when using the plugin distribution.
- Ready for shading—choose between the lightweight core API, the shaded binary, the
shaded:allvariant with extra bundled libraries, or the demonstration plugin module.
🧩 Module Overview
Takion is a multi-module Gradle project. Pick the artifact that matches your distribution strategy:
| Module | Description | Ideal For |
|---|---|---|
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. |
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. |
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. |
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. |
All modules target Java 8 using Gradle toolchains, so you can build and run on modern JDKs while remaining compatible with legacy Minecraft hosts.
🌐 Ecosystem & Bundled APIs
Takion leans on several battle-tested libraries created by the same author:
- PrismaticAPI - color gradients, RGB conversion and interactive chat components.
- YAML-API – lightweight YAML configuration helpers and file management.
- GlobalScheduler – abstraction for Paper/Spigot task scheduling.
- VaultAdapter (plugin module) – bridges Vault chat/permissions into Takion placeholders.
- CommandFramework and AdvancementInfo** (via the
shaded:allclassifier) – extendable command and advancement utilities. - bStats (plugin module) – anonymous usage metrics (relocated to avoid conflicts).
Optional integrations such as InteractiveChat or Vault can be toggled inside the plugin module without affecting the core API.
📦 Installation
Add the public repository and choose the dependency that fits your workflow. As of Takion 1.6.3, artifacts live under the
me.croabeast.takion group and are published per-module (common, core, shaded, plugin), with an additional all classifier on shaded.
Heads up: You only need either the
shaded,shaded:all, orpluginartifact at runtime. Thecommonandcoreartifacts are optional—keep them ascompileOnlydependencies when you want IDE access to the sources or plan to shade Takion yourself, but they are not required on your production server.
Gradle (Kotlin DSL)
repositories {
maven("https://croabeast.github.io/repo/")
}
dependencies {
// Optional: keep common/core on the compileOnly classpath for source access while shading
compileOnly("me.croabeast.takion:common:1.6.3")
compileOnly("me.croabeast.takion:core:1.6.3")
// Choose exactly one runtime
implementation("me.croabeast.takion:shaded:1.6.3")
// implementation("me.croabeast.takion:shaded:1.6.3:all")
// implementation("me.croabeast.takion:plugin:1.6.3")
}
Gradle (Groovy DSL)
repositories {
maven { url "https://croabeast.github.io/repo/" }
}
dependencies {
// Optional: keep common/core on the compileOnly classpath for source access while shading
compileOnly "me.croabeast.takion:common:1.6.3"
compileOnly "me.croabeast.takion:core:1.6.3"
// Choose exactly one runtime
implementation "me.croabeast.takion:shaded:1.6.3"
// implementation "me.croabeast.takion:shaded:1.6.3:all"
// implementation "me.croabeast.takion:plugin:1.6.3"
}
Maven
<repositories>
<repository>
<id>croabeast-repo</id>
<url>https://croabeast.github.io/repo/</url>
</repository>
</repositories>
<dependencies>
<!-- Optional: include common/core for compilation-time access to the API -->
<dependency>
<groupId>me.croabeast.takion</groupId>
<artifactId>common</artifactId>
<version>1.6.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>me.croabeast.takion</groupId>
<artifactId>core</artifactId>
<version>1.6.3</version>
<scope>provided</scope>
</dependency>
<!-- Choose exactly one runtime -->
<dependency>
<groupId>me.croabeast.takion</groupId>
<artifactId>shaded</artifactId>
<version>1.6.3</version>
</dependency>
<!--
<dependency>
<groupId>me.croabeast.takion</groupId>
<artifactId>shaded</artifactId>
<version>1.6.3</version>
<classifier>all</classifier>
</dependency>
<dependency>
<groupId>me.croabeast.takion</groupId>
<artifactId>plugin</artifactId>
<version>1.6.3</version>
</dependency>
-->
</dependencies>
Once declared, reload your project and you are ready to import TakionLib.
🏃 Quickstart
Initialize the library during your plugin's
onEnablehook:public class MyPlugin extends JavaPlugin { private TakionLib takion; @Override public void onEnable() { takion = new TakionLib(this); } }Send rich messages with placeholders and gradients:
takion.getLoadedSender() .addPlaceholder("{player}", player.getName()) .send("<gradient:#8a4dff:#4dfcff>Hello, {player}!<reset>");Display titles with animation timings:
takion.getTitleManager() .builder("&dWelcome", "&7Enjoy your stay!") .fadeIn(10).stay(60).fadeOut(10) .send(player);Reuse Takion's Prismatic chat processor when working with interactive chat components:
BaseComponent[] components = MultiComponent .fromString(takion.getChatProcessor(), "<run:\"/spawn\">Spawn</text>") .compile(player);Takion creates this processor automatically. Plugins only need
setChatProcessor(...)when they want to replace the default component preprocessing.
Everything is exposed through TakionLib, so once you keep a reference, the rest of the managers are a method call away.
🧭 Feature Tour
| Capability | What it does |
|---|---|
| PlaceholderManager | Register, resolve, and chain placeholders with context-aware values, including Vault/chat integrations when present. |
| MessageSender | Compose reusable templates, apply gradients, center text, and deliver to players, console, or audiences. |
| TitleManager | Configure fade timings globally and build one-off titles through a fluent builder API. |
| CharacterManager | Normalize character widths, handle small capitals, and align text perfectly in chat or GUIs. |
| ChannelManager | Define named chat channels, route messages, and attach formatting or permission requirements. |
| FormatManager & Rules | Parse simple markup, enforce server-specific rules (GameRuleManager), and blend them into outbound messages. |
| TakionLogger | Structured logging with optional server/plugin separation, colorized output, and external API hooks. |
| GlobalScheduler | Unified async/sync task scheduling compatible with Bukkit, Paper, and Folia environments. |
All components are designed to be modular: you can use them individually or stitch them together for a full chat pipeline.
🛠️ Building from Source
- Clone the repository:
git clone https://github.com/CroaBeast/Takion.git cd Takion - Build every module (jars end up in
*/build/libs):./gradlew clean build - Pick your artifact:
common/build/libs/common-<version>.jar- shared utilities.core/build/libs/core-<version>.jar– API only.shaded/build/libs/shaded-<version>.jar– shaded distribution.shaded/build/libs/shaded-<version>-all.jar– shaded distribution with theallclassifier.plugin/build/libs/plugin-<version>.jar– ready-to-run plugin with relocated packages.
Gradle Wrapper handles dependency downloads, so no additional setup is required.
🤝 Contributing
We welcome contributions! Before opening a pull request:
- Discuss major features in GitHub issues or in the Discord server.
- Follow the existing code style and prefer Lombok annotations where the project already uses them.
- Include tests or examples when adding new messaging features or integrations.
- Run
./gradlew checkto ensure the build stays green.
📄 License
Takion is distributed under the GNU General Public License v3.0. See the LICENSE file for full terms. Using the shaded/plugin distributions on a server implies acceptance of the GPLv3 requirements.
Enjoy crafting delightful chat experiences! 💬
Ченджлог
1.6.3Релиз26.1, 26.1.1, 26.1.2 · 25 мая 2026 г.
Takion 1.6.3
Major update from 1.3 to 1.6.3, focused on the new Gradle multi-module structure, cleaner published artifacts, stronger version compatibility helpers, improved game rule support, and a better chat component pipeline.
Added
- Added a Gradle multi-module project structure with
common,core,shaded, andpluginmodules. - Added published per-module artifacts under
me.croabeast.takion, includingcommon,core,shaded, andplugin. - Added a
shaded:allclassifier for users who want a larger bundled distribution with extra runtime libraries. - Added a dedicated
commonartifact for reusable utilities such as GUI helpers, reflection helpers, service access, webhook utilities, time utilities, and dependency helpers. - Added a dedicated
coreartifact for the main Takion API, managers, formatting, placeholders, channels, logging, messaging, bossbars, titles, and game rules. - Added VNC-based server/version compatibility checks.
- Added improved GameRule support through
GameRule,GameRuleManager, and version-aware rule resolution. - Added player-head hover formatting support through player head tokens/components.
- Added a configurable PrismaticAPI
ChatProcessorowned byTakionLib. - Added
getChatProcessor()andsetChatProcessor(...)so plugins can reuse Takion's default component processing or replace it when needed. - Added expanded README/Javadocs covering installation, module usage, common APIs, formatting, logging, game rules, and chat processor usage.
Changed
- Migrated the build and release flow from the old Maven-style layout to Gradle.
- Updated the publishing workflow to build and publish all Takion modules, source jars, javadocs, shaded jars, and release assets.
- Changed the Maven coordinates to the new
me.croabeast.takionmodule-based layout. - Merged the old
shaded-alldistribution into theshadedartifact as anallclassifier. - Updated PrismaticAPI to
1.5.0. - Updated CommandFramework to
1.2.1. - Updated VaultAdapter to
1.2. - Updated GlobalScheduler to
1.1. - Updated InventoryFramework support to
0.12.0. - Delegated Takion chat component handling to PrismaticAPI instead of maintaining local duplicated chat component classes.
- Modernized server metadata checks through VNC instead of older direct server-version logic.
- Simplified message formatting and color/component handling around the new PrismaticAPI flow.
- Refreshed the README installation examples for the current published artifacts and runtime choices.
Fixed
- Fixed GUI compatibility by updating InventoryFramework support.
- Fixed
TakionLibresolution so multiple plugins can resolve the correct library instance instead of falling back to the wrong provider. - Fixed animated bossbar update handling, including safer cleanup for offline players and more stable animation intervals.
- Fixed common plugin supplier compatibility by keeping
setPluginSupplier(...)as a deprecated bridge tosetPlugin(...). - Fixed version/docs drift by aligning
1.6.3usage examples, coordinates, and Javadocs with the new chat processor API.
Notes / Recommendations
- If you only need Takion APIs at compile time, use
commonand/orcoreas compile-only dependencies. - If you want a runtime jar with Takion bundled, use
shaded. - If you need the larger bundled runtime with extra dependencies, use
shaded:all. - If you deploy Takion directly as a plugin, use the
pluginartifact. - Plugins using interactive chat components should use
takion.getChatProcessor()instead of creating their own default processor. - Only use
setChatProcessor(...)when you intentionally need custom component preprocessing. - Existing integrations using
CommonServices.setPluginSupplier(...)should migrate toCommonServices.setPlugin(...), but the old method remains as a compatibility bridge. - All modules continue targeting Java 8 bytecode.
1.3Релиз1.21.6, 1.21.7, 1.21.8 · 3 августа 2025 г.
Fixing AnimatedBossbar. Maven module handling.
1.2Релиз1.21.6, 1.21.7, 1.21.8 · 25 июля 2025 г.
Updating all dependencies. Added a shaded version.
Комментарии
Загружаем…