21 user->KillInternal(source, buf);
39 if (timeleft > 172800 || !x->expires)
41 UplinkSocket::Message(
Me) <<
"GLINE " << x->mask <<
" " << timeleft <<
" :" << x->GetReason() <<
" (" << x->by <<
")";
58 UplinkSocket::Message(
Me) <<
"NICK " << u->nick <<
" 1 " << u->GetIdent() <<
" " << u->host <<
" 1 " << modes <<
" :" << u->realname;
67 this->
SendNumeric(376,
"*",
":End of MOTD command");
147 UplinkSocket::Message() <<
"SERVER " << server->GetName() <<
" " << server->GetHops() <<
" :" << server->GetDescription();
161 if (!u->HasMode(
"CLOAK"))
163 u->SetMode(
Config->GetClient(
"HostServ"),
"CLOAK");
183 for (
unsigned i = 0, end = params.size(); i < end; ++i)
185 pos = params[i].
find(
'=');
188 parameter = params[i].
substr(0, pos);
189 data = params[i].
substr(pos+1, params[i].length());
190 if (parameter ==
"MODES")
192 unsigned maxmodes = convertTo<unsigned>(data);
195 else if (parameter ==
"NICKLEN")
197 unsigned newlen = convertTo<unsigned>(data), len =
Config->GetBlock(
"networkinfo")->Get<
unsigned>(
"nicklen");
200 Log() <<
"Warning: NICKLEN is " << newlen <<
" but networkinfo:nicklen is " << len;
253 if (params.size() == 3)
257 else if (params.size() == 5)
259 for (
size_t i = 0, end = params[1].length(); i < end; ++i)
264 modes +=
" " + params[2];
267 modes +=
" " + params[3];
290 User *user = source.GetUser();
291 size_t pos = params[0].find(
'\7');
296 channel = params[0].
substr(0, pos);
297 modes =
'+' + params[0].
substr(pos+1, params[0].length()) +
" " + user->
nick;
304 std::vector<Anope::string> new_params;
343 Log() <<
"received METADATA for non-existent user " << params[0];
346 if (params[1].equals_cs(
"accountname"))
352 else if (params[1].equals_cs(
"certfp"))
357 else if (params[1].equals_cs(
"cloakhost"))
359 if (!params[2].empty())
362 else if (params[1].equals_cs(
"host"))
366 else if (params[1].equals_cs(
"info"))
370 else if (params[1].equals_cs(
"user"))
393 for (
size_t i = 2; i < params.size(); ++i)
394 modes +=
" " + params[i];
438 if (params.size() == 1)
441 source.GetUser()->ChangeNick(params[0]);
443 else if (params.size() == 7)
446 User::OnIntroduce(params[0], params[2], params[3],
"",
"", source.GetServer(), params[6],
Anope::CurTime, params[5],
"", NULL);
450 Log(
LOG_DEBUG) <<
"Received NICK with invalid number of parameters. source = " << source.GetName() <<
"params[0] = " << params[0] <<
"params.size() = " << params.size();
472 std::list<Message::Join::SJoinUser> users;
485 sju.first.AddMode(ch);
491 Log(
LOG_DEBUG) <<
"NJOIN for nonexistant user " << buf <<
" on " << params[0];
512 if (!source.GetServer()->IsSynced())
513 source.GetServer()->Sync(
false);
549 if (params.size() == 3)
552 new Server(
Me, params[0], 1, params[2],
"");
557 unsigned int hops = params[1].is_pos_number_only() ? convertTo<unsigned>(params[1]) : 0;
558 new Server(source.GetServer(), params[0], hops, params[2], params[3]);
579 Log(
LOG_DEBUG) <<
"TOPIC for nonexistant channel " << params[0];
671 message_capab(this), message_error(this), message_invite(this), message_kick(this), message_kill(this),
672 message_motd(this), message_notice(this), message_part(this), message_ping(this), message_privmsg(this),
673 message_squery(this,
"SQUERY"), message_quit(this), message_squit(this), message_stats(this), message_time(this),
674 message_version(this), message_whois(this),
676 message_005(this), message_376(this), message_chaninfo(this), message_join(this), message_metadata(this),
677 message_mode(this), message_nick(this), message_njoin(this), message_pong(this), message_server(this),
IRCDMessageTopic(Module *creator)
Message::Part message_part
void SetCloakedHost(const Anope::string &newhost)
void SendGlobopsInternal(const MessageSource &source, const Anope::string &buf) anope_override
IRCDMessageServer(Module *creator)
Message::Capab message_capab
IRCDMessageServer message_server
void SendConnect() anope_override
IRCDMessageTopic message_topic
void SendKickInternal(const MessageSource &source, const Channel *chan, User *user, const Anope::string &buf) anope_override
Message::Kill message_kill
void SetMode(BotInfo *bi, UserMode *um, const Anope::string ¶m="")
Message::Whois message_whois
virtual void SendSVSKillInternal(const MessageSource &, User *, const Anope::string &)
Message::Ping message_ping
void Run(MessageSource &source, const std::vector< Anope::string > ¶ms) anope_override
IRCDMessageMode(Module *creator)
Anope::string fingerprint
IRCDMessageMode message_mode
void SendGlobalPrivmsg(BotInfo *bi, const Server *dest, const Anope::string &msg) anope_override
CoreExport std::set< Anope::string > Capab
void Run(MessageSource &source, const std::vector< Anope::string > ¶ms) anope_override
IRCDMessageMetadata message_metadata
void Run(MessageSource &source, const std::vector< Anope::string > ¶ms) anope_override
Join(Module *creator, const Anope::string &mname="JOIN")
Message::Error message_error
ngIRCdProto(Module *creator)
static User * OnIntroduce(const Anope::string &snick, const Anope::string &sident, const Anope::string &shost, const Anope::string &svhost, const Anope::string &sip, Server *sserver, const Anope::string &srealname, time_t ts, const Anope::string &smodes, const Anope::string &suid, NickCore *nc)
IRCDMessageNJoin(Module *creator)
Anope::string DefaultPseudoclientModes
IRCDMessagePong(Module *creator)
void SendServer(const Server *server) anope_override
void Run(MessageSource &source, const std::vector< Anope::string > ¶ms) anope_override
void Run(MessageSource &source, const std::vector< Anope::string > ¶ms) anope_override
static Channel * FindOrCreate(const Anope::string &name, bool &created, time_t ts=Anope::CurTime)
void SendVhostDel(User *u) anope_override
CoreExport time_t CurTime
void Run(MessageSource &source, const std::vector< Anope::string > ¶ms) anope_override
#define FOREACH_MOD(ename, args)
void Run(MessageSource &source, const std::vector< Anope::string > ¶ms) anope_override
iterator erase(const iterator &i)
IRCDMessagePong message_pong
string substr(size_type pos=0, size_type n=npos) const
IRCDMessageNJoin message_njoin
void SendAkill(User *u, XLine *x) anope_override
void Run(MessageSource &source, const std::vector< Anope::string > ¶ms) anope_override
void SetRealname(const Anope::string &realname)
IRCDMessageChaninfo message_chaninfo
void OnUserNickChange(User *u, const Anope::string &) anope_override
Message::Privmsg message_squery
void SendAkillDel(const XLine *x) anope_override
static char GetStatusChar(char symbol)
void SendPartInternal(User *u, const Channel *chan, const Anope::string &buf) anope_override
static bool AddUserMode(UserMode *um)
void SendVhost(User *u, const Anope::string &vIdent, const Anope::string &vhost) anope_override
static const size_type npos
void SetFlag(IRCDMessageFlag f)
virtual void SendPing(const Anope::string &servname, const Anope::string &who)
CoreExport string VersionShort()
Message::Quit message_quit
Message::Version message_version
void ChangeTopicInternal(const Anope::string &user, const Anope::string &newtopic, time_t ts=Anope::CurTime)
Message::MOTD message_motd
void SetVIdent(const Anope::string &ident)
void Run(MessageSource &source, const std::vector< Anope::string > ¶ms) anope_override
void SendModeInternal(const MessageSource &source, const Channel *dest, const Anope::string &buf) anope_override
static ChannelMode * FindChannelModeByChar(char mode)
virtual void SendNumeric(int numeric, const Anope::string &dest, const char *fmt,...)
Message::SQuit message_squit
static Anope::map< std::pair< bool, Anope::string > > modes
IRCDMessageJoin(Module *creator)
void Run(MessageSource &source, const std::vector< Anope::string > ¶ms) anope_override
IRCDMessageJoin message_join
ProtongIRCd(const Anope::string &modname, const Anope::string &creator)
IRCDMessageChaninfo(Module *creator)
IRCDMessage005 message_005
void SetModesInternal(MessageSource &source, const Anope::string &mode, time_t ts=0, bool enforce_mlock=true)
void SendGlobalNotice(BotInfo *bi, const Server *dest, const Anope::string &msg) anope_override
IRCDMessage376(Module *creator)
CoreExport IRCDProto * IRCD
void SendLogout(User *u) anope_override
void SendChannel(Channel *c) anope_override
Message::Kick message_kick
void SendForceNickChange(User *u, const Anope::string &newnick, time_t when) anope_override
void SetDisplayedHost(const Anope::string &host)
IRCDMessage005(Module *creator)
void SendLogin(User *u, NickAlias *na) anope_override
Message::Notice message_notice
Message::Stats message_stats
IRCDMessage376 message_376
void Login(NickCore *core)
void RemoveMode(BotInfo *bi, UserMode *um, const Anope::string ¶m="")
CoreExport int CurrentUplink
static void ProcessModes()
std::pair< ChannelStatus, User * > SJoinUser
virtual bool IsChannelValid(const Anope::string &)
static User * Find(const Anope::string &name, bool nick_only=false)
const Anope::string & GetName() const
static bool AddChannelMode(ChannelMode *cm)
static Channel * Find(const Anope::string &name)
bool GetToken(Anope::string &token)
void Run(MessageSource &source, const std::vector< Anope::string > ¶ms) anope_override
IRCDMessageNick message_nick
const Anope::string & Modes() const
void SetModesInternal(const MessageSource &source, const char *umodes,...)
void SendJoin(User *user, Channel *c, const ChannelStatus *status) anope_override
void SendSVSKillInternal(const MessageSource &source, User *user, const Anope::string &buf) anope_override
void SendClientIntroduction(User *u) anope_override
Message::Time message_time
static void SJoin(MessageSource &source, const Anope::string &chan, time_t ts, const Anope::string &modes, const std::list< SJoinUser > &users)
Message::Invite message_invite
static NickCore * Find(const Anope::string &nick)
Message::Privmsg message_privmsg
size_type find(const string &_str, size_type pos=0) const
void SendTopic(const MessageSource &source, Channel *c) anope_override
static BotInfo * Find(const Anope::string &nick, bool nick_only=false)
IRCDMessageNick(Module *creator)