*/
#include "inspircd.h"
-#include "users.h"
-#include "modules.h"
#include "inspstring.h"
-#include "mode.h"
/* +s (secret) */
#include "modes/cmode_s.h"
return mode;
}
-ModeAction ModeHandler::OnModeChange(userrec* source, userrec* dest, chanrec* channel, std::string ¶meter, bool adding)
+ModeAction ModeHandler::OnModeChange(User* source, User* dest, Channel* channel, std::string ¶meter, bool adding)
{
return MODEACTION_DENY;
}
-ModePair ModeHandler::ModeSet(userrec* source, userrec* dest, chanrec* channel, const std::string ¶meter)
+ModePair ModeHandler::ModeSet(User* source, User* dest, Channel* channel, const std::string ¶meter)
{
if (dest)
{
}
}
-void ModeHandler::DisplayList(userrec* user, chanrec* channel)
+void ModeHandler::DisplayList(User* user, Channel* channel)
{
}
-void ModeHandler::DisplayEmptyList(userrec* user, chanrec* channel)
+void ModeHandler::DisplayEmptyList(User* user, Channel* channel)
{
}
-bool ModeHandler::CheckTimeStamp(time_t theirs, time_t ours, const std::string &their_param, const std::string &our_param, chanrec* channel)
+bool ModeHandler::CheckTimeStamp(time_t theirs, time_t ours, const std::string &their_param, const std::string &our_param, Channel* channel)
{
return (ours < theirs);
}
return m_type;
}
-bool ModeWatcher::BeforeMode(userrec* source, userrec* dest, chanrec* channel, std::string ¶meter, bool adding, ModeType type)
+bool ModeWatcher::BeforeMode(User* source, User* dest, Channel* channel, std::string ¶meter, bool adding, ModeType type)
{
return true;
}
-void ModeWatcher::AfterMode(userrec* source, userrec* dest, chanrec* channel, const std::string ¶meter, bool adding, ModeType type)
+void ModeWatcher::AfterMode(User* source, User* dest, Channel* channel, const std::string ¶meter, bool adding, ModeType type)
{
}
-userrec* ModeParser::SanityChecks(userrec *user,const char *dest,chanrec *chan,int status)
+User* ModeParser::SanityChecks(User *user,const char *dest,Channel *chan,int status)
{
- userrec *d;
+ User *d;
if ((!user) || (!dest) || (!chan) || (!*dest))
{
return NULL;
return d;
}
-const char* ModeParser::Grant(userrec *d,chanrec *chan,int MASK)
+const char* ModeParser::Grant(User *d,Channel *chan,int MASK)
{
if (!chan)
return "";
return "";
}
-const char* ModeParser::Revoke(userrec *d,chanrec *chan,int MASK)
+const char* ModeParser::Revoke(User *d,Channel *chan,int MASK)
{
if (!chan)
return "";
return "";
}
-void ModeParser::DisplayCurrentModes(userrec *user, userrec* targetuser, chanrec* targetchannel, const char* text)
+void ModeParser::DisplayCurrentModes(User *user, User* targetuser, Channel* targetchannel, const char* text)
{
if (targetchannel)
{
return;
}
-void ModeParser::Process(const char** parameters, int pcnt, userrec *user, bool servermode)
+void ModeParser::Process(const char** parameters, int pcnt, User *user, bool servermode)
{
std::string target = parameters[0];
ModeType type = MODETYPE_USER;
unsigned char mask = 0;
- chanrec* targetchannel = ServerInstance->FindChan(parameters[0]);
- userrec* targetuser = ServerInstance->FindNick(parameters[0]);
+ Channel* targetchannel = ServerInstance->FindChan(parameters[0]);
+ User* targetuser = ServerInstance->FindNick(parameters[0]);
LastParse.clear();
/* Does this mode have a prefix? */
if (modehandlers[handler_id]->GetPrefix() && targetchannel)
{
- userrec* user_to_prefix = ServerInstance->FindNick(parameter);
+ User* user_to_prefix = ServerInstance->FindNick(parameter);
if (user_to_prefix)
targetchannel->SetPrefix(user_to_prefix, modehandlers[handler_id]->GetPrefix(),
modehandlers[handler_id]->GetPrefixRank(), adding);
else
{
/* No mode handler? Unknown mode character then. */
- user->WriteServ("472 %s %c :is unknown mode char to me",user->nick, modechar);
+ user->WriteServ("%d %s %c :is unknown mode char to me", type == MODETYPE_CHANNEL ? 472 : 501, user->nick, modechar);
}
break;
}
return NULL;
}
-std::string ModeParser::ModeString(userrec* user, chanrec* channel)
+std::string ModeParser::ModeString(User* user, Channel* channel)
{
std::string types;
std::string pars;
/** This default implementation can remove simple user modes
*/
-void ModeHandler::RemoveMode(userrec* user)
+void ModeHandler::RemoveMode(User* user)
{
char moderemove[MAXBUF];
const char* parameters[] = { user->nick, moderemove };
/** This default implementation can remove simple channel modes
* (no parameters)
*/
-void ModeHandler::RemoveMode(chanrec* channel)
+void ModeHandler::RemoveMode(Channel* channel)
{
char moderemove[MAXBUF];
const char* parameters[] = { channel->name, moderemove };
if (channel->IsModeSet(this->GetModeChar()))
{
- userrec* n = new userrec(ServerInstance);
-
sprintf(moderemove,"-%c",this->GetModeChar());
- n->SetFd(FD_MAGIC_NUMBER);
-
- ServerInstance->SendMode(parameters, 2, n);
-
- delete n;
+ ServerInstance->SendMode(parameters, 2, ServerInstance->FakeClient);
}
}