stripcontrols: Use new On...Message events.

Added OnTopicMessage and stripping for /list and /topic output.

Fixes #1179
This commit is contained in:
RealKindOne
2025-07-08 01:35:52 -04:00
parent 80e1bf559a
commit f89ae9d158
2 changed files with 85 additions and 17 deletions
+33 -17
View File
@@ -20,35 +20,50 @@ class CStripControlsMod : public CModule {
public:
MODCONSTRUCTOR(CStripControlsMod) {}
EModRet OnPrivCTCP(CNick& Nick, CString& sMessage) override {
sMessage.StripControls();
EModRet OnChanCTCPMessage(CCTCPMessage& Message) override {
Message.SetText(Message.GetText().StripControls_n());
return CONTINUE;
}
EModRet OnChanCTCP(CNick& Nick, CChan& Channel,
CString& sMessage) override {
sMessage.StripControls();
EModRet OnChanNoticeMessage(CNoticeMessage& Message) override {
Message.SetText(Message.GetText().StripControls_n());
return CONTINUE;
}
EModRet OnPrivNotice(CNick& Nick, CString& sMessage) override {
sMessage.StripControls();
EModRet OnChanTextMessage(CTextMessage& Message) override {
Message.SetText(Message.GetText().StripControls_n());
return CONTINUE;
}
EModRet OnChanNotice(CNick& Nick, CChan& Channel,
CString& sMessage) override {
sMessage.StripControls();
EModRet OnPrivCTCPMessage(CCTCPMessage& Message) override {
Message.SetText(Message.GetText().StripControls_n());
return CONTINUE;
}
EModRet OnPrivMsg(CNick& Nick, CString& sMessage) override {
sMessage.StripControls();
EModRet OnPrivNoticeMessage(CNoticeMessage& Message) override {
Message.SetText(Message.GetText().StripControls_n());
return CONTINUE;
}
EModRet OnChanMsg(CNick& Nick, CChan& Channel, CString& sMessage) override {
sMessage.StripControls();
EModRet OnPrivTextMessage(CTextMessage& Message) override {
Message.SetText(Message.GetText().StripControls_n());
return CONTINUE;
}
EModRet OnTopicMessage(CTopicMessage& Message) override {
Message.SetText(Message.GetText().StripControls_n());
return CONTINUE;
}
EModRet OnNumericMessage(CNumericMessage& Message) override {
// Strip topic from /list
if (Message.GetCode() == 322) { // RPL_LIST
Message.SetParam(3, Message.GetParam(3).StripControls_n());
}
// Strip topic when joining channel
else if (Message.GetCode() == 332) { // RPL_TOPIC
Message.SetParam(2, Message.GetParam(2).StripControls_n());
}
return CONTINUE;
}
};
@@ -59,6 +74,7 @@ void TModInfo<CStripControlsMod>(CModInfo& Info) {
Info.AddType(CModInfo::UserModule);
}
NETWORKMODULEDEFS(CStripControlsMod,
t_s("Strips control codes (Colors, Bold, ..) from channel "
"and private messages."))
NETWORKMODULEDEFS(
CStripControlsMod,
t_s("Strips control codes (Colors, Bold, ..) from channel "
"and private messages."))