• Türkiye'nin En Güncel IRC Forumuna Hoş Geldin
    İçerikleri görebilmek ve topluluğumuza katılmak için lütfen oturum açın.

3.2.x Kod /Mode Nick +D (Whois'e Özeli Kapalı Ilavesi)

  • Konbuyu başlatan IFGT
  • Başlangıç tarihi
  • Cevaplar : 0
  • Görüntüleme : 8

IFGT

IFGT System
Katılım
2 Mar 2023
Mesajlar
242
IFGT Puan
18
Son 450x120.png
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:
[*:*] <IFGT> Özel mesaj isteklerini kabul etmiyorum.
 
Geri
Üst Alt