Skip to content
This repository was archived by the owner on May 14, 2025. It is now read-only.

Commit 25aa332

Browse files
fixes
1 parent 6edb95b commit 25aa332

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

src/main/java/org/zerobzerot/playtimenamecolor/PlaytimeNameColor.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ public boolean onCommand(CommandSender sender, Command cmd, String commandLabel,
177177

178178
int maximumIndex = sender instanceof Player && !sender.isOp() ? getMaximumColorIndex((Player) sender) : colors.size() - 1;
179179

180-
if (boldEnabled && maximumIndex == colors.size() - 1) {
180+
if (boldEnabled && maximumIndex >= boldIndex) {
181181
message.append("[-BOLD]");
182182
}
183183

@@ -235,8 +235,8 @@ public int getMaximumColorIndex(Player player) {
235235
double playTime = getPlayTimeInHours(player);
236236
double joinDate = getJoinDateInDays(player);
237237

238-
int indexPlayTime = (int) Math.round((colors.size() - 1) - Math.log(maxPlaytime / playTime) / Math.log(2));
239-
int indexJoinDate = (int) Math.round((colors.size() - 1) - Math.log(maxJoinDate / joinDate) / Math.log(2));
238+
int indexPlayTime = (int) Math.round(colors.size() - 1 - Math.log(Math.ceil(maxPlaytime / playTime)) / Math.log(2));
239+
int indexJoinDate = (int) Math.round(colors.size() - 1 - Math.log(Math.ceil(maxJoinDate / joinDate)) / Math.log(2));
240240

241241
return Math.max(0, Math.min(colors.size() - 1, Math.min(indexPlayTime, indexJoinDate)));
242242
}
@@ -307,7 +307,7 @@ private AbstractMap.SimpleEntry<Boolean, String> getColorFromCommand(CommandSend
307307

308308
String sanitizedColor = sanitizeColoredName(color.toString() + (bold ? ChatColor.BOLD : ""));
309309

310-
return new AbstractMap.SimpleEntry<>(false, sanitizedColor);
310+
return new AbstractMap.SimpleEntry<>(true, sanitizedColor);
311311
}
312312

313313
private int getChatColorIndex(ChatColor color) {

src/test/java/org/zerobzerot/playtimenamecolor/PlaytimeNameColorTest.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import junit.framework.TestCase;
44

5+
import java.util.List;
6+
57
public class PlaytimeNameColorTest extends TestCase {
68

79
public void testGetMaximumColorIndex() {
@@ -12,14 +14,19 @@ public void testGetMaximumColorIndex() {
1214
double joinDates[] = {0.001, 2.9, 3, 4.9, 5, 7.9, 8, 15.9, 16, 45.9, 46, 90.9, 91, 182.9, 183, 364.9, 365, 729, 730.1};
1315
double playTimes[] = {0.00001, 2.9, 3, 5.9, 6, 11.9, 12, 23.9, 24, 47.9, 48, 95.9, 96, 191.9, 192, 383.9, 384, 767, 768.1};
1416

17+
List<String> colors = PlaytimeNameColor.defaultColors;
18+
1519
for (int i = 0; i < playTimes.length; i++) {
1620
double playTime = playTimes[i];
1721
double joinDate = joinDates[i];
1822

19-
int indexPlayTime = (int) Math.round(PlaytimeNameColor.defaultColors.size() - 1 - Math.log(Math.ceil(maxPlaytime / playTime)) / Math.log(2));
20-
int indexJoinDate = (int) Math.round(PlaytimeNameColor.defaultColors.size() - 1 - Math.log(Math.ceil(maxJoinDate / joinDate)) / Math.log(2));
2123

22-
System.out.println(playTime + " " + joinDate + " " + indexPlayTime + " " + indexJoinDate + " " + Math.max(0, Math.min(PlaytimeNameColor.defaultColors.size() - 1, Math.min(indexPlayTime, indexJoinDate))));
24+
int indexPlayTime = (int) Math.round(colors.size() - 1 - Math.log(Math.ceil(maxPlaytime / playTime)) / Math.log(2));
25+
int indexJoinDate = (int) Math.round(colors.size() - 1 - Math.log(Math.ceil(maxJoinDate / joinDate)) / Math.log(2));
26+
27+
int resultingIndex = Math.max(0, Math.min(colors.size() - 1, Math.min(indexPlayTime, indexJoinDate)));
28+
29+
System.out.println(playTime + " " + joinDate + " " + indexPlayTime + " " + indexJoinDate + " " + resultingIndex);
2330
}
2431

2532
// Not a real test since there is no check if the results are correct

0 commit comments

Comments
 (0)