Skip to content

Commit

Permalink
fixed some inconsistency
Browse files Browse the repository at this point in the history
It not always detect right color some is next and also improved when find end of the color.
  • Loading branch information
broken1arrow committed Jul 23, 2022
1 parent e71aa96 commit 90dcac8
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 13 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>org.broken.lib.rbg</groupId>
<artifactId>rbg.gradiens</artifactId>
<version>0.08-SNAPSHOT</version>
<version>0.09-SNAPSHOT</version>

<properties>
<main.class>TextTranslator</main.class>
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/org/broken/lib/rbg/ChatColors.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ public final class ChatColors {
* you need to dynamically convert colour codes from your custom format.
*/
public static final char COLOR_CHAR = '\u00A7';
/**
* The special character which prefixes all chat colour codes. Use this if
* you need to dynamically convert colour codes from your custom format.
*/
public static final char COLOR_AMPERSAND = '\u0026';
public static final String[] ALL_CODES = {"0","1","2","3","4","5","6","7","8","9","A","a","B","b","C","c","D","d","E","e","F","f","K","k","L","l","M","m","N","n","O","o","R","r","X","x"};
public static final char[] ALL_COLOR_CODES = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'a', 'B', 'b', 'C', 'c', 'D', 'd', 'E', 'e', 'F', 'f', 'R', 'r', 'X', 'x'};
Expand Down
22 changes: 10 additions & 12 deletions src/main/java/org/broken/lib/rbg/TextTranslator.java
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,6 @@ public String convertToMulitGradiens(GradientType type,String message) {
portionsList = Arrays.stream(getValuesInside(portion, end)).map(Double::parseDouble).toArray(Double[]::new);
message = message.replace(portion.substring(0, end + 1), "");
}

Color[] colorList = Arrays.stream(getMultiColors(subcolor, subIndex)).map(TextTranslator::hexToRgb).toArray(Color[]::new);
message = message.replace(subcolor.substring(0, message.length()), "");

Expand All @@ -291,8 +290,7 @@ public String convertToMulitGradiens(GradientType type,String message) {
int nextEnd = getNextColor(message.substring(end + 1));
if (startIndex > 0)
builder.append(message, 0, startIndex);

builder.append(multiRgbGradient(type, message.substring(Math.max(startIndex, 0), end > 0 ? end : nextEnd > 0 ? nextEnd : message.length()), colorList, checkportions(colorList, portionsList)));
builder.append(multiRgbGradient(type, message.substring(Math.max(startIndex, 0), nextEnd > 0 ? nextEnd : end > 0 ? end : message.length()), colorList, checkportions(colorList, portionsList)));
if (end > 0 || nextEnd > 0)
builder.append(message, Math.max(end, 0), message.length());
return builder.toString();
Expand Down Expand Up @@ -587,7 +585,7 @@ public String[] splitOnGradient( GradientType type,String message) {
StringBuilder builder = new StringBuilder();
for (int i = 0; i < message.length(); i++) {
char mess = message.charAt(i);
if (mess == 'g' && i + 18 < message.length()) {
if (mess == 'g' && i + 8 < message.length()) {
StringBuilder build = new StringBuilder();
boolean isgradient = false;
for (int check = (i > 0 ? i - 1 : 0); check < message.length(); check++) {
Expand Down Expand Up @@ -626,7 +624,7 @@ private static Color hexToRgb(String colorStr) {
Integer.valueOf(blue + blue, 16));
}
if (colorStr.length() < 7){
System.out.println("[RGB] This hex color is not vaild " + colorStr);
System.out.println("[RBG-Gradients] This hex color is not vaild " + colorStr);
return new Color(Color.WHITE.getRGB());
}
return new Color(
Expand Down Expand Up @@ -725,17 +723,18 @@ public static String getHexFromString(String hex, int from) {
}

public static int getNextColor(String subMessage) {
int nextGrad = subMessage.indexOf("<#");
if (nextGrad < 0)
nextGrad = checkIfContainsColor(subMessage);
return nextGrad;
return Math.min(subMessage.indexOf("<#"), checkIfContainsColor(subMessage));
}

public static int getEndOfColor(String subMessage) {
int nextGrad = subMessage.indexOf(">");
int vanillaColor = checkIfContainsColor(subMessage);
if (nextGrad < 0)
nextGrad = checkIfContainsColor(subMessage);
return nextGrad;
nextGrad = 0;
if (vanillaColor < 0)
vanillaColor = 0;

return Math.min(nextGrad, vanillaColor);
}

public static String getStringStriped(String message, int startIndex, int endIndex) {
Expand All @@ -748,7 +747,6 @@ public static String[] getMultiColors(String message, int startIndex) {
String subcolor = message.substring(startIndex);
int endOfColor = subcolor.indexOf(">");
final String substring = subcolor.substring(0, endOfColor > 0 ? endOfColor + 1 : subcolor.length());
if (getNextColor(substring) < 0) return new String[0];
return substring.substring(1, substring.length() - 1).split(":");
}

Expand Down

0 comments on commit 90dcac8

Please sign in to comment.