#include "unrealircd.h"
#define OVR_WEBIRC "WEBIRC"
#define OVR_JOIN "JOIN"
static int showwebirc_overridewebirc(Cmdoverride *ovr, aClient *cptr, aClient *sptr, int parc, char *parv[]);
static ModuleInfo *showwebircMI = NULL;
Cmdoverride *showwebircOVRWebirc;
ModuleHeader MOD_HEADER(m_showwebirc) = {
"m_showwebirc",
"$Id: v0.01 2018/12/14 k4be$",
"Add Y usermode for WEBIRC users",
"3.2-b8-1",
NULL
};
long showwebirc_umode;
MOD_INIT(m_showwebirc) {
showwebircMI = modinfo;
if(!UmodeAdd(modinfo->handle, 'Y', UMODE_GLOBAL, 0, umode_allow_none, &showwebirc_umode)) return MOD_FAILED;
return MOD_SUCCESS;
}
MOD_LOAD(m_showwebirc) {
showwebircOVRWebirc = CmdoverrideAdd(showwebircMI->handle, OVR_WEBIRC, showwebirc_overridewebirc);
if(ModuleGetError(showwebircMI->handle) != MODERR_NOERROR || !showwebircOVRWebirc) {
return MOD_FAILED;
}
return MOD_SUCCESS;
}
MOD_UNLOAD(m_showwebirc) {
return MOD_SUCCESS;
}
static int showwebirc_overridewebirc(Cmdoverride *ovr, aClient *cptr, aClient *sptr, int parc, char *parv[]) {
/* Gets args: Cmdoverride *ovr, aClient *cptr, aClient *sptr, int parc, char *parv[]
**
** ovr: Pointer to the override we're attached to
** cptr: Pointer to directly attached client -- if remote user this is the remote server instead
** sptr: Pointer to user executing command
** parc: Amount of arguments (also includes the command in the count)
** parv: Contains the actual args, first one starts at parv[1]
**
*/
long old = sptr->umodes;
sptr->umodes |= showwebirc_umode;
send_umode_out(sptr, sptr, old);
return CallCmdoverride(ovr, cptr, sptr, parc, parv);
}