summaryrefslogtreecommitdiff
path: root/modules/core/ms_del.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2010-11-24 21:40:56 -0600
committerAdam <Adam@anope.org>2010-12-12 19:36:19 -0500
commitcb6ef574e3df5cc846247450b74ca37d265f319e (patch)
tree8ce3374a537c312af63c78125bfea4622bb188f0 /modules/core/ms_del.cpp
parent37e02a3594fdddc3d5a3df0501c528f42db6c4da (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.cpp33
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> &params)
+ CommandReturn Execute(CommandSource &source, const std::vector<Anope::string> &params)
{
+ 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;