From 667ff12f6759bb19ae767f2144f9604e98f8bf7e Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Sun, 9 Jun 2024 22:27:37 -0500 Subject: [PATCH] @mods to mention an online moderator --- .../siacs/conversations/ui/ConversationFragment.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java index b4daa16676cda35ec6064f5904cf06f74352d1db..38e86318bb0b411c240e2b8bb7a0de43fef9dd04 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java @@ -962,6 +962,18 @@ public class ConversationFragment extends XmppFragment body.delete(0, 6); while (body.length() > 0 && Character.isWhitespace(body.charAt(0))) body.delete(0, 1); } + if (Pattern.compile("\\A@mods\\s.*").matcher(body).find()) { + body.delete(0, 5); + final var mods = new StringBuffer(); + for (final var user : conversation.getMucOptions().getUsers()) { + if (user.getRole().ranks(MucOptions.Role.MODERATOR)) { + if (mods.length() > 0) mods.append(", "); + mods.append(user.getNick()); + } + } + mods.append(":"); + body.insert(0, mods.toString()); + } if (conversation.getReplyTo() != null) { if (Emoticons.isEmoji(body.toString().replaceAll("\\s", ""))) { message = conversation.getReplyTo().react(body.toString().replaceAll("\\s", ""));