diff --git a/src/main/java/cc/fros/util/render/FrosFont.java b/src/main/java/cc/fros/util/render/FrosFont.java index fa34f7d..9df54a8 100644 --- a/src/main/java/cc/fros/util/render/FrosFont.java +++ b/src/main/java/cc/fros/util/render/FrosFont.java @@ -414,7 +414,11 @@ public final class FrosFont { private static int flush(Graphics2D graphics, String text, int start, int end, int cursor, int color, int baseline) { if (end <= start) return cursor; String segment = text.substring(start, end); - graphics.setColor(new Color(color, true)); + // rgb colors without an alpha channel (0x55FF55, like vanilla's own + // formatting codes) draw opaque, matching vanilla's rule of treating + // a missing alpha as 255 instead of rendering invisible text + int argb = (color & 0xFF000000) == 0 ? 0xFF000000 | color : color; + graphics.setColor(new Color(argb, true)); graphics.drawString(segment, cursor, baseline); return cursor + metrics.stringWidth(segment); }