diff options
author | Adam <Adam@anope.org> | 2017-04-06 13:14:07 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2017-04-06 13:14:07 -0400 |
commit | fc0d4a1e31efcba5eb8c2d3a97b75b05781e69a7 (patch) | |
tree | aa262d87a2fdc01d49a09d82f1f5561c0cd2107d | |
parent | eb57aee30d1a8c053b840e4db5d1ea762969c3b5 (diff) | |
parent | fc0171fb40cf1785492eda566fd33b3ff5ef66b4 (diff) |
Merge commit 'fc0171fb40cf1785492eda566fd33b3ff5ef66b4'
-rw-r--r-- | modules/memoserv/main/memoserv.cpp | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/modules/memoserv/main/memoserv.cpp b/modules/memoserv/main/memoserv.cpp index 757b95563..833a32f68 100644 --- a/modules/memoserv/main/memoserv.cpp +++ b/modules/memoserv/main/memoserv.cpp @@ -95,18 +95,29 @@ class MemoServCore : public Module, public MemoServ::MemoServService if (mi == NULL) return MEMO_INVALID_TARGET; + Anope::string sender_display = source; + User *sender = User::Find(source, true); - if (sender != NULL && !sender->HasPriv("memoserv/no-limit") && !force) + if (sender != NULL) { - time_t send_delay = Config->GetModule("memoserv/main")->Get<time_t>("senddelay"); - if (send_delay > 0 && sender->lastmemosend + send_delay > Anope::CurTime) - return MEMO_TOO_FAST; - if (!mi->GetMemoMax()) - return MEMO_TARGET_FULL; - if (mi->GetMemoMax() > 0 && mi->GetMemos().size() >= static_cast<unsigned>(mi->GetMemoMax())) - return MEMO_TARGET_FULL; - if (mi->HasIgnore(sender)) - return MEMO_SUCCESS; + if (!sender->HasPriv("memoserv/no-limit") && !force) + { + time_t send_delay = Config->GetModule("memoserv/main")->Get<time_t>("senddelay"); + if (send_delay > 0 && sender->lastmemosend + send_delay > Anope::CurTime) + return MEMO_TOO_FAST; + if (!mi->GetMemoMax()) + return MEMO_TARGET_FULL; + if (mi->GetMemoMax() > 0 && mi->GetMemos().size() >= static_cast<unsigned>(mi->GetMemoMax())) + return MEMO_TARGET_FULL; + if (mi->HasIgnore(sender)) + return MEMO_SUCCESS; + } + + NickServ::Account *acc = sender->Account(); + if (acc != NULL) + { + sender_display = acc->GetDisplay(); + } } if (sender != NULL) @@ -114,7 +125,7 @@ class MemoServCore : public Module, public MemoServ::MemoServService MemoServ::Memo *m = Serialize::New<MemoServ::Memo *>(); m->SetMemoInfo(mi); - m->SetSender(source); + m->SetSender(sender_display); m->SetTime(Anope::CurTime); m->SetText(message); m->SetUnread(true); |