diff options
Diffstat (limited to 'include/services.h')
| -rw-r--r-- | include/services.h | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/include/services.h b/include/services.h index 58c0570f8..9cb3273ba 100644 --- a/include/services.h +++ b/include/services.h @@ -1234,6 +1234,13 @@ class IRCDProto { virtual void SendModeInternal(const char *, const char *, const char *) = 0; virtual void SendKickInternal(const char *, const char *, const char *, const char *) = 0; virtual void SendNoticeChanopsInternal(const char *, const char *, const char *) = 0; + virtual void SendMessageInternal(BotInfo *bi, const char *dest, const char *buf) + { + if (NSDefFlags & NI_MSG) + SendPrivmsg(bi, dest, buf); + else + SendNotice(bi, dest, buf); + } public: virtual void SendSVSNOOP(const char *, int) { } virtual void SendAkillDel(const char *, const char *) = 0; @@ -1287,12 +1294,17 @@ class IRCDProto { } SendNoticeChanopsInternal(source, dest, buf); } - virtual void SendMessage(BotInfo *bi, const char *dest, const char *buf) + virtual void SendMessage(const char *source, const char *dest, const char *fmt, ...) { - if (NSDefFlags & NI_MSG) - SendPrivmsg(bi, dest, buf); - else - SendNotice(bi, dest, buf); + va_list args; + char buf[BUFSIZE] = ""; + if (fmt) { + va_start(args, fmt); + vsnprintf(buf, BUFSIZE - 1, fmt, args); + va_end(args); + } + BotInfo *bi = findbot(source); + SendMessageInternal(bi, dest, buf); } virtual void SendNotice(BotInfo *bi, const char *dest, const char *msg) { |
