IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   Hazır_kodlar (https://www.ircforumlari.net/hazir_kodlar/)
-   -   m_whois.c [Türkce - Idlesi Saklıdır] (https://www.ircforumlari.net/hazir_kodlar/165715-m_whoisc-turkce-idlesi-saklidir.html)

OkyAnuS 16 Aralık 2008 08:12

m_whois.c [Türkce - Idlesi Saklıdır]
 
Kod:

/*
 *  Özel Edit m_whois.c Dosyasıdır.
 *  Edit By OkyAnuS
 *  Iletisim :
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
.Tr
 */

#include "config.h"
#include "struct.h"
#include "common.h"
#include "sys.h"
#include "numeric.h"
#include "msg.h"
#include "channel.h"
#include <time.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef _WIN32
#include <io.h>
#endif
#include <fcntl.h>
#include "h.h"
#include "proto.h"
#ifdef STRIPBADWORDS
#include "badwords.h"
#endif
#ifdef _WIN32
#include "version.h"
#endif

static char buf[BUFSIZE];

DLLFUNC int m_whois(aClient *cptr, aClient *sptr, int parc, char *parv[]);

/* Place includes here */
#define MSG_WHOIS      "WHOIS" /* WHOI */
#define TOK_WHOIS      "#"    /* 35 */

ModuleHeader MOD_HEADER(m_whois)
  = {
    "whois",    /* Name of module */
    "$Id: m_whois.c,v 1.1.2.30.2.10 2007/01/22 12:36:51 syzop Exp $", /* Version */
    "command /whois", /* Short description of module */
    "3.2-b8-1",
    NULL
    };

/* This is called on module init, before Server Ready */
DLLFUNC int MOD_INIT(m_whois)(ModuleInfo *modinfo)
{
    /*
    * We call our add_Command crap here
    */
    add_Command(MSG_WHOIS, TOK_WHOIS, m_whois, MAXPARA);
    MARK_AS_OFFICIAL_MODULE(modinfo);
    return MOD_SUCCESS;
}

/* Is first run when server is 100% ready */
DLLFUNC int MOD_LOAD(m_whois)(int module_load)
{
    return MOD_SUCCESS;
}

/* Called when module is unloaded */
DLLFUNC int MOD_UNLOAD(m_whois)(int module_unload)
{
    if (del_Command(MSG_WHOIS, TOK_WHOIS, m_whois) < 0)
    {
        sendto_realops("Failed to delete commands when unloading %s",
                MOD_HEADER(m_whois).name);
    }
    return MOD_SUCCESS;
}


/*
** m_whois
**    parv[0] = sender prefix
**    parv[1] = nickname masklist
*/
DLLFUNC int  m_whois(aClient *cptr, aClient *sptr, int parc, char *parv[])
{
    Membership *lp;
    anUser *user;
    aClient *acptr, *a2cptr;
    aChannel *chptr;
    char *nick, *tmp, *name;
    char *p = NULL;
    int  found, len, mlen, cnt = 0;
    char querybuf[BUFSIZE];

    if (IsServer(sptr))   
        return 0;

    if (parc < 2)
    {
        sendto_one(sptr, err_str(ERR_NONICKNAMEGIVEN),
            me.name, parv[0]);
        return 0;
    }

    if (parc > 2)
    {
        if (hunt_server_token(cptr, sptr, MSG_WHOIS, TOK_WHOIS, "%s :%s", 1, parc,
            parv) != HUNTED_ISME)
            return 0;
        parv[1] = parv[2];
    }

    strcpy(querybuf, parv[1]);

    for (tmp = canonize(parv[1]); (nick = strtoken(&p, tmp, ",")); tmp = NULL)
    {
        unsigned char invis, showchannel, member, wilds, hideoper; /* <- these are all boolean-alike */

        if (++cnt > MAXTARGETS)
            break;

        found = 0;
        /* We do not support "WHOIS *" */
        wilds = (index(nick, '?') || index(nick, '*'));
        if (wilds)
            continue;

        if ((acptr = find_client(nick, NULL)))
        {
            if (IsServer(acptr))
                continue;
            /*
            * I'm always last :-) and acptr->next == NULL!!
            */
            if (IsMe(acptr))
                break;
            /*
            * 'Rules' established for sending a WHOIS reply:
            * - only send replies about common or public channels
            *  the target user(s) are on;
            */

            if (!IsPerson(acptr))
                continue;

            user = acptr->user;
            name = (!*acptr->name) ? "?" : acptr->name;

            invis = acptr != sptr && IsInvisible(acptr);
            member = (user->channel) ? 1 : 0;

            a2cptr = find_server_quick(user->server);

            hideoper = 0;
            if (IsHideOper(acptr) && (acptr != sptr) && !IsAnOper(sptr))
                hideoper = 1;

            if (IsWhois(acptr) && (sptr != acptr))
            {
                sendto_one(acptr,
                    ":%s %s %s :*** %s (%s@%s) did a /whois on you.",
                    me.name, IsWebTV(acptr) ? "PRIVMSG" : "NOTICE", acptr->name, sptr->name,
                    sptr->user->username, sptr->user->realhost);
            }
            sendto_one(sptr, rpl_str(RPL_WHOISUSER), me.name,
                parv[0], name,
                user->username,
                IsHidden(acptr) ? user->virthost : user->realhost,
                acptr->info);

            if (IsOper(sptr))
            {
                char sno[512];
                strcpy(sno, get_sno_str(acptr));
               
                /* send the target user's modes */
                sendto_one(sptr, rpl_str(RPL_WHOISMODES),
                    me.name, parv[0], name,
                    get_mode_str(acptr), sno[1] == 0 ? "" : sno);
            }
            if ((acptr == sptr) || IsAnOper(sptr))
            {
                sendto_one(sptr, rpl_str(RPL_WHOISHOST),
                    me.name, parv[0], acptr->name,
                    (MyConnect(acptr) && strcmp(acptr->username, "unknown")) ? acptr->username : "*",
                    user->realhost, user->ip_str ? user->ip_str : "");
            }

            if (IsARegNick(acptr))
                sendto_one(sptr, rpl_str(RPL_WHOISREGNICK), me.name, parv[0], name);
           
            found = 1;
            mlen = strlen(me.name) + strlen(parv[0]) + 10 + strlen(name);
            for (len = 0, *buf = '\0', lp = user->channel; lp; lp = lp->next)
            {
                chptr = lp->chptr;
                showchannel = 0;
                if (ShowChannel(sptr, chptr))
                    showchannel = 1;
                if (OPCanSeeSecret(sptr))
                    showchannel = 1;
                if ((acptr->umodes & UMODE_HIDEWHOIS) && !IsMember(sptr, chptr) && !IsAnOper(sptr))
                    showchannel = 0;
                if (IsServices(acptr) && !IsNetAdmin(sptr) && !IsSAdmin(sptr))
                    showchannel = 0;
                if (acptr == sptr)
                    showchannel = 1;
                /* Hey, if you are editting here... don't forget to change the webtv w_whois ;p. */

                if (showchannel)
                {
                    long access;
                    if (len + strlen(chptr->chname) > (size_t)BUFSIZE - 4 - mlen)
                    {
                        sendto_one(sptr,
                            ":%s %d %s %s :%s",
                            me.name,
                            RPL_WHOISCHANNELS,
                            parv[0], name, buf);
                        *buf = '\0';
                        len = 0;
                    }
#ifdef SHOW_SECRET
                    if (IsAnOper(sptr)
#else
                    if (IsNetAdmin(sptr)
#endif
                        && SecretChannel(chptr) && !IsMember(sptr, chptr))
                        *(buf + len++) = '?';
                    if (acptr->umodes & UMODE_HIDEWHOIS && !IsMember(sptr, chptr)
                        && IsAnOper(sptr))
                        *(buf + len++) = '!';
                    access = get_access(acptr, chptr);
#ifdef PREFIX_AQ
                    if (access & CHFL_CHANOWNER)
                        *(buf + len++) = '~';
                    else if (access & CHFL_CHANPROT)

                        *(buf + len++) = '&';
                    else
#endif
                    if (access & CHFL_CHANOP)
                        *(buf + len++) = '@';
                    else if (access & CHFL_HALFOP)
                        *(buf + len++) = '%';
                    else if (access & CHFL_VOICE)
                        *(buf + len++) = '+';
                    if (len)
                        *(buf + len) = '\0';
                    (void)strcpy(buf + len, chptr->chname);
                    len += strlen(chptr->chname);
                    (void)strcat(buf + len, " ");
                    len++;
                }
            }

            if (buf[0] != '\0')
                sendto_one(sptr, rpl_str(RPL_WHOISCHANNELS), me.name, parv[0], name, buf);

                        if (!(IsULine(acptr) && !IsOper(sptr) && HIDE_ULINES))
                sendto_one(sptr, rpl_str(RPL_WHOISSERVER),
                    me.name, parv[0], name, user->server,
                    a2cptr ? a2cptr->info : "*Not On This Net*");

            if (user->away)
                sendto_one(sptr, rpl_str(RPL_AWAY), me.name,
                    parv[0], name, user->away);
            /* makesure they aren't +H (we'll also check
              before we display a helpop or IRCD Coder msg)
              -- codemastr */

            if ((IsAnOper(acptr) || IsServices(acptr)) && !hideoper)
            {
                buf[0] = '\0';
                if (IsNetAdmin(acptr))
                    strlcat(buf, "a Ağ Yoneticisi", sizeof buf);
                else if (IsSAdmin(acptr))
                    strlcat(buf, "a Servis Yoneticisi", sizeof buf);
                else if (IsAdmin(acptr) && !IsCoAdmin(acptr))
                    strlcat(buf, "a Server Yoneticisi", sizeof buf);
                else if (IsCoAdmin(acptr))
                    strlcat(buf, "a Yardımcı Yonetici", sizeof buf);
                else if (IsServices(acptr))
                    strlcat(buf, "a Eggdrop Servisi", sizeof buf);
                else if (IsOper(acptr))
                    strlcat(buf, "an Server Operator", sizeof buf);

                else
                    strlcat(buf, "a Yardımcı Operator", sizeof buf);
                if (buf[0])
                    sendto_one(sptr,
                        rpl_str(RPL_WHOISOPERATOR), me.name,
                        parv[0], name, buf);
            }

            if (IsHelpOp(acptr) && !hideoper && !user->away)
                sendto_one(sptr, rpl_str(RPL_WHOISHELPOP), me.name, parv[0], name);

            if (acptr->umodes & UMODE_BOT)
                sendto_one(sptr, rpl_str(RPL_WHOISBOT), me.name, parv[0], name, ircnetwork);

            if (acptr->umodes & UMODE_SECURE)
                sendto_one(sptr, rpl_str(RPL_WHOISSECURE), me.name, parv[0], name,
                    "is using a Secure Connection");

            if (!BadPtr(user->swhois) && !hideoper)
                    sendto_one(sptr, ":%s %d %s %s :%s",
                        me.name, RPL_WHOISSPECIAL, parv[0],
                        name, acptr->user->swhois);

            /*
* Fix /whois to not show idle times of
* global opers to anyone except another
* global oper or services.
* -CodeM/Barubary
*/
if (IsAnOper(sptr)) {
if (MyConnect(acptr))
sendto_one(sptr, rpl_str(RPL_WHOISIDLE),
me.name, parv[0], name,
TStime() - acptr->last, acptr->firsttime);
}
}
if (!found)
sendto_one(sptr, err_str(ERR_NOSUCHNICK),
me.name, parv[0], nick);
if (p)
p[-1] = ',';
}
sendto_one(sptr, rpl_str(RPL_ENDOFWHOIS), me.name, parv[0], parv[1]);

return 0;
}


DeNQeSiZ 18 Aralık 2008 14:24

Cevap: m_whois.c [Türkce - Idlesi Saklıdır]
 
s.a
bunu nasıl ve nereye kuracagım ve ne gibi birr özel whois

EceLMeriC 18 Aralık 2008 19:48

Cevap: m_whois.c [Türkce - Idlesi Saklıdır]
 
ozel whois felan degil, sadece buradaki amac operatorlerin /whois kisimlarindaki idle surelerinin userlere gorunmemesi icin bir edit.

CroAtoN 20 Aralık 2008 13:12

Cevap: m_whois.c [Türkce - Idlesi Saklıdır]
 
Alıntı:

DeNQeSiZ Nickli Üyeden Alıntı (Mesaj 606170)
s.a
bunu nasıl ve nereye kuracagım ve ne gibi birr özel whois


FTP e Bağlan Unreal3.2/src/modules klasörünün icine at Rehash Cek Bu Kadar

telnet den rehash cekmek

cd Unreal3.2
./unreal rehash


Sunucu Üstünden Rehash Cekmek
/rehash

OkyAnuS 20 Aralık 2008 13:39

Cevap: m_whois.c [Türkce - Idlesi Saklıdır]
 
özel demedik zaten EceLMeriC heycan yapma:)

EceLMeriC 20 Aralık 2008 16:12

Cevap: m_whois.c [Türkce - Idlesi Saklıdır]
 
Alıntı:

DeNQeSiZ Nickli Üyeden Alıntı (Mesaj 606170)
s.a
bunu nasıl ve nereye kuracagım ve ne gibi birr özel whois

ne heycani ya? kullanici ozel diyor, Konuyu ve postlari iyice oku ezbere post atma ve ben heycan yapicam :) heycanlik biyerim kaldida. Genclere biraktik o heycani + modulun tamami verilmesi kafa karistirir. Bir satir ek,edit icin.

OkyAnuS 21 Aralık 2008 01:07

Cevap: m_whois.c [Türkce - Idlesi Saklıdır]
 
DeNQeSiZ;

cd Unreal3.2
cd src/modules
pico m_whois.c


m_whois.c'e Girdikten Sonra Icerisinde Olanlari Silip Aynen Yukarida Vermis Oldugum Kodu Yapistiriyorsun
Daha Sonra ;

cd Unreal3.2
make
make install
./unreal restart


Islemlerini Yapip Aktif Hale Getiriyorsun:) Anlamadigin Bir Yer v.b Olursa Tekrar Belirtebilirsin.Başarilar.

OkyAnuS 21 Aralık 2008 01:09

Cevap: m_whois.c [Türkce - Idlesi Saklıdır]
 
Ben Sana Güveniyorum EceLMeriC 1 Numarasin Ayrica Taş Gibisin , Gencsin, Yakışıklısın , IRC Hayatı Seni Yormus Ondan Kendini Yaşlı Hissediyorsundur:)

EceLMeriC 21 Aralık 2008 01:40

Cevap: m_whois.c [Türkce - Idlesi Saklıdır]
 
yordu beni yordu ;)

OkyAnuS 21 Aralık 2008 01:44

Cevap: m_whois.c [Türkce - Idlesi Saklıdır]
 
yorar ki hemde nasıl :)


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

Powered by vBulletin® Version 3.8.8 Beta 3
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2024 IRCForumlari.Net