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/)
-   Unreal IRCd (https://www.ircforumlari.net/unreal-ircd/)
-   -   Services adminler için etiket yardımı (https://www.ircforumlari.net/unreal-ircd/201441-services-adminler-icin-etiket-yardimi.html)

sohbetsevgi 23 Nisan 2009 11:40

Services adminler için etiket yardımı
 
KGT is Network Genel Sorumlusudur.
KGT is Nickine Oper,Op,Voice,Access Icin Mesaj Atmak Yasaktir.
KGT is Bu Yasaga Uymayanlari Aciklama Yapmadan Atabilir.(AKILL)


whoisimde netadminler için aktif etiketi services adminlerede farklı bir sekilde etiket ayarlamak istiyorum bu mümkünmü nasıl yapabilirim fikir verirmisiniz tesekkürler.




KGT Kimlik Bilgisi: Security@A.d.m.i.n.i.s.t.r.a.t.o.r * Administrator
KGT is using modes +iowghraAsxNWqtp +kcfFvGqso
KGT is connecting from [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] 88.234.100.114
KGT Bu Rumuz Tanitilmistir
KGT Bulunduğu Kanallar: #maviboncuk #Global @#Network @#Help @#OperHeLp +#Sohbet @#Sevgi @#Oyun @#Bulmaca %#Radyo
KGT Bağlı Olduğu Server: irc.xxx.com - xxx.com IRC Server
KGT is Network Genel Sorumlusudur.
KGT is Nickine Oper,Op,Voice,Access Icin Mesaj Atmak Yasaktir.
KGT is Bu Yasaga Uymayanlari Aciklama Yapmadan Atabilir.(AKILL)
KGT is a Network Administrator
KGT is available for help.
KGT Root xxx.com
KGT Idle süresi: 5mins 44secs, Bağlandığı zaman: Thu Apr 23 07:53:27
KGT End of /WHOIS list.
-

toXic 23 Nisan 2009 11:51

Cevap: Services adminler için etiket yardımı
 
Kod:


cd Unreal*
pico -w src/modules/m_whois.c

Kod:

        if ((IsAnOper(acptr) || IsServices(acptr)) && !hideoper)
        {

Satırını Bulup, Hemen Altına;

Kod:

                                buf[0] = '\0';
                                if (IsSAdmin(acptr))
                                sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
                                me.name, parv[0], name, "xxx.com Sunudu Services Adminidir.");
                                if (IsSAdmin(acptr))
                                sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
                                me.name, parv[0], name, "mesajın");
                                if (IsSAdmin(acptr))
                                sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
                                me.name, parv[0], name, "mesajın");
                                if (IsSAdmin(acptr))
                                sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
                                me.name, parv[0], name, "mesajın");
                                buf[0] = '\0';
                                if (IsSAdmin(acptr))

Seklinde ekle. mesaj Kısmına, Yazmak istediğin Şeyleri ekleyeceksin.

sohbetsevgi 23 Nisan 2009 12:26

Cevap: Services adminler için etiket yardımı
 
hocam bendeki kod bu buna uygun eklermisiniz verdiginiz kodu? netadminler için aktif services adminler icin de aktif edecez o sekilde ayarlarsanız sevinirim.

Alıntı:

if ((IsAnOper(acptr) || IsServices(acptr)) && !hideoper)
{
buf[0] = '\0';
if (IsNetAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "Network Genel Sorumlusudur.");
if (IsNetAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "Nickine Oper,Op,Voice,Access Icin Mesaj Atmak Yasaktir.");
if (IsNetAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "Bu Yasaga Uymayanlari Aciklama Yapmadan Atabilir.(AKILL)\2");

buf[0] = '\0';
if (IsNetAdmin(acptr))
strlcat(buf, "a Network Administrator (IRCop)", sizeof buf);
else if (IsSAdmin(acptr))
strlcat(buf, "a Services Administrator (IRCop)", sizeof buf);
else if (IsAdmin(acptr) && !IsCoAdmin(acptr))
strlcat(buf, "a Server Administrator (IRCop)", sizeof buf);
else if (IsCoAdmin(acptr))
strlcat(buf, "a Co Administrator (IRCop)", sizeof buf);
else if (IsServices(acptr))
strlcat(buf, "a Network Service", sizeof buf);
else if (IsOper(acptr))
strlcat(buf, "an IRC Operator (IRCop)", sizeof buf);
else
strlcat(buf, "a Local IRC Operator", sizeof buf);
if (buf[0])
sendto_one(sptr,
rpl_str(RPL_WHOISOPERATOR), me.name,
parv[0], name, buf);
}

toXic 23 Nisan 2009 13:34

Cevap: Services adminler için etiket yardımı
 
Network admin icin eklediğinin altına ekle;

Kod:

if ((IsAnOper(acptr) || IsServices(acptr)) && !hideoper)
{
buf[0] = '\0';
if (IsSAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "Network Genel Sorumlusudur.");
if (IsSAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "Nickine Oper,Op,Voice,Access Icin Mesaj Atmak Yasaktir.");
if (IsSAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "Bu Yasaga Uymayanlari Aciklama Yapmadan Atabilir.(AKILL)\2");
}


sohbetsevgi 23 Nisan 2009 14:06

Cevap: Services adminler için etiket yardımı
 
kodu anladım hocam kodun oturma şekilini verdigim ornege ekleyerek verirmisiniz ?

BÖYLEMİ EKLENİCEK NASIL TAM OLARAK?

Alıntı:

buf[0] = '\0';
if (IsNetAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "6 Network Genel Sorumlusudur.");
if (IsNetAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "6 Nickine Oper,Op,Voice,Access Icin Mesaj Atmak Yasaktir.");
if (IsNetAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "6 Bu Yasaga Uymayanlari Aciklama Yapmadan Atabilir.(AKILL)\2");

if (IsAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "6Yonetim Gorevlisidir.");
if (IsAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "6Nickine Oper,Op,Voice,Access Icin Mesaj Atmak Yasaktir.");
if (IsAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "6Bu Yasaga Uymayanlari Aciklama Yapmadan Atabilir.(AKILL)\2");
}
buf[0] = '\0';

toXic 23 Nisan 2009 14:25

Cevap: Services adminler için etiket yardımı
 
Kod:


buf[0] = '\0';
if ((IsAnOper(acptr) || IsServices(acptr)) && !hideoper)
{
buf[0] = '\0';
if (IsSAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "Network Genel Sorumlusudur.");
if (IsSAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "Nickine Oper,Op,Voice,Access Icin Mesaj Atmak Yasaktir.");
if (IsSAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "Bu Yasaga Uymayanlari Aciklama Yapmadan Atabilir.(AKILL)\2");
}
buf[0] = '\0';
if (IsNetAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "6 Network Genel Sorumlusudur.");
if (IsNetAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "6 Nickine Oper,Op,Voice,Access Icin Mesaj Atmak Yasaktir.");
if (IsNetAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "6 Bu Yasaga Uymayanlari Aciklama Yapmadan Atabilir.(AKILL)\2");

if (IsAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "6Yonetim Gorevlisidir.");
if (IsAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "6Nickine Oper,Op,Voice,Access Icin Mesaj Atmak Yasaktir.");
if (IsAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "6Bu Yasaga Uymayanlari Aciklama Yapmadan Atabilir.(AKILL)\2");
}
buf[0] = '\0';


sohbetsevgi 23 Nisan 2009 15:08

Cevap: Services adminler için etiket yardımı
 
Şunun içine ekleyip verirmisin verdigin kodu kledim hata verdi. Olmadı


Alıntı:

if ((IsAnOper(acptr) || IsServices(acptr)) && !hideoper)
{
buf[0] = '\0';
if (IsNetAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "6 Network Genel Sorumlusudur.");
if (IsNetAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "6 Nickine Oper,Op,Voice,Access Icin Mesaj Atmak Yasaktir.");
if (IsNetAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "6 Bu Yasaga Uymayanlari Aciklama Yapmadan Atabilir.(AKILL)\2");

buf[0] = '\0';
if (IsNetAdmin(acptr))
strlcat(buf, "a Network Administrator (IRCop)", sizeof buf);
else if (IsSAdmin(acptr))
strlcat(buf, "a Services Administrator (IRCop)", sizeof buf);
else if (IsAdmin(acptr) && !IsCoAdmin(acptr))
strlcat(buf, "a Server Administrator (IRCop)", sizeof buf);
else if (IsCoAdmin(acptr))
strlcat(buf, "a Co Administrator (IRCop)", sizeof buf);
else if (IsServices(acptr))
strlcat(buf, "a Network Service", sizeof buf);
else if (IsOper(acptr))
strlcat(buf, "an IRC Operator (IRCop)", sizeof buf);
else
strlcat(buf, "a Local IRC Operator", sizeof buf);
if (buf[0])
sendto_one(sptr,
rpl_str(RPL_WHOISOPERATOR), me.name,
parv[0], name, buf);
}

toXic 23 Nisan 2009 15:26

Cevap: Services adminler için etiket yardımı
 
Su Sekilde Olcak Kodlar;
Kod:


 
 
if ((IsAnOper(acptr) || IsServices(acptr)) && !hideoper)
{
buf[0] = '\0';
if (IsNetAdmin(acptr))
                                buf[0] = '\0';
                                if (IsSAdmin(acptr))
                                sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
                                me.name, parv[0], name, "xxx.com Sunudu Services Adminidir.");
                                if (IsSAdmin(acptr))
                                sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
                                me.name, parv[0], name, "mesajın");
                                if (IsSAdmin(acptr))
                                sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
                                me.name, parv[0], name, "mesajın");
                                if (IsSAdmin(acptr))
                                sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
                                me.name, parv[0], name, "mesajın");
                                buf[0] = '\0';
                                }
buf[0] = '\0';
if (IsNetAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "Network Genel Sorumlusudur.");
if (IsNetAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "Nickine Oper,Op,Voice,Access Icin Mesaj Atmak Yasaktir.");
if (IsNetAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "Bu Yasaga Uymayanlari Aciklama Yapmadan Atabilir.(AKILL)\2");

Make'de Hata vermedi.

sohbetsevgi 23 Nisan 2009 20:35

Cevap: Services adminler için etiket yardımı
 
Verdigin sekilde ekledim


Alıntı:

m_whois.c:372: error: syntax error before '.' token
make[2]: *** [m_whois.o] Error 1
make[2]: Leaving directory `/home/ssevgi/Unreal3.2/src/modules'
make[1]: *** [mods] Error 2
make[1]: Leaving directory `/home/ssevgi/Unreal3.2/src'
make: *** [build] Error 2
[ssevgi@server Unreal3.2]$ ./unreal rehash
Rehashing UnrealIRCd
[sssevgi@server Unreal3.2]$

toXic 23 Nisan 2009 20:52

Cevap: Services adminler için etiket yardımı
 
Dosyayı vereyim Sana, FTP'Den değiştir make ve rehash cek.

Kod:

/*
 *  Unreal Internet Relay Chat Daemon, src/modules/m_whois.c
 *  (C) 2000-2001 Carsten V. Munk and the UnrealIRCd Team
 *  Moved to modules by Fish (Justin Hammond)
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 1, or (at your option)
 *  any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
#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.6.9 2006/06/16 18:29:17 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 ((IsAnOper(acptr) || IsServices(acptr)) && !hideoper)
{
buf[0] = '\0';
if (IsNetAdmin(acptr))
                                buf[0] = '\0';
                                if (IsSAdmin(acptr))
                                sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
                                me.name, parv[0], name, "xxx.com Sunudu Services Adminidir.");
                                if (IsSAdmin(acptr))
                                sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
                                me.name, parv[0], name, "mesajın");
                                if (IsSAdmin(acptr))
                                sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
                                me.name, parv[0], name, "mesajın");
                                if (IsSAdmin(acptr))
                                sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
                                me.name, parv[0], name, "mesajın");
                                buf[0] = '\0';
                                }
buf[0] = '\0';
if (IsNetAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "Network Genel Sorumlusudur.");
if (IsNetAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "Nickine Oper,Op,Voice,Access Icin Mesaj Atmak Yasaktir.");
if (IsNetAdmin(acptr))
sendto_one(sptr, rpl_str (RPL_WHOISOPERATOR),
me.name, parv[0], name, "Bu Yasaga Uymayanlari Aciklama Yapmadan Atabilir.(AKILL)\2"); 
sendto_one(sptr, ":? NOTICE %s :Whois Cekemezsiniz.",sptr->name);
return 0;
}
  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,
        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;
#ifndef SHOW_SECRET
    if (IsAnOper(sptr) && !SecretChannel(chptr))
#else
    if (IsAnOper(sptr))
#endif
    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 Technical Administrator", sizeof buf);
    else if (IsSAdmin(acptr))
    strlcat(buf, "a Services Administrator", sizeof buf);
    else if (IsAdmin(acptr) && !IsCoAdmin(acptr))
    strlcat(buf, "a Server Administrator", sizeof buf);
    else if (IsCoAdmin(acptr))
    strlcat(buf, "a Co Administrator", sizeof buf);
    else if (IsServices(acptr))
    strlcat(buf, "a Network Service", sizeof buf);
    else if (IsOper(acptr))
    strlcat(buf, "an IRC Operator", sizeof buf);
    else
    strlcat(buf, "a Local IRC 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 (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);
 }
 sendto_one(sptr, rpl_str(RPL_ENDOFWHOIS), me.name, parv[0], querybuf);
 return 0;
}



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

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk