# PrismaticAPI
PrismaticAPI 是一个强大的实用库,用于 Bukkit/Spigot/Paper 插件中的高级颜色操作和文本格式化。 最初是从 [IridiumColorAPI](https://github.com/IridiumLLC/IridiumColorAPI) 分叉而来,PrismaticAPI 随后发生了显著变化,扩展了其功能并改进了其设计,以提供增强的特性,例如动态渐变、彩虹效果以及改进的对传统和现代 RGB 颜色方案的支持。
---
## 概述
**PrismaticAPI** 提供了一个强大而统一的接口来:
- **应用颜色效果:** 通过生成 `ChatColor` 值的数组来创建平滑的渐变和彩虹效果。
- **处理字符串:** 通过应用一系列注册的颜色模式和翻译替代颜色代码来对文本进行着色。
- **去除格式:** 移除传统和现代颜色格式以检索纯文本。
---
## 主要特性
- **渐变效果:**
通过生成可以应用于文本的中间颜色的数组,在两个颜色之间创建平滑的颜色渐变。
- **彩虹效果:**
根据定义的步骤数和饱和度参数,动态地在字符串上生成彩虹效果。
- **传统和现代支持:**
根据服务器版本和玩家客户端自动适应传统(16 色模式)和现代 RGB 颜色支持。
- **文本处理:**
提供方法来将所有注册的颜色模式应用于文本,以及去除任何颜色或格式代码,在需要时确保干净的纯文本输出。
### 与 IridiumColorAPI 相比的主要增强
- **增强的渐变和彩虹效果:**
PrismaticAPI 引入了更灵活的渐变和彩虹功能,能够实现更平滑、更动态的颜色过渡。
- **改进的文本处理:**
更好地处理颜色代码和去除方法,从而更容易操纵和清理文本。
- **优化的 API 设计:**
为应用和去除颜色提供了精简的方法,以及更模块化、更易于维护的代码库。
---
## 用法示例
### 示例 1:着色聊天消息
```java
package com.example.myplugin;
import me.croabeast.prismatic.PrismaticAPI;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
public class MyPlugin extends JavaPlugin {
@Override
public void onEnable() {
// 示例玩家 (可以从事件中获取)
Player player = Bukkit.getPlayer("a player reference");
// 使用 PrismaticAPI 着色消息
String message = "&aHello, &bworld!";
String coloredMessage = PrismaticAPI.colorize(player, message);
// 发送着色消息
player.sendMessage(coloredMessage);
}
}
```
### 示例 2:应用渐变效果
```java
package com.example.myplugin;
import me.croabeast.prismatic.PrismaticAPI;
import org.bukkit.ChatColor;
import org.bukkit.Color;
import org.bukkit.plugin.java.JavaPlugin;
public class MyPlugin extends JavaPlugin {
@Override
public void onEnable() {
// 定义渐变的起始和结束颜色
Color startColor = new Color(255, 0, 0); // 红色
Color endColor = new Color(0, 0, 255); // 蓝色
// 将渐变效果应用于文本 "Gradient Text"
String gradientText = PrismaticAPI.applyGradient("Gradient Text", startColor, endColor, false);
// 记录渐变文本 (或将其发送给玩家)
getLogger().info(gradientText);
}
}
```
### 示例 3:去除所有格式
```java
package com.example.myplugin;
import me.croabeast.prismatic.PrismaticAPI;
import org.bukkit.plugin.java.JavaPlugin;
public class MyPlugin extends JavaPlugin {
@Override
public void onEnable() {
String formattedText = "&aThis &btext &chas &dcolored &ewith &6codes";
// 移除所有颜色和格式代码
String plainText = PrismaticAPI.stripAll(formattedText);
getLogger().info("Plain text: " + plainText);
}
}
```
---
## Maven / Gradle 安装
要将 PrismaticAPI 包含到项目中,请将以下仓库和依赖项添加到构建配置中。 将`${version}`替换为所需的版本标记。
### Maven
将仓库和依赖项添加到您的 `pom.xml`:
```xml
croabeast-repo
https://croabeast.github.io/repo/
me.croabeast
PrismaticAPI
${version}
compile
```
### Gradle
将仓库和依赖项添加到您的 `build.gradle`:
```groovy
repositories {
maven {
url "https://croabeast.github.io/repo/"
}
}
dependencies {
implementation "me.croabeast:PrismaticAPI:${version}"
}
```
将`${version}`替换为适当的模块版本。
---
## 结论
**PrismaticAPI** 将高级颜色操作和文本格式化功能整合到一个易于使用的 API 中。无论您需要创建引人注目的渐变、实现动态彩虹效果,还是仅仅清理格式化文本,PrismaticAPI 都为您提供所需的工具。它对传统和现代 RGB 格式的支持确保了不同服务器版本和玩家客户端的广泛兼容性。
使用 PrismaticAPI 增强您插件的视觉呈现和用户体验!
Happy coding!
— *CroaBeast*