lookjapan.COM - IRC ve mIRC dünyasının forumu!

lookjapan.COM - IRC ve mIRC dünyasının forumu! (http://www.lookjapan.com/index.php)
-   IRCServices Hazır Kodlar (http://www.lookjapan.com/forumdisplay.php?f=180)
-   -   IRCServices - (NS ALIST NICK) (http://www.lookjapan.com/showthread.php?t=3980)

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,
Alıntı:

char nick[NICKMAX];
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. ^^


All times are GMT +3. The time now is 14:33.

Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.