mirror of
https://github.com/znc/znc.git
synced 2026-08-02 15:03:16 +02:00
Buffer message tags and the original timestamps
This commit is contained in:
+30
-14
@@ -25,12 +25,12 @@ public:
|
||||
|
||||
virtual ~CBuffExtras() {}
|
||||
|
||||
void AddBuffer(CChan& Channel, const CString& sMessage) {
|
||||
void AddBuffer(CChan& Channel, const CString& sMessage, const timeval* tv = nullptr, const MCString& mssTags = MCString::EmptyMap) {
|
||||
// If they have AutoClearChanBuffer enabled, only add messages if no client is connected
|
||||
if (Channel.AutoClearChanBuffer() && GetNetwork()->IsUserOnline())
|
||||
return;
|
||||
|
||||
Channel.AddBuffer(":" + GetModNick() + "!" + GetModName() + "@znc.in PRIVMSG " + _NAMEDFMT(Channel.GetName()) + " :{text}", sMessage);
|
||||
Channel.AddBuffer(":" + GetModNick() + "!" + GetModName() + "@znc.in PRIVMSG " + _NAMEDFMT(Channel.GetName()) + " :{text}", sMessage, tv, mssTags);
|
||||
}
|
||||
|
||||
void OnRawMode2(const CNick* pOpNick, CChan& Channel, const CString& sModes, const CString& sArgs) override {
|
||||
@@ -38,34 +38,50 @@ public:
|
||||
AddBuffer(Channel, sNickMask + " set mode: " + sModes + " " + sArgs);
|
||||
}
|
||||
|
||||
void OnKick(const CNick& OpNick, const CString& sKickedNick, CChan& Channel, const CString& sMessage) override {
|
||||
AddBuffer(Channel, OpNick.GetNickMask() + " kicked " + sKickedNick + " Reason: [" + sMessage + "]");
|
||||
void OnKickMessage(CKickMessage& Message) override {
|
||||
const CNick& OpNick = Message.GetNick();
|
||||
const CString sKickedNick = Message.GetKickedNick();
|
||||
CChan& Channel = *Message.GetChan();
|
||||
const CString sMessage = Message.GetReason();
|
||||
AddBuffer(Channel, OpNick.GetNickMask() + " kicked " + sKickedNick + " Reason: [" + sMessage + "]", &Message.GetTime(), Message.GetTags());
|
||||
}
|
||||
|
||||
void OnQuit(const CNick& Nick, const CString& sMessage, const vector<CChan*>& vChans) override {
|
||||
void OnQuitMessage(CQuitMessage& Message, const vector<CChan*>& vChans) override {
|
||||
const CNick& Nick = Message.GetNick();
|
||||
const CString sMessage = Message.GetReason();
|
||||
CString sMsg = Nick.GetNickMask() + " quit with message: [" + sMessage + "]";
|
||||
for (CChan* pChan : vChans) {
|
||||
AddBuffer(*pChan, sMsg);
|
||||
AddBuffer(*pChan, sMsg, &Message.GetTime(), Message.GetTags());
|
||||
}
|
||||
}
|
||||
|
||||
void OnJoin(const CNick& Nick, CChan& Channel) override {
|
||||
AddBuffer(Channel, Nick.GetNickMask() + " joined");
|
||||
void OnJoinMessage(CJoinMessage& Message) override {
|
||||
const CNick& Nick = Message.GetNick();
|
||||
CChan& Channel = *Message.GetChan();
|
||||
AddBuffer(Channel, Nick.GetNickMask() + " joined", &Message.GetTime(), Message.GetTags());
|
||||
}
|
||||
|
||||
void OnPart(const CNick& Nick, CChan& Channel, const CString& sMessage) override {
|
||||
AddBuffer(Channel, Nick.GetNickMask() + " parted with message: [" + sMessage + "]");
|
||||
void OnPartMessage(CPartMessage& Message) override {
|
||||
const CNick& Nick = Message.GetNick();
|
||||
CChan& Channel = *Message.GetChan();
|
||||
const CString sMessage = Message.GetReason();
|
||||
AddBuffer(Channel, Nick.GetNickMask() + " parted with message: [" + sMessage + "]", &Message.GetTime(), Message.GetTags());
|
||||
}
|
||||
|
||||
void OnNick(const CNick& OldNick, const CString& sNewNick, const vector<CChan*>& vChans) override {
|
||||
void OnNickMessage(CNickMessage& Message, const vector<CChan*>& vChans) override {
|
||||
const CNick& OldNick = Message.GetNick();
|
||||
const CString sNewNick = Message.GetNewNick();
|
||||
CString sMsg = OldNick.GetNickMask() + " is now known as " + sNewNick;
|
||||
for (CChan* pChan : vChans) {
|
||||
AddBuffer(*pChan, sMsg);
|
||||
AddBuffer(*pChan, sMsg, &Message.GetTime(), Message.GetTags());
|
||||
}
|
||||
}
|
||||
|
||||
EModRet OnTopic(CNick& Nick, CChan& Channel, CString& sTopic) override {
|
||||
AddBuffer(Channel, Nick.GetNickMask() + " changed the topic to: " + sTopic);
|
||||
EModRet OnTopicMessage(CTopicMessage& Message) override {
|
||||
const CNick& Nick = Message.GetNick();
|
||||
CChan& Channel = *Message.GetChan();
|
||||
const CString sTopic = Message.GetTopic();
|
||||
AddBuffer(Channel, Nick.GetNickMask() + " changed the topic to: " + sTopic, &Message.GetTime(), Message.GetTags());
|
||||
|
||||
return CONTINUE;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user