1
mirror of https://github.com/CarmJos/EasyPlugin.git synced 2026-06-05 09:01:47 +08:00

Compare commits

..

2 Commits

20 changed files with 119 additions and 34 deletions
+7 -1
View File
@@ -36,8 +36,14 @@
### 主要部分 (`/base`)
- Utils [`easyplugin-utils`](base/utils)
- 通用工具类模块,该模块中的内容支持在Bungee、Bukkit使用。
- 本模块提供
- `ColorParser` 支持RGB颜色与RGB渐变色的颜色解析器。
- `EasyCooldown` 快速创造一个冷却时间的管理器。
- `JarResourceUtils` 快速读取Jar包内容的工具类。
- Main [`easyplugin-main`](base/main)
- 主要接口模块,提供了方便的插件入口类与相关工具类。
- 主要接口模块,提供了方便的插件入口类与相关工具类。
- Command [`easyplugin-command`](base/command)
- 指令接口模块,便于快速进行子指令的实现,并提供单独的TabComplete方法。
- 随本项目提供了 `SimpleCompleter` 类,用于快速创建补全的内容列表。
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.4.17</version>
<version>1.4.18</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.4.17</version>
<version>1.4.18</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.4.17</version>
<version>1.4.18</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.4.17</version>
<version>1.4.18</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.4.17</version>
<version>1.4.18</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+9 -2
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.4.17</version>
<version>1.4.18</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -22,7 +22,7 @@
<packaging>jar</packaging>
<name>EasyPlugin-Main</name>
<description>轻松插件主要接口模块,包含便的插件入口类与相关工具类。</description>
<description>轻松插件主要接口模块,包含便的插件入口类与相关工具类。</description>
<url>https://github.com/CarmJos/EasyPlugin</url>
<developers>
@@ -53,6 +53,13 @@
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>easyplugin-utils</artifactId>
<version>${project.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>me.clip</groupId>
<artifactId>placeholderapi</artifactId>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.4.17</version>
<version>1.4.18</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+51
View File
@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.4.18</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<properties>
<maven.compiler.source>${project.jdk.version}</maven.compiler.source>
<maven.compiler.target>${project.jdk.version}</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
</properties>
<artifactId>easyplugin-utils</artifactId>
<name>EasyPlugin-Utils</name>
<description>轻松插件工具类模块,该模块中的内容支持在Bungee、Bukkit使用。</description>
<url>https://github.com/CarmJos/EasyPlugin</url>
<developers>
<developer>
<id>CarmJos</id>
<name>Carm Jos</name>
<email>carm@carm.cc</email>
<url>https://www.carm.cc</url>
</developer>
</developers>
<licenses>
<license>
<name>The MIT License</name>
<url>https://opensource.org/licenses/MIT</url>
</license>
</licenses>
<issueManagement>
<system>GitHub Issues</system>
<url>https://github.com/CarmJos/EasyPlugin/issues</url>
</issueManagement>
<ciManagement>
<system>GitHub Actions</system>
<url>https://github.com/CarmJos/EasyPlugin/actions/workflows/maven.yml</url>
</ciManagement>
</project>
@@ -25,15 +25,46 @@ public class ColorParser {
public static final Pattern COLOR_PATTERN = Pattern.compile("([&§][0-9a-fA-FrRxX])+"); // 会影响颜色的代码
public static final Pattern FORMAT_PATTERN = Pattern.compile("([&§][0-9a-fA-Fk-oK-OrRxX])+"); // MC可用的格式化代码
public static String parse(String text) {
/**
* 清除一条消息中的全部颜色代码 (包括RGB颜色代码与渐变颜色代码)
*
* @param text 源消息内容
* @return 清理颜色后的消息
*/
public static @NotNull String clear(@NotNull String text) {
text = HEX_PATTERN.matcher(text).replaceAll("");
text = GRADIENT_PATTERN.matcher(text).replaceAll("");
text = COLOR_PATTERN.matcher(text).replaceAll("");
return text;
}
/**
* 对一条消息进行颜色解析包括普通颜色代码RGB颜色代码与RBG渐变代码
*
* @param text 源消息内容
* @return 解析后的消息
*/
public static @NotNull String parse(@NotNull String text) {
return parseBaseColor(parseGradientColor(parseHexColor(text)));
}
public static String[] parse(String... texts) {
/**
* 对多条消息进行颜色解析包括普通颜色代码RGB颜色代码与RBG渐变代码
*
* @param texts 源消息内容
* @return 解析后的消息
*/
public static @NotNull String[] parse(@NotNull String... texts) {
return parse(Arrays.asList(texts)).toArray(new String[0]);
}
public static List<String> parse(List<String> texts) {
/**
* 对多条消息进行颜色解析包括普通颜色代码RGB颜色代码与RBG渐变代码
*
* @param texts 源消息内容
* @return 解析后的消息
*/
public static @NotNull List<String> parse(@NotNull Collection<String> texts) {
return texts.stream().map(ColorParser::parse).collect(Collectors.toList());
}
@@ -1,12 +1,10 @@
package cc.carm.lib.easyplugin.utils;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import java.text.NumberFormat;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import java.util.function.Consumer;
import java.util.function.Function;
@@ -82,7 +80,7 @@ public class EasyCooldown<P, K> {
return numberFormatter.format((double) cooldownMillis / 1000D);
}
public static NumberFormat createFormatter(Consumer<NumberFormat> consumer) {
public static NumberFormat createFormatter(@NotNull Consumer<NumberFormat> consumer) {
NumberFormat format = NumberFormat.getInstance();
consumer.accept(format);
return format;
@@ -92,13 +90,4 @@ public class EasyCooldown<P, K> {
return createFormatter((f) -> f.setMaximumFractionDigits(2));
}
public static EasyCooldown<Player, UUID> playerCooldown(Function<Player, Long> durationProvider) {
return new EasyCooldown<Player, UUID>(Player::getUniqueId) {
@Override
public long getDuration(@NotNull Player provider) {
return durationProvider.apply(provider);
}
};
}
}
@@ -4,10 +4,9 @@ import org.junit.Test;
import java.util.LinkedHashMap;
import java.util.regex.Matcher;
import static cc.carm.lib.easyplugin.utils.ColorParser.parse;
import static cc.carm.lib.easyplugin.utils.ColorParser.parseGradientColor;
import static cc.carm.lib.easyplugin.utils.ColorParser.*;
public class GradientTest {
public class ColorParseTest {
@Test
@@ -20,6 +19,7 @@ public class GradientTest {
System.out.println(parse("&<#AAAAAA>&l我&r真&(#666666)的&<#BBBBBB>&o爱死&<#111111>你&<#FFFFFF>了&r"));
System.out.println(parse("&r正常的颜色理应&c&l不受影响&r。"));
System.out.println(clear("&f测试&<#AAAAAA>清理颜色代码&<#111111> &&这样应该&(#666666)不被影响 &f。"));
}
@Test
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.4.17</version>
<version>1.4.18</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.4.17</version>
<version>1.4.18</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.4.17</version>
<version>1.4.18</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.4.17</version>
<version>1.4.18</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.4.17</version>
<version>1.4.18</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>easyplugin-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.4.17</version>
<version>1.4.18</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+2 -1
View File
@@ -15,8 +15,9 @@
<groupId>cc.carm.lib</groupId>
<artifactId>easyplugin-parent</artifactId>
<packaging>pom</packaging>
<version>1.4.17</version>
<version>1.4.18</version>
<modules>
<module>base/utils</module>
<module>base/main</module>
<module>base/conf</module>