Birbirinden kaliteli ve seviyeli insanlarla tanışıp sohbetin tadını çıkarıp yeni arkadaşlıklara yelken açın.

Sohbet Girişi


* Şifreniz yoksa boş bırakın.

IRCServices – (NS ALIST NICK) - Lidersohbet.Net - Seviyeli Sohbet Siteleri, Chat Sohbet Odaları


IRCServices – (NS ALIST NICK)

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.



Bir cevap bırakın.