Перейти к содержимому
Mineforgian

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 г.

Discord

✨ 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

  1. Highlights
  2. Module Overview
  3. Ecosystem & Bundled APIs
  4. Installation
  5. Quickstart
  6. Feature Tour
  7. Building from Source
  8. Contributing
  9. License

🚀 Highlights

  • Production-ready chat core featuring color pipelines, rich components, and consistent alignment logic.
  • Channel, placeholder, and rule management baked directly into the TakionLib entry 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:all variant 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:all classifier) – 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, or plugin artifact at runtime. The common and core artifacts are optional—keep them as compileOnly dependencies 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

  1. Initialize the library during your plugin's onEnable hook:

    public class MyPlugin extends JavaPlugin {
        private TakionLib takion;
    
        @Override
        public void onEnable() {
            takion = new TakionLib(this);
        }
    }
    
  2. Send rich messages with placeholders and gradients:

    takion.getLoadedSender()
          .addPlaceholder("{player}", player.getName())
          .send("<gradient:#8a4dff:#4dfcff>Hello, {player}!<reset>");
    
  3. Display titles with animation timings:

    takion.getTitleManager()
          .builder("&dWelcome", "&7Enjoy your stay!")
          .fadeIn(10).stay(60).fadeOut(10)
          .send(player);
    
  4. 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

  1. Clone the repository:
    git clone https://github.com/CroaBeast/Takion.git
    cd Takion
    
  2. Build every module (jars end up in */build/libs):
    ./gradlew clean build
    
  3. 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 the all classifier.
    • 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:

  1. Discuss major features in GitHub issues or in the Discord server.
  2. Follow the existing code style and prefer Lombok annotations where the project already uses them.
  3. Include tests or examples when adding new messaging features or integrations.
  4. Run ./gradlew check to 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, and plugin modules.
  • Added published per-module artifacts under me.croabeast.takion, including common, core, shaded, and plugin.
  • Added a shaded:all classifier for users who want a larger bundled distribution with extra runtime libraries.
  • Added a dedicated common artifact for reusable utilities such as GUI helpers, reflection helpers, service access, webhook utilities, time utilities, and dependency helpers.
  • Added a dedicated core artifact 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 ChatProcessor owned by TakionLib.
  • Added getChatProcessor() and setChatProcessor(...) 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.takion module-based layout.
  • Merged the old shaded-all distribution into the shaded artifact as an all classifier.
  • 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 TakionLib resolution 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 to setPlugin(...).
  • Fixed version/docs drift by aligning 1.6.3 usage examples, coordinates, and Javadocs with the new chat processor API.

Notes / Recommendations

  • If you only need Takion APIs at compile time, use common and/or core as 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 plugin artifact.
  • 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 to CommonServices.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.

Комментарии

Загружаем…