Skip to content

Commit

Permalink
Fixed up the code more
Browse files Browse the repository at this point in the history
I think it will be some performance boost when create gradients. removed some spliter´s and replace.
  • Loading branch information
broken1arrow committed Dec 20, 2021
1 parent 0490ea5 commit de56852
Showing 1 changed file with 10 additions and 9 deletions.
19 changes: 10 additions & 9 deletions src/main/java/org/broken/lib/rbg/TextTranslator.java
Original file line number Diff line number Diff line change
Expand Up @@ -60,18 +60,19 @@ public static String toCompenent(String message, String defaultColor) {
message = createGradient(message);
}
StringBuilder builder = new StringBuilder(message.length());

StringBuilder hex = new StringBuilder();
for (int i = 0; i < message.length(); i++) {
char letter = message.charAt(i);
boolean checkChar;
boolean checkHex = false;
StringBuilder hex = new StringBuilder();

if (i + 1 < message.length() && letter == ChatColors.COLOR_CHAR || letter == '&' || letter == '<') {
char msg = message.charAt(i + 1);

if (checkIfColor(msg)) {
checkChar = true;
}else if (msg == '#') {
hex = new StringBuilder();
for (int j = 0; j < 7; j++) {
hex.append(message.charAt(i + j));
}
Expand Down Expand Up @@ -203,7 +204,7 @@ private static String createGradient(String message) {

while (gradiensMatcher.find()) {
String match = gradiensMatcher.group(0);
String[] split = match.split(":");
String[] split = match.substring(1,match.length()-1).split(":");
int startGradient = message.indexOf(match);
int stopGradient = checkForR(message.substring(startGradient)) != -1 ? startGradient + checkForR(message.substring(startGradient)) : message.length();

Expand All @@ -215,12 +216,12 @@ private static String createGradient(String message) {
}
}

String[] messageFinal = coloriseMsg.split("");
int step = messageFinal.length;
//String[] messageFinal = coloriseMsg.split("");
int step = coloriseMsg.length();
if (split.length > 1) {
String startColor = split[0].replace("<", "");
String startColor = split[0];
Color firstColor = hexToRgb(startColor);
Color endColor = hexToRgb(split[1].replace(">", ""));
Color endColor = hexToRgb(split[1]);
int stepRed = Math.abs(firstColor.getRed() - endColor.getRed()) / (step - 1);
int stepGreen = Math.abs(firstColor.getGreen() - endColor.getGreen()) / (step - 1);
int stepBlue = Math.abs(firstColor.getBlue() - endColor.getBlue()) / (step - 1);
Expand All @@ -234,10 +235,10 @@ private static String createGradient(String message) {
for (int i = 0; i < step; i++) {
String colors = convertRGBtoHex(firstColor.getRed() + ((stepRed * i) * direction[0]), firstColor.getGreen() + ((stepGreen * i) * direction[1]), firstColor.getBlue() + ((stepBlue * i) * direction[2]));
if (isFirstrun) {
builder.append("§").append(startColor).append(">").append(specialSign).append(messageFinal[i]);
builder.append("§").append(startColor).append(">").append(specialSign).append(coloriseMsg.charAt(i));
isFirstrun = false;
} else {
builder.append("§").append(colors).append(">").append(specialSign).append(messageFinal[i]);
builder.append("§").append(colors).append(">").append(specialSign).append(coloriseMsg.charAt(i));
}
}
builder.append(message, stopGradient, messageLength);
Expand Down

0 comments on commit de56852

Please sign in to comment.