{
/** Routing type from the enum above
*/
- const RouteType type;
+ RouteType type;
/** For unicast, the destination server's name
*/
- const std::string serverdest;
+ std::string serverdest;
/** Create a RouteDescriptor
*/
#include "inspircd.h"
-#ifndef __CMD_KICK_H__
-#define __CMD_KICK_H__
-
-// include the common header files
-
-#include "users.h"
-#include "channels.h"
-
/** Handle /KICK. These command handlers can be reloaded by the core,
* and handle basic RFC1459 commands. Commands within modules work
* the same way, however, they can be fully unloaded, where these
CmdResult Handle(const std::vector<std::string>& parameters, User *user);
};
-#endif
-
/** Handle /KICK
*/
if (routing.type == ROUTE_TYPE_LOCALONLY)
{
- return;
+ Module* srcmodule = thiscmd->creator;
+ Version ver = srcmodule->GetVersion();
+
+ if ((ver.Flags & VF_CORE) && !IS_LOCAL(user))
+ routing = ROUTE_BROADCAST;
+ else
+ return;
+ if (user == ServerUser)
+ return;
}
else if (routing.type == ROUTE_TYPE_OPT_BCAST)
{