IRCALEM.Com Genel Forum, IRC Forumu IF - Genel IRCd (Sunucu, Servis, Botlar, Korumalar) UnrealIRCd Unreal3.2.x - Hazır Kodlar /Mode nick +D (whois'e özeli kapalı ilavesi)
irc

/Mode nick +D (whois'e özeli kapalı ilavesi)
Aytac
/Mode nick +D (whois'e özeli kapalı ilavesi)
0
554
  • 0 Oy - 0 Ortalama
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Etiketler
mode kapalı d whois özeli e nick ilavesi

Bu konuyu görüntüleyen kullanıcı(lar):1 Ziyaretçi
Şuan Offine!
Şuan Offine!
Aytac Administrator
********
Proje Sorumlusu

  • Üyelik tarihi    04.02.2020
  • Konum  78 Karabük
  • Konular351
  • Mesajlar364
  • Verilen beğeni8 in 5 posts
  • Alınan beğeni6
  • Rep puanı 6

Merhaba, Syzop tarafından yazılan özel kapatma mödülünü hemen hemen bütün sunucular kullanmakta. Bu mödülü unreal'eentegre edip mödül olmaktan çıkartıp whoislerde kullanıcının özelini açık ya da kapalı olduğunu gösterdim. Buna ek olarak; bir kullanıcı özelini kapattiğında ve birisi ona yazmaya çalıştığında x rumuzlu kullanici size yazmaya çalıştı diye uyarı ekledim.

Gelelim düzenlemeye...

include/h.h dosyasını açıp

Kod :
extern MODVAR long UMODE_BOT;       /* 0x400000     User is a bot */
altına

Kod :
extern MODVAR long UMODE_PDEAF;
ekleyin.

src/umodes.c dosyasını açıp

Kod :
long UMODE_BOT = 0L;           /* User is a bot */
altına

Kod :
long UMODE_PDEAF = 0L;
ekleyin ve gene aynı dosya içerisinde

Kod :
UmodeAdd(NULL, 'B', UMODE_GLOBAL, NULL, &UMODE_BOT);
altına

Kod :
UmodeAdd(NULL, 'D', UMODE_GLOBAL, NULL, &UMODE_PDEAF);
ekleyin.
src/modules/m_message.c dosyasını açıp

Kod :
/* Umode +R (idea from Bahamut) */
    if (IsRegNickMsg(acptr) && !IsLoggedIn(sptr) &&  !IsULine(sptr) && !IsOper(sptr) && !IsServer(sptr)) {
        sendto_one(sptr, err_str(ERR_NONONREG), me.name, sptr->name,
            acptr->name);
        return 0;
    }
satırları altına

Kod :
if ((acptr->umodes & UMODE_PDEAF) &&  !IsAnOper(sptr) && !IsULine(sptr) && !IsServer(sptr)  && (sptr != acptr))
     {
         sendto_one(sptr, ":%s: NOTICE %s :Mesajiniz '%s' rumuzuna gonderilemedi: Ozeli mesajlara kapali. (+D)",
     me.name, sptr->name, acptr->name);
     sendto_one(acptr, ":%s NOTICE %s :'%s' rumuzlu kullanici size yazmaya calisti. Ozeliniz kapali(+D)",
     me.name, acptr->name, sptr->name);
     return 0;
     }
ekleyin.

src/modules/webtv.c dosyası içerisinde ki
Kod :
if (acptr->umodes & UMODE_BOT)
            {
                sendto_one(sptr, ":IRC PRIVMSG %s :%s is a Bot on %s",
                    sptr->name, name, ircnetwork);
            }
satırlarının altına

Kod :
if (acptr->umodes & UMODE_PDEAF)
                        {
                                sendto_one(sptr, ":IRC PRIVMSG %s :%s Ozelini Kapatmis(+D)",
                                        sptr->name, name);
                        }
ekleyin.

src/modules/m_whois.c dosyası içerisinde

Kod :
if (acptr->umodes & UMODE_BOT)
                sendto_one(sptr, rpl_str(RPL_WHOISBOT), me.name, parv[0], name, ircnetwork);
satırları altına

Kod :
if (acptr->umodes & UMODE_PDEAF)
                sendto_one(sptr, ":%s %d %s %s :%s", me.name,
                    RPL_WHOISSPECIAL, parv[0], name, "Ozelini  Kapatmis(+D)");
Ekleyin ve daha sonra make ve ./unreal restart komutlarını uygulayın.

NOT: Bu işlemi yapmadan önce privdeaf mödülünü mutlaka conf dosyasından silin ve deaktif edin yoksa hata verecektir.

Yukarıdaki kodlar BehroozWolf'a aittir.

* Ek olarak, herhangi bir kullanıcı özelini kapattığında özeli kapalı olan kişiye mesaj yazmaya çalışanların mesajını bloke edip, özeli kapalı olan kişi tarafından mesaj göndermek için,

BU BÖLÜMÜ,
Kod :
if ((acptr->umodes & UMODE_PDEAF) && !IsAnOper(sptr)  && !IsULine(sptr) && !IsServer(sptr) && (sptr !=  acptr))
{
  sendto_one(sptr, ":%s: NOTICE %s :Mesajiniz '%s' rumuzuna gonderilemedi: Ozeli mesajlara kapali. (+D)",
       me.name, sptr->name, acptr->name);
       sendto_one(acptr, ":%s NOTICE %s :'%s' rumuzlu kullanici size yazmaya calisti. Ozeliniz kapali(+D)",
       me.name, acptr->name, sptr->name);
  return 0;
}
BU ŞEKİLDE DEĞİŞTİRİN,
Kod :
if ((acptr->umodes & UMODE_PDEAF) &&  !IsAnOper(sptr) && !IsULine(sptr) && !IsServer(sptr)  && (sptr != acptr))
     {
         sendto_one(sptr, ":%s PRIVMSG - :Özel mesaj isteklerini kabul etmiyorum.", acptr->name);
     return 0;
     }

Örnek çıktı,


Alıntı:
Kod :
[*:*] <Lazrail> s

Alıntı:
Kod :
[*:*] <Aytac> Özel mesaj isteklerini kabul etmiyorum.
“İnsanların en hayırlısı, insanlara faydalı olandır”. H.Ş.



Foruma Git: