Entrance |
27 Ağustos 2016 21:12 |
IRCServices - (NS ALIST NICK)
Merhaba arkadaşlar,
Bu eklentiyi servislerinize entegre ettiğinizde, /NS ALIST NICK komutunu kullandığınızda o kişinin hangi kanallarda accessi olduğunu listeleyecektir.
Kendi accessinizi de, /NS ALIST komutuyla listeleyebilirsiniz.
Ayrıca kodların kime ait olduğunu bilmiyorum. Ama büyük ihtimal ile Sky-Dancer , rumuzlu arkadaşa aittir. Kodlar arşivimde duruyordu paylaşmak istedim..
Klasör: ircservices-5.0.x
Dosya: modules/nickserv/main.c
BULUN,
Alıntı:
#include "nickserv.h"
#include "ns-local.h"
|
ALTINA,
Kod:
#include "modules/chanserv/chanserv.h"
char last_alist_nick[NICKMAX];
#define XOP_LISTNAME(level) \
((level)==ACCLEV_SOP ? " (SOP)" : (level)==ACCLEV_AOP ? " (AOP)" : \
(level)==ACCLEV_HOP ? " (HOP)" : (level)==ACCLEV_VOP ? " (VOP)" : " ")
EKLEYİN,
-
BULUN,
Alıntı:
static void do_help(User *u);
|
ÜSTÜNE,
Kod:
static void do_alist(User *u);
EKLEYİN,
-
BULUN,
Alıntı:
{ "HELP", do_help, NULL, -1, -1,-1 },
|
ALTINA,
Kod:
{ "ALIST", do_alist, NULL, -1, -1, -1 },
EKLEYİN,
-
BULUN,
Alıntı:
/* These are static, so the pointers don't need to be cleared */
if (cmd_GETPASS)
cmd_GETPASS->name = "GETPASS";
if (cmd_DROPEMAIL_CONFIRM)
cmd_DROPEMAIL_CONFIRM->name = "DROPEMAIL-CONFIRM";
if (cmd_DROPEMAIL)
cmd_DROPEMAIL->name = "DROPEMAIL";
if (cmd_REGISTER)
cmd_REGISTER->name = "REGISTER";
unregister_commands(module, cmds);
del_commandlist(module);
return 1;
}
|
ALTINA,
Kod:
static void do_alist(User *u) {
ChannelInfo *ci;
NickInfo *ni = NULL;
NickGroupInfo *ngi;
int32 id;
int i;
int liste=0;
char *nick = strtok(NULL, " ");
char *snick;
if (is_oper(u) && nick) {
snick = nick;
}
else {
snick = u->nick;
}
if (!(ni = get_nickinfo(snick))) {
notice_lang(s_NickServ, u, NICK_X_NOT_REGISTERED, snick);
return;
} else if (ni->status & NS_VERBOTEN) {
notice_lang(s_NickServ, u, NICK_X_FORBIDDEN, snick);
return;
} else if (!user_identified(u)) {
notice_lang(s_NickServ, u, NICK_IDENTIFY_REQUIRED, s_NickServ);
return;
} else if (!(ngi = get_ngi(ni))) {
notice_lang(s_NickServ, u, INTERNAL_ERROR);
return;
}
if (ni != u->ni)
send_cmd(s_NickServ, "NOTICE %s :%s Nickine Ait Erisim Listesi:", u->nick, nick);
else
send_cmd(s_NickServ, "NOTICE %s :Nickinize Ait Erisim Listesi:", u->nick);
send_cmd(s_NickServ, "NOTICE %s :Kanal - Access Seviyesi", u->nick);
strscpy(last_alist_nick, u->nick, NICKMAX);
for (ci = first_channelinfo(); ci; ci = next_channelinfo()) {
if (!ci || !valid_ngi(u) || (ci->flags & CI_VERBOTEN) || ci->suspendinfo)
continue;
if (ngi->id == ci->founder) {
send_cmd(s_NickServ, "NOTICE %s :%d. %s - \2founder\2", u->nick, liste+1, ci->name);
liste++;
continue;
}
id=ngi->id;
ARRAY_FOREACH (i, ci->access) {
if (ci && (ci->access[i].nickgroup == id)) {
send_cmd(s_NickServ, "NOTICE %s :%d. %s - Level :\2 %d%s\2", u->nick, liste+1 , ci->name, ci->access[i].level, XOP_LISTNAME(ci->access[i].level));
liste++;
continue;
}
}
}
if (liste==0) {
send_cmd(s_NickServ, "NOTICE %s :Kayıt bulunamadı.", u->nick);
}
else {
send_cmd(s_NickServ, "NOTICE %s :(%d) adet kayıt bulundu.", u->nick, liste);
}
return;
}
EKLEYİN,
-
Klasör: ircservices-5.0.x
Dosya: modules/nickserv/nickserv.h
BULUN,
ALTINA,
Kod:
char last_alist_nick[NICKMAX];
EKLEYİN,
-
IRCServices'in ana dizininde make ve make install komutlarını uygulayıp, mIRC veya SSH üzerinden de servislerinizi yeniden başlatın..
İyi forumlar. ^^
|