fix: disable reply options where we know it wouldn't work (#6119)

This commit is contained in:
hemirt
2025-06-15 13:35:18 +02:00
committed by GitHub
parent 04ba83b90f
commit faa435c957
9 changed files with 172 additions and 29 deletions
@@ -329,6 +329,39 @@ void IrcMessageHandler::parseMessageInto(Communi::IrcMessage *message,
sink.addOrReplaceTimeout(std::move(clearChat.message), time);
}
}
if (command == u"CLEARMSG"_s)
{
// check parameter count
if (message->parameters().length() < 1)
{
return;
}
QString chanName;
if (!trimChannelName(message->parameter(0), chanName))
{
return;
}
auto tags = message->tags();
QString targetID = tags.value("target-msg-id").toString();
auto msg = sink.findMessageByID(targetID);
if (msg == nullptr)
{
return;
}
msg->flags.set(MessageFlag::Disabled);
msg->flags.set(MessageFlag::InvalidReplyTarget);
if (!getSettings()->hideDeletionActions)
{
sink.addMessage(MessageBuilder::makeDeletionMessageFromIRC(msg),
MessageContext::Original);
}
}
}
void IrcMessageHandler::handlePrivMessage(Communi::IrcPrivateMessage *message,
@@ -519,6 +552,7 @@ void IrcMessageHandler::handleClearMessageMessage(Communi::IrcMessage *message)
}
msg->flags.set(MessageFlag::Disabled);
msg->flags.set(MessageFlag::InvalidReplyTarget);
if (!getSettings()->hideDeletionActions)
{
chan->addMessage(MessageBuilder::makeDeletionMessageFromIRC(msg),