#include <vector>
#include "users.h"
#include "channels.h"
-#include "helperfuncs.h"
+
#include "modules.h"
+#include "inspircd.h"
+
+
/* $ModDesc: Provides support for user parking/unparking */
time_t parktime;
};
-static Server *Srv;
+
typedef std::vector<awaymsg> awaylog;
typedef std::vector<parkedinfo> parkinfo;
parkinfo pinfo;
class cmd_park : public command_t
{
public:
- cmd_park () : command_t("PARK", 0, 0)
+ cmd_park (InspIRCd* Instance) : command_t(Instance,"PARK", 0, 0)
{
this->source = "m_park.so";
}
unsigned long* key = new unsigned long;
*key = abs(random() * 12345);
snprintf(msg,MAXBUF,"You are now parked. To unpark use /UNPARK %s %lu",user->nick, *key);
- Srv->UserToPseudo(user,std::string(msg));
+ ServerInstance->UserToPseudo(user,std::string(msg));
aw = new awaylog;
user->Extend("park_awaylog", aw);
user->Extend("park_key", key);
class cmd_parkstats : public command_t
{
public:
- cmd_parkstats () : command_t("PARKSTATS", 'o', 0)
+ cmd_parkstats (InspIRCd* Instance) : command_t(Instance,"PARKSTATS", 'o', 0)
{
this->source = "m_park.so";
}
class cmd_unpark : public command_t
{
public:
- cmd_unpark () : command_t("UNPARK", 0, 2)
+ cmd_unpark (InspIRCd* Instance) : command_t(Instance,"UNPARK", 0, 2)
{
this->source = "m_park.so";
syntax = "<nick> <key>";
*
* And there you have it, easy huh (NOT)...
*/
- userrec* unpark = Srv->FindNick(std::string(parameters[0]));
+ userrec* unpark = ServerInstance->FindNick(parameters[0]);
if (!unpark)
{
user->WriteServ("942 %s %s :Invalid user specified.",user->nick, parameters[0]);
// remove all their old modes
user->WriteServ("MODE %s -%s",user->nick,user->FormatModes());
// now, map them to the parked user, while nobody can see :p
- Srv->PseudoToUser(user,unpark,"Unparked to "+std::string(parameters[0]));
+ ServerInstance->PseudoToUser(user,unpark,"Unparked to "+std::string(parameters[0]));
// set all their new modes
unpark->WriteServ("MODE %s +%s",unpark->nick,unpark->FormatModes());
// spool their away log to them
public:
virtual void ReadSettings()
{
- Conf = new ConfigReader;
+ Conf = new ConfigReader(ServerInstance);
ParkMaxTime = Conf->ReadInteger("park","maxtime",0,true);
ConcurrentParks = Conf->ReadInteger("park","maxperip",0,true);
ParkMaxMsgs = Conf->ReadInteger("park","maxmessages",0,true);
DELETE(Conf);
}
- ModulePark(Server* Me)
+ ModulePark(InspIRCd* Me)
: Module::Module(Me)
{
- Srv = Me;
+
pinfo.clear();
this->ReadSettings();
- cmd1 = new cmd_park();
- cmd2 = new cmd_unpark();
- cmd3 = new cmd_parkstats();
- Srv->AddCommand(cmd1);
- Srv->AddCommand(cmd2);
- Srv->AddCommand(cmd3);
+ cmd1 = new cmd_park(ServerInstance);
+ cmd2 = new cmd_unpark(ServerInstance);
+ cmd3 = new cmd_parkstats(ServerInstance);
+ ServerInstance->AddCommand(cmd1);
+ ServerInstance->AddCommand(cmd2);
+ ServerInstance->AddCommand(cmd3);
}
virtual ~ModulePark()
{
if (time(NULL) >= (j->parktime+ParkMaxTime))
{
- userrec* thisnick = Srv->FindNick(j->nick);
+ userrec* thisnick = ServerInstance->FindNick(j->nick);
// THIS MUST COME BEFORE THE QuitUser - QuitUser can
// create a recursive call to OnUserQuit in this module
// and then corrupt the pointer!
pinfo.erase(j);
if (thisnick)
- userrec::QuitUser(thisnick,"PARK timeout");
+ userrec::QuitUser(ServerInstance,thisnick,"PARK timeout");
go_again = true;
break;
}
{
}
- virtual Module * CreateModule(Server* Me)
+ virtual Module * CreateModule(InspIRCd* Me)
{
return new ModulePark(Me);
}