88
99import org .togetherjava .tjbot .features .MessageReceiverAdapter ;
1010
11- import java .util .regex .Pattern ;
12-
1311/**
14- * Listener that tracks emoji usage across all channels for analytics purposes.
12+ * Listener that tracks custom emoji usage across all channels for analytics purposes.
1513 * <p>
16- * Counts emojis used in messages and reactions so admins can see which emojis are unused and should
17- * be removed.
14+ * Counts custom emojis used in messages and reactions so admins can see which emojis are unused and
15+ * should be removed.
1816 * <p>
19- * Custom emojis are tracked by their Discord ID (e.g. {@code emoji-custom-123456789}) rather than
20- * by name, since emoji names are not unique and may change over time. Animated custom emojis are
21- * tracked separately (e.g. {@code emoji-custom-animated-123456789}). Unicode emojis are tracked by
22- * name (e.g. {@code emoji-unicode-thumbsup}).
17+ * Custom emojis are tracked by their Discord ID (e.g. {@code emoji-custom-123456789}). Animated
18+ * custom emojis are tracked separately (e.g. {@code emoji-custom-animated-123456789}).
2319 */
2420public final class EmojiTrackerListener extends MessageReceiverAdapter {
25- private static final Pattern ALL_CHANNELS = Pattern .compile (".*" );
26-
2721 private final Metrics metrics ;
2822
2923 /**
@@ -32,14 +26,14 @@ public final class EmojiTrackerListener extends MessageReceiverAdapter {
3226 * @param metrics to track emoji usage events
3327 */
3428 public EmojiTrackerListener (Metrics metrics ) {
35- super (ALL_CHANNELS );
29+ super ();
3630
3731 this .metrics = metrics ;
3832 }
3933
4034 @ Override
4135 public void onMessageReceived (MessageReceivedEvent event ) {
42- if (event .getAuthor (). isBot () || event . isWebhookMessage ()) {
36+ if (event .isWebhookMessage ()) {
4337 return ;
4438 }
4539
@@ -48,19 +42,12 @@ public void onMessageReceived(MessageReceivedEvent event) {
4842
4943 @ Override
5044 public void onMessageReactionAdd (MessageReactionAddEvent event ) {
51- if (event .getUser () != null && event .getUser ().isBot ()) {
45+ EmojiUnion emoji = event .getEmoji ();
46+ if (emoji .getType () != Emoji .Type .CUSTOM ) {
5247 return ;
5348 }
5449
55- trackEmojiUnion (event .getEmoji ());
56- }
57-
58- private void trackEmojiUnion (EmojiUnion emoji ) {
59- if (emoji .getType () == Emoji .Type .CUSTOM ) {
60- trackCustomEmoji (emoji .asCustom ());
61- } else {
62- metrics .count ("emoji-unicode-" + emoji .asUnicode ().getName ());
63- }
50+ trackCustomEmoji (emoji .asCustom ());
6451 }
6552
6653 private void trackCustomEmoji (CustomEmoji emoji ) {
0 commit comments