PDA

Orijinalini görmek için tıklayınız : Modul - IRCops


ceyLin
15 November 2008, 23:10
Ftp Ye Girin ve Unreal3.2/src/modules Ve Modulumuzu Atın IRCops icin gereken kodları aşagıda mevcut

#include "config.h"
#include "struct.h"
#include "common.h"
#include "sys.h"
#include "numeric.h"
#include "msg.h"
#include "channel.h"
#include <time.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef _WIN32
#include <io.h>
#endif
#include <fcntl.h>
#include "h.h"
#ifdef STRIPBADWORDS
#include "badwords.h"
#endif
#ifdef _WIN32
#include "version.h"
#endif

#define RPL_IRCOPS 337
#define RPL_ENDOFIRCOPS 338
#define MSG_IRCOPS "IRCOPS"
#define TOK_IRCOPS "IO"
#define MyMod ModIrcops->handle
#define IsAway(x) (x)->user->away
#define IsSkoAdmin(sptr) (IsAdmin(sptr) || IsNetAdmin(sptr) || IsSAdmin(sptr) || IsCoAdmin(sptr))
#define DelCommand(x) if (x) CommandDel(x); x = NULL

static Command *AddCommand(char *msg, char *token, int (*func)());
DLLFUNC int m_ircops(aClient *cptr, aClient *sptr, int parc, char *parv[]);

ModuleInfo *ModIrcops;
Command *CmdIrcops;

#ifndef DYNAMIC_LINKING
ModuleHeader m_ircops_Header
#else
#define m_ircops_Header Mod_Header
ModuleHeader Mod_Header
#endif
= {
"ircops",
"$Id: m_ircops.c,v 2.3 2003/12/01 11:46:08 Salazar Exp $",
"command /ircops",
"3.2-b8-1",
NULL
};


/* The purpose of these ifdefs, are that we can "static" link the ircd if we
* want to
*/

/* This is called on module init, before Server Ready */
#ifdef DYNAMIC_LINKING
DLLFUNC int Mod_Init(ModuleInfo *modinfo)
#else
int m_ircops_Init(ModuleInfo *modinfo)
#endif
{
ModIrcops = modinfo;
CmdIrcops = AddCommand(MSG_IRCOPS, TOK_IRCOPS, m_ircops);

if (!CmdIrcops)
return MOD_FAILED;

return MOD_SUCCESS;
}

/* Is first run when server is 100% ready */
#ifdef DYNAMIC_LINKING
DLLFUNC int Mod_Load(int module_load)
#else
int m_ircops_Load(int module_load)
#endif
{
return MOD_SUCCESS;
}


/* Called when module is unloaded */
#ifdef DYNAMIC_LINKING
DLLFUNC int Mod_Unload(int module_unload)
#else
int m_ircops_Unload(int module_unload)
#endif
{
DelCommand(CmdIrcops);

return MOD_SUCCESS;
}

typedef struct
{
unsigned long *umode;
char *text;
} oflag;

static oflag otypes[] =
{
{ &UMODE_NETADMIN, "Network Administrator" },
{ &UMODE_ADMIN, "Server Administrator" },
{ &UMODE_SADMIN, "Services Administrator" },
{ &UMODE_COADMIN, "Co Administrator" },
{ &UMODE_OPER, "IRC Operator" },
{ &UMODE_LOCOP, "Local IRC Operator"
},
{ NULL, NULL }
};

static char *find_otype(unsigned long umodes)
{
unsigned int i;

for (i = 0; otypes[i].umode; i++)
if (*otypes[i].umode & umodes)
return otypes[i].text;

return "an unknown operator";
}

static Command *AddCommand(char *msg, char *token, int (*func)())
{
Command *cmd;

if (CommandExists(msg))
{
config_error("Command %s already exists", msg);
return NULL;
}
if (CommandExists(token))
{
config_error("Token %s already exists", token);
return NULL;
}

cmd = CommandAdd(MyMod, msg, token, func, MAXPARA, 0);

#ifndef _WIN32
if (ModuleGetError(MyMod) != MODERR_NOERROR || !cmd)
#else
if (!cmd)
#endif
{
#ifndef _WIN32
config_error("Error adding command %s: %s", msg,
ModuleGetErrorStr(MyMod));
#else
config_error("Error adding command %s", msg);
#endif
return NULL; /* just to be sure */
}

return cmd;
}


int m_ircops(aClient *cptr, aClient *sptr, int parc, char *parv[])
{
aClient *acptr;
char buf;
int opers = 0, admins = 0, globs = 0, aways = 0;

sendto_one(sptr, ":%s 339 %s :+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+",
me.name, sptr->name);
sendto_one(sptr, ":%s 339 %s : \2Sunucuda Online olan Yönetici Listesi\2 ",
me.name, sptr->name);
sendto_one(sptr, ":%s 339 %s : ",
me.name, sptr->name);
sendto_one(sptr, ":%s 339 %s :+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+",
me.name, sptr->name);
for (acptr = client; acptr; acptr = acptr->next)
{
/* List only real IRC Operators */
if (IsULine(acptr) || !IsPerson(acptr) || !IsAnOper(acptr))
continue;
/* Don't list +H users */
if (!IsAnOper(sptr) && IsHideOper(acptr))
continue;

sendto_one(sptr, ":%s %d %s : \2Rumuz\2 : %-13s \2Yetki\2 : %-20s " "%s",
me.name, RPL_IRCOPS, sptr->name,
acptr->name,
find_otype(acptr->umodes),
(IsAway(acptr) ? "- Me&thorn;gul" : IsHelpOp(acptr) ? "" : ""));

if (IsAway(acptr))
aways++;
else if (IsSkoAdmin(acptr))
admins++;
else
opers++;

}

globs = opers + admins + aways;

sprintf(buf,
"Toplam: %d Operatör%s Ba&eth;l&yacute; - %d Yönetici%s , %d IRC Operatör%s ve %d Me&thorn;gul",
globs, (globs) > 1 ? "" : "", admins, admins > 1 ? "" : "",
opers, opers > 1 ? "" : "", aways);
sendto_one(sptr, ":%s 339 %s :+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+",
me.name, sptr->name);

sendto_one(sptr, ":%s %d %s :%s", me.name, RPL_IRCOPS, sptr->name, buf);
sendto_one(sptr, ":%s %d %s :Yönetici listesi sonu", me.name, RPL_ENDOFIRCOPS, sptr->name);

return 0;
}


By RaiStlin

m_ircops.c oLarak Kaydet edip Unreal3.2/src/modules e aTıyoruz Sonra Ssh Login Olarak Sırayla

[B]cd Unreal3.2

make custommodule MODULEFILE=m_ircops Make Bittikten Sonra..

unrealircd.conf a Giriyoruz pico unrealircd.conf ctrl+w yapıp commands.so

aRatıyoruz

Onun Altına loadmodule "src/modules/m_ircops.so"; Ekliyoruz Ve
ctrl + x e Basıyoruz y diyoruz enter yapıoruz daha sonra
./unreal rehash Yapıyoruz..
Kurulum tamamlanmıstir.

aLıntı