mIRCForumlari.Net

mIRCForumlari.Net (https://www.mircforumlari.net/)
-   Services Hazır Kodlar (https://www.mircforumlari.net/services-hazir-kodlar/)
-   -   NickServ REGISTERNICK Komutu (https://www.mircforumlari.net/services-hazir-kodlar/15740-nickserv-registernick-komutu.html)

RahmetLi 06 Nisan 2023 06:16

NickServ REGISTERNICK Komutu
 
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
PHP- Kodu:

static void do_unsuspend(User *u);

altına
PHP- Kodu:


       
PHP- Kodu:

       

               

               
               

                        static void do_registernick(User *u);
               

               

               

       


PHP- Kodu:

static void do_registernick(User *u);

altına
PHP- Kodu:

    { "REGISTERNICK", do_registernick, is_services_admin, -1,
                -1, NICK_HELP_REGISTER },

PHP- Kodu:

/*************************************************************************/

static void do_identify(User *u) {

üstüne
PHP- Kodu:

/*************************************************************************/

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);
    }
}



Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 15:49.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.


Navbar with Avatar by Motorradforum