Tekil Mesaj gösterimi
Alt 11 Ocak 2015, 20:06   #7
Çevrimdışı
BehroozWolf
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: /NickServ REGISTERNICK Komutu




xwerswoodx Nickli Üyeden Alıntı
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
Huyum kurusun hep üşengeçliğin sonucunda kendimce bir kod yazdım, paylaşayım isteyen varsa yararlansın dedim.

Kod, /ns link ve /ns register komutlarının birleşimidir yani tamamı benim tarafımdan yazılmamıştır.


Kullanımı: /nickserv registernick nick şifre email şeklindedir.
Süre sınırı, email sınırı vb. tarzı limitler olmadan hiç nicke geçmeden nick kayıt etmenizi sağlar. Services Admin (/os admin list) listesinde olmanız gerekmektedir.

ircservices*.* > modules > nickserv > main.c

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
static void do_unsuspend(User *u);

altına
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
static void do_registernick(User *u);

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
{ "DROPNICK", do_dropnick, is_services_admin, -1, -1, NICK_OPER_HELP_DROPNICK },

altına
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
{ "REGISTERNICK", do_registernick, is_services_admin, -1, -1, NICK_HELP_REGISTER },

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
/*************************************************************************/ static void do_identify(User *u) {

üstüne

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
/*************************************************************************/ static void do_registernick(User *u) { char *nick = strtok(NULL, " "); char *pass = strtok(NULL, " "); char *email = strtok(NULL, " "); NickInfo *ni = u->ni, *ni2; NickGroupInfo *ngi = u->ngi, *ngi2; int n; if (readonly) { notice_lang(s_NickServ, u, NICK_REGISTRATION_DISABLED); } else if (!is_services_admin(u)) { notice_lang(s_NickServ, u, PERMISSION_DENIED); } else if (!nick || !pass || (NSRequireEmail && !email) || (stricmp(pass, u->nick) == 0 && (strtok(NULL, "") || (email && (!strchr(email,'@') || !strchr(email,'.')))))) { send_cmd(s_NickServ, "NOTICE %s Kullanimi: \2REGISTERNICK \37nick\37 \37sifre\37 \37email\37\2", u->nick); } else if (strlen(nick) > protocol_nickmax) { notice_lang(s_NickServ, u, NICK_TOO_LONG, protocol_nickmax); } else if (!valid_nick(nick)) { notice_lang(s_NickServ, u, NICK_INVALID, nick); } else if (stricmp(pass, u->nick) == 0 || (StrictPasswords && strlen(pass) < 5)) { notice_lang(s_NickServ, u, MORE_OBSCURE_PASSWORD); } else if (email && !valid_email(email)) { send_cmd(s_NickServ, "NOTICE %s Lütfen gecerli bir email adresi giriniz.", u->nick); } else if (!reglink_check(u, nick, NULL, NULL)) { notice_lang(s_NickServ, u, NICK_CANNOT_BE_REGISTERED, nick); } else if (!ni || !ngi || ngi == NICKGROUPINFO_INVALID) { notice_lang(s_NickServ, u, NICK_NOT_REGISTERED); } else if (!user_identified(u)) { notice_lang(s_NickServ, u, NICK_IDENTIFY_REQUIRED, s_NickServ); } else if (irc_stricmp(u->nick, nick) == 0) { send_cmd(s_NickServ, "NOTICE %s Kullandığınız nicki kayıt edemezsiniz.", u->nick); } else if ((ni2 = get_nickinfo(nick)) != NULL) { if (ni2->status & NS_VERBOTEN) notice_lang(s_NickServ, u, NICK_X_FORBIDDEN, nick); else notice_lang(s_NickServ, u, NICK_X_ALREADY_REGISTERED, nick); put_nickinfo(ni2); } else if (get_user(nick)) { notice_lang(s_NickServ, u, NICK_LINK_IN_USE, nick); } else { Password passbuf; init_password(&passbuf); if (encrypt_password(pass, strlen(pass), &passbuf) != 0) { clear_password(&passbuf); memset(pass, 0, strlen(pass)); module_log("Failed to encrypt password for %s (register)", u->nick); notice_lang(s_NickServ, u, NICK_REGISTRATION_FAILED); return; } ni2 = makenick(nick, &ngi2); if (!ni) { clear_password(&passbuf); module_log("makenick(%s) failed", u->nick); notice_lang(s_NickServ, u, NICK_REGISTRATION_FAILED); return; } copy_password(&ngi2->pass, &passbuf); clear_password(&passbuf); if (ni->last_usermask) ni2->last_usermask = sstrdup(ni->last_usermask); if (ni->last_realmask) ni2->last_realmask = sstrdup(ni->last_realmask); if (ni->last_realname) ni2->last_realname = sstrdup(ni->last_realname); if (ni->last_quit) ni2->last_quit = sstrdup(ni->last_quit); ni2->time_registered = ni2->last_seen = time(NULL); if (email) ngi2->email = sstrdup(email); ngi2->flags = NSDefFlags; ngi2->memos.memomax = MEMOMAX_DEFAULT; ngi2->channelmax = CHANMAX_DEFAULT; ngi2->language = LANG_DEFAULT; ngi2->timezone = TIMEZONE_DEFAULT; put_nickinfo(ni2); notice_lang(s_NickServ, u, NICK_REGISTERED, nick); if (readonly) notice_lang(s_NickServ, u, READ_ONLY_MODE); } }

HELP yada türkçe çeviri yapmadım dilerseniz siz yapabilirsiniz.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
static void do_registernick(User *u) { char *nick = strtok(NULL, " "); char *pass = strtok(NULL, " "); char *email = strtok(NULL, " "); NickInfo *ni = u->ni, *ni2; NickGroupInfo *ngi = u->ngi, *ngi2; int n;

int n; ? gözden kaçmiş olabilir mi? Bir kullanım alanı belirtmemişin derleme işleminde uyari verecektir.

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet