diff options
author | Adam <Adam@anope.org> | 2010-11-24 21:40:56 -0600 |
---|---|---|
committer | Adam <Adam@anope.org> | 2010-12-12 19:36:19 -0500 |
commit | cb6ef574e3df5cc846247450b74ca37d265f319e (patch) | |
tree | 8ce3374a537c312af63c78125bfea4622bb188f0 /modules/core/ms_del.cpp | |
parent | 37e02a3594fdddc3d5a3df0501c528f42db6c4da (diff) |
Send replies from fantasy commands back to the channel, this will be expanded on later
Diffstat (limited to 'modules/core/ms_del.cpp')
-rw-r--r-- | modules/core/ms_del.cpp | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/modules/core/ms_del.cpp b/modules/core/ms_del.cpp index 2d69fba5e..443674a88 100644 --- a/modules/core/ms_del.cpp +++ b/modules/core/ms_del.cpp @@ -15,11 +15,11 @@ class MemoDelCallback : public NumberList { - User *u; + CommandSource &source; ChannelInfo *ci; MemoInfo *mi; public: - MemoDelCallback(User *_u, ChannelInfo *_ci, MemoInfo *_mi, const Anope::string &list) : NumberList(list, true), u(_u), ci(_ci), mi(_mi) + MemoDelCallback(CommandSource &_source, ChannelInfo *_ci, MemoInfo *_mi, const Anope::string &list) : NumberList(list, true), source(_source), ci(_ci), mi(_mi) { } @@ -31,10 +31,10 @@ class MemoDelCallback : public NumberList if (ci) FOREACH_MOD(I_OnMemoDel, OnMemoDel(ci, mi, mi->memos[Number - 1])); else - FOREACH_MOD(I_OnMemoDel, OnMemoDel(u->Account(), mi, mi->memos[Number - 1])); + FOREACH_MOD(I_OnMemoDel, OnMemoDel(source.u->Account(), mi, mi->memos[Number - 1])); mi->Del(Number - 1); - u->SendMessage(MemoServ, MEMO_DELETED_ONE, Number); + source.Reply(MEMO_DELETED_ONE, Number); } }; @@ -45,12 +45,13 @@ class CommandMSDel : public Command { } - CommandReturn Execute(User *u, const std::vector<Anope::string> ¶ms) + CommandReturn Execute(CommandSource &source, const std::vector<Anope::string> ¶ms) { + User *u = source.u; + MemoInfo *mi; ChannelInfo *ci = NULL; Anope::string numstr = !params.empty() ? params[0] : "", chan; - unsigned i, end; if (!numstr.empty() && numstr[0] == '#') { @@ -59,17 +60,17 @@ class CommandMSDel : public Command if (!(ci = cs_findchan(chan))) { - u->SendMessage(MemoServ, CHAN_X_NOT_REGISTERED, chan.c_str()); + source.Reply(CHAN_X_NOT_REGISTERED, chan.c_str()); return MOD_CONT; } else if (readonly) { - u->SendMessage(MemoServ, READ_ONLY_MODE); + source.Reply(READ_ONLY_MODE); return MOD_CONT; } else if (!check_access(u, ci, CA_MEMO)) { - u->SendMessage(MemoServ, ACCESS_DENIED); + source.Reply(ACCESS_DENIED); return MOD_CONT; } mi = &ci->memos; @@ -81,15 +82,15 @@ class CommandMSDel : public Command else if (mi->memos.empty()) { if (!chan.empty()) - u->SendMessage(MemoServ, MEMO_X_HAS_NO_MEMOS, chan.c_str()); + source.Reply(MEMO_X_HAS_NO_MEMOS, chan.c_str()); else - u->SendMessage(MemoServ, MEMO_HAVE_NO_MEMOS); + source.Reply(MEMO_HAVE_NO_MEMOS); } else { if (isdigit(numstr[0])) { - MemoDelCallback list(u, ci, mi, numstr); + MemoDelCallback list(source, ci, mi, numstr); list.Process(); } else if (numstr.equals_ci("LAST")) @@ -100,7 +101,7 @@ class CommandMSDel : public Command else FOREACH_MOD(I_OnMemoDel, OnMemoDel(u->Account(), mi, mi->memos[mi->memos.size() - 1])); mi->Del(mi->memos[mi->memos.size() - 1]); - u->SendMessage(MemoServ, MEMO_DELETED_ONE, mi->memos.size() + 1); + source.Reply(MEMO_DELETED_ONE, mi->memos.size() + 1); } else { @@ -109,13 +110,13 @@ class CommandMSDel : public Command else FOREACH_MOD(I_OnMemoDel, OnMemoDel(u->Account(), mi, NULL)); /* Delete all memos. */ - for (i = 0, end = mi->memos.size(); i < end; ++i) + for (unsigned i = 0, end = mi->memos.size(); i < end; ++i) delete mi->memos[i]; mi->memos.clear(); if (!chan.empty()) - u->SendMessage(MemoServ, MEMO_CHAN_DELETED_ALL, chan.c_str()); + source.Reply(MEMO_CHAN_DELETED_ALL, chan.c_str()); else - u->SendMessage(MemoServ, MEMO_DELETED_ALL); + source.Reply(MEMO_DELETED_ALL); } } return MOD_CONT; |