X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fcommand_parse.cpp;h=85365c0c3145a905cb43a10f9545a62fee738164;hb=1e8389b27ff99ad9f48c890486ebef936acafc41;hp=31e61d161c8ef98ab7a66a75f41c2a8e325de2ad;hpb=c25a59d9036444872d831a126c6326f3d8be5e74;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/command_parse.cpp b/src/command_parse.cpp index 31e61d161..85365c0c3 100644 --- a/src/command_parse.cpp +++ b/src/command_parse.cpp @@ -100,7 +100,7 @@ bool CommandParser::LoopCall(User* user, Command* handler, const std::vector= n->second->min_params)) - { - if (IS_LOCAL(user) && n->second->flags_needed) - { - if (user->IsModeSet(n->second->flags_needed)) - { - return (user->HasPermission(commandname)); - } - } - else - { - return true; - } - } - } - return false; -} - Command* CommandParser::GetHandler(const std::string &commandname) { Commandtable::iterator n = cmdlist.find(commandname); @@ -230,7 +206,7 @@ void CommandParser::ProcessCommand(LocalUser *user, std::string &cmd) if (!handler) { if (user->registered == REG_ALL) - user->WriteNumeric(ERR_UNKNOWNCOMMAND, "%s %s :Unknown command",user->nick.c_str(),command.c_str()); + user->WriteNumeric(ERR_UNKNOWNCOMMAND, "%s :Unknown command",command.c_str()); ServerInstance->stats->statsUnknown++; return; } @@ -280,14 +256,14 @@ void CommandParser::ProcessCommand(LocalUser *user, std::string &cmd) { if (!user->IsModeSet(handler->flags_needed)) { - user->WriteNumeric(ERR_NOPRIVILEGES, "%s :Permission Denied - You do not have the required operator privileges",user->nick.c_str()); + user->WriteNumeric(ERR_NOPRIVILEGES, ":Permission Denied - You do not have the required operator privileges"); return; } if (!user->HasPermission(command)) { - user->WriteNumeric(ERR_NOPRIVILEGES, "%s :Permission Denied - Oper type %s does not have access to command %s", - user->nick.c_str(), user->oper->name.c_str(), command.c_str()); + user->WriteNumeric(ERR_NOPRIVILEGES, ":Permission Denied - Oper type %s does not have access to command %s", + user->oper->name.c_str(), command.c_str()); return; } } @@ -297,12 +273,11 @@ void CommandParser::ProcessCommand(LocalUser *user, std::string &cmd) /* command is disabled! */ if (ServerInstance->Config->DisabledDontExist) { - user->WriteNumeric(ERR_UNKNOWNCOMMAND, "%s %s :Unknown command",user->nick.c_str(),command.c_str()); + user->WriteNumeric(ERR_UNKNOWNCOMMAND, "%s :Unknown command", command.c_str()); } else { - user->WriteNumeric(ERR_UNKNOWNCOMMAND, "%s %s :This command has been disabled.", - user->nick.c_str(), command.c_str()); + user->WriteNumeric(ERR_UNKNOWNCOMMAND, "%s :This command has been disabled.", command.c_str()); } ServerInstance->SNO->WriteToSnoMask('t', "%s denied for %s (%s@%s)", @@ -315,9 +290,9 @@ void CommandParser::ProcessCommand(LocalUser *user, std::string &cmd) if (command_p.size() < handler->min_params) { - user->WriteNumeric(ERR_NEEDMOREPARAMS, "%s %s :Not enough parameters.", user->nick.c_str(), command.c_str()); + user->WriteNumeric(ERR_NEEDMOREPARAMS, "%s :Not enough parameters.", command.c_str()); if ((ServerInstance->Config->SyntaxHints) && (user->registered == REG_ALL) && (handler->syntax.length())) - user->WriteNumeric(RPL_SYNTAX, "%s :SYNTAX %s %s", user->nick.c_str(), handler->name.c_str(), handler->syntax.c_str()); + user->WriteNumeric(RPL_SYNTAX, ":SYNTAX %s %s", handler->name.c_str(), handler->syntax.c_str()); return; } @@ -340,7 +315,7 @@ void CommandParser::ProcessCommand(LocalUser *user, std::string &cmd) */ CmdResult result = handler->Handle(command_p, user); - FOREACH_MOD(I_OnPostCommand, OnPostCommand(handler, command_p, user, result, cmd)); + FOREACH_MOD(OnPostCommand, (handler, command_p, user, result, cmd)); } } @@ -351,6 +326,10 @@ void CommandParser::RemoveCommand(Command* x) cmdlist.erase(n); } +CommandBase::~CommandBase() +{ +} + Command::~Command() { ServerInstance->Parser->RemoveCommand(this); @@ -381,7 +360,7 @@ CommandParser::CommandParser() { } -std::string CommandParser::TranslateUIDs(const std::vector& to, const std::vector& source, bool prefix_final, Command* custom_translator) +std::string CommandParser::TranslateUIDs(const std::vector& to, const std::vector& source, bool prefix_final, CommandBase* custom_translator) { std::vector::const_iterator types = to.begin(); std::string dest; @@ -410,7 +389,7 @@ std::string CommandParser::TranslateUIDs(const std::vector& to, c return dest; } -void CommandParser::TranslateSingleParam(TranslateType to, const std::string& item, std::string& dest, Command* custom_translator, unsigned int paramnumber) +void CommandParser::TranslateSingleParam(TranslateType to, const std::string& item, std::string& dest, CommandBase* custom_translator, unsigned int paramnumber) { switch (to) {