1
0
mirror of https://github.com/anope/anope.git synced 2026-07-04 02:43:12 +02:00

Send replies from fantasy commands back to the channel, this will be expanded on later

This commit is contained in:
Adam
2010-11-24 21:40:56 -06:00
parent 37e02a3594
commit cb6ef574e3
154 changed files with 2428 additions and 2111 deletions
+17 -16
View File
@@ -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;