42 source.
Reply(
_(
"A notification memo has been sent to %s informing him/her you have\n"
62 if (!number || number > mi->
memos->size())
86 source.
Reply(
_(
"To delete, type: \002%s%s %s %d\002"),
Config->StrictPrivmsg.c_str(), bi->
nick.
c_str(), cmd.
c_str(), index + 1);
103 this->
SetDesc(
_(
"Read a memo or memos"));
104 this->
SetSyntax(
_(
"[\037channel\037] {\037num\037 | \037list\037 | LAST | NEW}"));
114 if (!numstr.
empty() && numstr[0] ==
'#')
117 numstr = params.size() > 1 ? params[1] :
"";
125 else if (!source.AccessFor(ci).HasPriv(
"MEMO"))
133 mi = &source.nc->
memos;
137 else if (mi->
memos->empty())
151 for (i = 0, end = mi->
memos->size(); i < end; ++i)
167 for (i = 0, end = mi->
memos->size() - 1; i < end; ++i);
183 source.Reply(
_(
"Sends you the text of the memos specified. If LAST is\n"
184 "given, sends you the memo you most recently received. If\n"
185 "NEW is given, sends you all of your new memos. Otherwise,\n"
186 "sends you memo number \037num\037. You can also give a list of\n"
187 "numbers, as in this example:\n"
189 " \002READ 2-5,7-9\002\n"
190 " Displays memos numbered 2 through 5 and 7 through 9."));
Serialize::Reference< NickCore > nc
virtual MemoResult Send(const Anope::string &source, const Anope::string &target, const Anope::string &message, bool force=false)=0
static NickAlias * Find(const Anope::string &nick)
CommandMSRead commandmsread
static ServiceReference< MemoServService > MemoServService("MemoServService","MemoServ")
CoreExport string printf(const char *fmt,...)
static bool FindCommandFromService(const Anope::string &command_service, BotInfo *&bi, Anope::string &name)
CommandMSRead(Module *creator)
void SetDesc(const Anope::string &d)
bool equals_ci(const char *_str) const
bool OnHelp(CommandSource &source, const Anope::string &subcommand) anope_override
#define MEMO_HAVE_NO_MEMOS
const Anope::string & GetNick() const
static void rsend_notify(CommandSource &source, MemoInfo *mi, Memo *m, const Anope::string &targ)
static ChannelInfo * Find(const Anope::string &name)
#define MEMO_X_HAS_NO_MEMOS
void Execute(CommandSource &source, const std::vector< Anope::string > ¶ms) anope_override
virtual void OnSyntaxError(CommandSource &source, const Anope::string &subcommand)
void Reply(const char *message,...)
Memo * GetMemo(unsigned index) const
MemoListCallback(CommandSource &_source, MemoInfo *_mi, const ChannelInfo *_ci, const Anope::string &numlist)
MSRead(const Anope::string &modname, const Anope::string &creator)
#define MEMO_X_HAS_NO_NEW_MEMOS
CoreExport const char * Translate(const char *string)
void SetSyntax(const Anope::string &s)
#define CHAN_X_NOT_REGISTERED
Serialize::Checker< std::vector< Memo * > > memos
static void DoRead(CommandSource &source, MemoInfo *mi, const ChannelInfo *ci, unsigned index)
void SendSyntax(CommandSource &)
const char * c_str() const
void HandleNumber(unsigned number) anope_override
CoreExport Anope::string strftime(time_t t, const NickCore *nc=NULL, bool short_output=false)
bool is_number_only() const
#define MEMO_HAVE_NO_NEW_MEMOS