IRCServices Hazır Kodlar. IRCServices – (NS ALIST NICK)

2 hafta önce Adem tarafından eklendi. 140 kez görüntülendi. 0 yorum yapıldı.

Bu kodu servislere eklediğinizde, “/Ns Alist” komutu uygulandığında kullanıcı nickine dair hangi kanallarda erişim var hepsini görebilecektir. Ayrıca, diyelim -ki, adminsiniz ve bir kullanıcının erişim listesini görmek istiyorsunuz, (Bu kodların servislerde ekli olması kaydıyla), Admin kişi – “/Ns Alist Nick” komutunu uyguladığında kullanıcının bütün erişimlerini görebilecektir.

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 işlem tamamlanmış olacaktır. Konunun en başında vermiş olduğum komut ile de, hem kendinizin, hem de kullanıcıların erişim listesini görebilirsiniz.

Google Aramaları

Benzer içerikler

Yapılan Yorumlar

Yorumlarınız yönetici onayından sonra yayınlanacaktır.