-class ModuleKnock : public Module
-{
- public:
- ModuleKnock()
- {
- Srv = new Server;
-
- Srv->AddExtendedMode('K',MT_CHANNEL,false,0,0);
- Srv->AddCommand("KNOCK",handle_knock,0,2);
- }
-
- virtual ~ModuleKnock()
- {
- delete Srv;
- }
-
- virtual Version GetVersion()
- {
- return Version(1,0,0,1);
- }
-
- virtual int OnExtendedMode(userrec* user, void* target, char modechar, int type, bool mode_on, string_list ¶ms)
- {
- // check if this is our mode character...
- if ((modechar == 'K') && (type == MT_CHANNEL))
- {
- return 1;
+ if (c->HasUser(user))
+ {
+ user->WriteNumeric(480, "%s :Can't KNOCK on %s, you are already on that channel.", user->nick.c_str(), c->name.c_str());
+ return CMD_FAILURE;