Skip to content

Commit 41d27d4

Browse files
committed
Support modern year based versions
1 parent f579f99 commit 41d27d4

3 files changed

Lines changed: 106 additions & 4 deletions

File tree

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ plugins {
44
}
55

66
group = "com.iridium"
7-
version = "1.0.10"
7+
version = "1.0.11"
88
description = "IridiumColorAPI"
99
java.sourceCompatibility = JavaVersion.VERSION_1_8
1010

src/main/java/com/iridium/iridiumcolorapi/IridiumColorAPI.java

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,11 @@ private static ChatColor getClosestColor(Color color) {
278278

279279
/**
280280
* Gets a simplified major version (..., 9, 10, ..., 14).
281+
* <p>
282+
* Minecraft historically versioned Java Edition as {@code 1.X} (e.g. {@code 1.16}, {@code 1.21}).
283+
* Starting in 2026, Mojang moved to a year-based scheme, e.g. {@code 26.1}, {@code 26.2}, {@code 27.1}.
284+
* Since every year-based release postdates the {@code 1.16} RGB update, any version whose major
285+
* component isn't {@code 1} is treated as unconditionally RGB-capable by returning a value {@code >= 16}.
281286
* In most cases, you shouldn't be using this method.
282287
*
283288
* @return the simplified major version, or -1 for bungeecord
@@ -300,11 +305,22 @@ private static int getVersion() {
300305
index = version.indexOf('-');
301306
version = version.substring(0, index);
302307
}
303-
// 1.13.2, 1.14.4, etc...
308+
// Trim any patch component, e.g. 1.13.2 -> 1.13, 26.1.2 -> 26.1
309+
int firstDot = version.indexOf('.');
304310
int lastDot = version.lastIndexOf('.');
305-
if (version.indexOf('.') != lastDot) version = version.substring(0, lastDot);
311+
if (firstDot != lastDot) version = version.substring(0, lastDot);
306312

307-
return Integer.parseInt(version.substring(2));
313+
int secondDot = version.indexOf('.');
314+
String majorPart = version.substring(0, secondDot);
315+
String minorPart = version.substring(secondDot + 1);
316+
317+
if ("1".equals(majorPart)) {
318+
// Legacy "1.X" versioning, e.g. 1.8, 1.16, 1.21
319+
return Integer.parseInt(minorPart);
320+
}
321+
322+
// Year-based versioning (2026+), e.g. 26.1, 26.2, 27.1. Always postdates the RGB update.
323+
return Integer.parseInt(majorPart) + 100;
308324
}
309325

310326
/**
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
package com.iridium.iridiumcolorapi;
2+
3+
import org.bukkit.Bukkit;
4+
import org.junit.jupiter.api.AfterAll;
5+
import org.junit.jupiter.api.BeforeAll;
6+
import org.junit.jupiter.api.Test;
7+
import org.mockito.MockedStatic;
8+
import org.mockito.Mockito;
9+
10+
import java.awt.*;
11+
import java.util.Arrays;
12+
import java.util.List;
13+
14+
import static org.junit.jupiter.api.Assertions.assertEquals;
15+
16+
class IridiumColorAPINewVersionsTest {
17+
18+
static MockedStatic<Bukkit> mockedStatic;
19+
20+
@BeforeAll
21+
static void setup() {
22+
mockedStatic = Mockito.mockStatic(Bukkit.class);
23+
mockedStatic.when(Bukkit::getVersion).thenReturn("26.1.1-R0.1-SNAPSHOT");
24+
}
25+
26+
@Test
27+
void process() {
28+
29+
assertEquals("§x§1§2§3§4§5§6Test", IridiumColorAPI.process("<SOLID:123456>Test"));
30+
assertEquals("§x§1§2§3§4§5§6Te§kst", IridiumColorAPI.process("<SOLID:123456>Te&kst"));
31+
assertEquals("§x§2§c§0§8§b§a§lT§x§1§e§3§3§a§f§le§x§1§0§5§e§a§4§ls§x§0§2§8§9§9§9§lt", IridiumColorAPI.process("<GRADIENT:2C08BA>&lTest</GRADIENT:028A97>"));
32+
assertEquals("§x§2§c§0§8§b§a§lT§x§1§e§3§3§a§f§le§x§1§0§5§e§a§4§ls§x§0§2§8§9§9§9§l§kt", IridiumColorAPI.process("<GRADIENT:2C08BA>&lTes§kt</GRADIENT:028A97>"));
33+
assertEquals("§x§f§f§0§0§0§0§lT§x§8§0§f§f§0§0§le§x§0§0§f§f§f§f§ls§x§8§0§0§0§f§f§lt", IridiumColorAPI.process("<RAINBOW1>&lTest</RAINBOW>"));
34+
assertEquals("§x§f§f§0§0§0§0§lT§x§8§0§f§f§0§0§le§x§0§0§f§f§f§f§ls§x§8§0§0§0§f§f§l§kt", IridiumColorAPI.process("<RAINBOW1>&lTes&kt</RAINBOW>"));
35+
assertEquals("§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*", IridiumColorAPI.process("<GRADIENT:123456>******************************************************************************************************************************************************************************************************</GRADIENT:ABCDEF>"));
36+
}
37+
38+
@Test
39+
void listProcess() {
40+
List<String> list = Arrays.asList("<SOLID:123456>Test", "<GRADIENT:2C08BA>Test</GRADIENT:028A97>", "<GRADIENT:123456>******************************************************************************************************************************************************************************************************</GRADIENT:ABCDEF>");
41+
List<String> result = IridiumColorAPI.process(list);
42+
43+
assertEquals("§x§1§2§3§4§5§6Test", result.get(0));
44+
assertEquals("§x§2§c§0§8§b§aT§x§1§e§3§3§a§fe§x§1§0§5§e§a§4s§x§0§2§8§9§9§9t", result.get(1));
45+
assertEquals("§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*§x§1§2§3§4§5§6*", result.get(2));
46+
}
47+
48+
@Test
49+
void color() {
50+
assertEquals("§x§0§0§0§0§f§fTest", IridiumColorAPI.color("Test", Color.BLUE));
51+
assertEquals("§x§f§f§f§f§0§0Test", IridiumColorAPI.color("Test", Color.YELLOW));
52+
assertEquals("§x§0§0§0§0§0§0Test", IridiumColorAPI.color("Test", Color.BLACK));
53+
}
54+
55+
@Test
56+
void rainbow() {
57+
assertEquals("§x§f§f§0§0§0§0T§x§8§0§f§f§0§0e§x§0§0§f§f§f§fs§x§8§0§0§0§f§ft", IridiumColorAPI.rainbow("Test", 1));
58+
assertEquals("§x§f§f§f§f§a§dT§x§f§f§f§e§a§de§x§e§f§f§f§9§cs§x§7§f§e§f§9§ct", IridiumColorAPI.rainbow("Test", 100));
59+
assertEquals("§x§0§0§0§0§0§0T§x§0§0§0§0§0§0e§x§0§0§0§0§0§0s§x§0§0§0§0§0§0t", IridiumColorAPI.rainbow("Test", 0));
60+
assertEquals("§x§f§f§f§f§a§d*§x§d§f§7§f§a§d*§x§f§d§f§f§a§d*§x§d§d§7§f§a§d*§x§f§d§f§f§a§d*§x§d§d§7§f§a§d*§x§f§d§7§f§a§d*§x§d§f§f§f§a§d*§x§f§f§7§f§a§d*§x§d§f§f§f§a§d*§x§f§f§7§f§a§d*§x§d§d§f§f§a§d*§x§f§d§7§f§a§d*§x§d§d§f§f§a§d*§x§f§d§f§f§a§d*§x§d§d§7§f§a§d*§x§f§f§f§f§a§d*§x§d§f§7§f§a§d*§x§f§f§f§f§a§d*§x§d§f§7§f§a§d*§x§f§d§f§f§a§d*§x§d§d§7§f§a§d*§x§f§d§7§f§a§d*§x§d§d§f§f§a§d*§x§f§d§7§f§a§d*§x§d§f§f§f§a§d*§x§f§f§7§f§a§d*§x§d§f§f§f§a§d*§x§f§f§7§f§a§d*§x§f§f§f§e§a§d*§x§f§f§f§e§a§d*§x§f§f§f§e§a§d*§x§f§f§f§e§a§d*§x§f§f§f§e§a§d*§x§f§f§f§e§a§d*§x§f§f§f§e§a§d*§x§f§f§f§e§a§d*§x§f§f§f§e§a§d*§x§f§f§f§e§a§d*§x§f§f§f§e§a§d*§x§f§f§f§e§a§d*§x§f§f§f§e§a§d*§x§f§f§f§e§a§d*§x§f§f§f§e§a§d*§x§f§f§f§e§a§d*§x§f§f§f§e§a§d*§x§f§f§f§e§a§d*§x§f§f§f§e§a§d*§x§f§f§f§e§a§d*§x§f§f§f§e§a§d*§x§f§f§f§e§a§d*§x§f§f§f§e§a§d*§x§f§f§f§e§a§d*§x§f§f§f§e§a§d*§x§f§f§f§e§a§d*§x§f§f§f§e§a§d*§x§f§f§f§e§a§d*§x§f§f§f§f§d§d*§x§f§f§d§f§6§d*§x§f§f§b§e§f§d*§x§f§f§9§e§8§d*§x§f§f§f§e§1§d*§x§e§f§d§d§a§d*§x§e§f§b§d§3§d*§x§e§f§9§c§c§d*§x§e§f§f§c§5§d*§x§e§f§d§f§e§d*§x§e§f§b§f§7§d*§x§e§f§9§f§0§d*§x§e§f§f§e§9§d*§x§e§f§d§e§2§d*§x§e§f§b§d§b§d*§x§e§f§9§d§4§d*§x§e§f§f§c§d§d*§x§f§f§d§c§6§d*§x§f§f§b§f§f§d*§x§f§f§9§f§8§d*§x§f§f§f§f§1§d*§x§f§f§d§e§a§d*§x§f§f§b§e§3§d*§x§f§f§9§d§c§d*§x§f§f§f§d§5§d*§x§f§f§d§c§e§d*§x§f§f§b§c§7§d*§x§f§f§9§c§0§d*§x§e§f§f§f§9§c*§x§a§d§6§f§9§c*§x§a§d§7§f§9§c*§x§e§d§e§f§9§c*§x§e§d§7§f§9§c*§x§a§d§e§f§9§c*§x§a§f§7§f§9§c*§x§e§f§e§f§9§c*§x§e§f§7§f§9§c*§x§a§f§e§f§9§c*§x§a§f§f§f§9§c*§x§e§d§6§f§9§c*§x§e§d§f§f§9§c*§x§a§d§6§f§9§c*§x§a§d§f§f§9§c*§x§e§f§6§f§9§c*§x§e§f§f§f§9§c*§x§a§f§6§f§9§c*§x§a§f§7§f§9§c*§x§e§f§e§f§9§c*§x§e§d§7§f§9§c*§x§a§d§e§f§9§c*§x§a§d§7§f§9§c*§x§e§d§e§f§9§c*§x§e§f§7§f§9§c*§x§a§f§e§f§9§c*§x§a§f§f§f§9§c*§x§e§f§6§f§9§c*§x§e§f§f§f§9§c*§x§7§f§e§f§9§c*§x§f§f§e§f§9§c*§x§7§f§e§f§9§c*§x§f§f§e§f§9§c*§x§7§e§e§f§9§c*§x§f§f§e§f§9§c*§x§7§f§e§f§9§c*§x§f§e§e§f§9§c*§x§f§f§e§f§9§c*§x§7§f§e§f§9§c*§x§f§f§e§f§9§c*§x§7§f§e§f§9§c*§x§f§f§e§f§9§c*§x§7§e§e§f§9§c*§x§f§f§e§f§9§c*§x§7§f§e§f§9§c*§x§7§f§e§f§9§c*§x§f§f§e§f§9§c*§x§7§f§e§f§9§c*§x§f§f§e§f§9§c*§x§7§e§e§f§9§c*§x§f§e§e§f§9§c*§x§7§f§e§f§9§c*§x§f§e§e§f§9§c*§x§f§f§e§f§9§c*§x§7§f§e§f§9§c*§x§f§f§e§f§9§c*§x§7§f§e§f§9§c*§x§f§f§e§f§6§d*§x§f§e§a§f§d§e*§x§f§f§a§f§4§d*§x§f§f§e§f§b§d*§x§f§e§f§d§2§d*§x§f§f§b§d§9§d*§x§f§f§b§d§0§d*§x§f§e§f§d§7§d*§x§f§e§f§d§e§c*§x§f§f§b§f§5§e*§x§f§e§b§f§c§d*§x§f§e§f§f§3§e*§x§f§f§f§f§a§d*§x§f§e§b§d§1§d*§x§f§e§b§d§8§d*§x§f§f§f§d§f§d*§x§f§f§f§d§6§e*§x§f§e§b§d§d§e*§x§f§f§b§f§4§d*§x§f§f§f§f§b§d*§x§f§e§f§f§2§d*§x§f§f§b§f§9§d*§x§f§f§b§d§0§d*§x§f§e§f§d§7§d*§x§f§e§f§d§e§c*§x§f§f§b§d§5§e*§x§f§e§b§d§c§c*§x§f§e§f§f§3§e*", IridiumColorAPI.rainbow("**************************************************************************************************************************************************************************", 100));
61+
}
62+
63+
@Test
64+
void stripColorFormatting() {
65+
assertEquals("Test", IridiumColorAPI.stripColorFormatting("§8Test"));
66+
assertEquals("Test", IridiumColorAPI.stripColorFormatting("§1T§1e§3s§3t"));
67+
assertEquals("Test", IridiumColorAPI.stripColorFormatting("&1T§1e&3s§3t"));
68+
assertEquals("Test", IridiumColorAPI.stripColorFormatting("&1T&1e&3s&3t"));
69+
assertEquals("**************************************************************************************************************************************************************************", IridiumColorAPI.stripColorFormatting("§f*§7*§f*§7*§f*§7*§d*§f*§d*§f*§d*§f*§d*§f*§f*§7*§f*§7*§f*§7*§f*§7*§d*§f*§d*§f*§d*§f*§d*§f*§f*§f*§f*§f*§f*§f*§f*§f*§f*§f*§f*§f*§f*§f*§f*§f*§f*§f*§f*§f*§f*§f*§f*§f*§f*§f*§f*§f*§e*§f*§7*§e*§7*§6*§7*§e*§f*§e*§6*§e*§e*§7*§c*§f*§e*§f*§7*§e*§f*§6*§d*§e*§f*§e*§6*§e*§7*§7*§e*§7*§7*§7*§e*§7*§7*§7*§c*§e*§7*§7*§c*§e*§7*§7*§e*§7*§7*§7*§e*§7*§7*§7*§c*§e*§7*§e*§7*§e*§7*§e*§7*§e*§e*§7*§e*§7*§e*§7*§e*§7*§7*§e*§7*§e*§7*§e*§7*§e*§e*§7*§e*§7*§e*§f*§6*§f*§e*§7*§6*§e*§f*§e*§f*§e*§f*§6*§e*§f*§e*§f*§e*§f*§e*§7*§6*§e*§f*§e*§f*§e*"));
70+
assertEquals("Test", IridiumColorAPI.stripColorFormatting("<SOLID:123456>Test"));
71+
assertEquals("Test", IridiumColorAPI.stripColorFormatting("<GRADIENT:2C08BA>Test</GRADIENT:028A97>"));
72+
assertEquals("Test", IridiumColorAPI.stripColorFormatting("<RAINBOW1>Test</RAINBOW>"));
73+
assertEquals("Test", IridiumColorAPI.stripColorFormatting("<RAINBOW100>Test</RAINBOW>"));
74+
75+
assertEquals("<player>", IridiumColorAPI.stripColorFormatting("<player>"));
76+
assertEquals("<html>Test</html>", IridiumColorAPI.stripColorFormatting("<html>Test</html>"));
77+
assertEquals("<windows>Test</tests100>", IridiumColorAPI.stripColorFormatting("<windows>Test</tests100>"));
78+
assertEquals("&&&&&Test&&&&&", IridiumColorAPI.stripColorFormatting("&&&&&Test&&&&&"));
79+
}
80+
81+
@AfterAll
82+
static void tearDown() {
83+
mockedStatic.close();
84+
}
85+
86+
}

0 commit comments

Comments
 (0)