Tekil Mesaj gösterimi
Alt 22 Aralık 2022, 05:45   #1
Çevrimdışı
RahmetLi
Üyelik tarihi: 07 Aralık 2022
Konular: 21245
Mesajlar: 24.248
Nerden: İstanbul
Cinsiyet: Erkek
Web Site: TRmIRC.Net
IRC Sunucu: IRC.TRmIRC.Net
Alınan Beğeni: 3770
Beğendikleri: 6794
@RahmetLi
Ruh Hali : : Olu Gibi
Standart IRCServices Private Nick/Kanal

IRCServices için NICK ve KANAL için PRIVATE seçeneği, buna göre /cs set #kanaladi private on komutu ile özel kılınan kanallara info çekildiğinde #kanal özel bir kanaldır mesajı, özel kılınan nicklere info çekildiğinde nick özel bir nicktir. mesajı alınabilecek.


Kod:
cd ircservices*

Kod:
pico modules/nickserv/main.c

Kod:
} else {
char buf[BUFSIZE], *end;
const char *commastr = getstring(u->ngi, COMMA_SPACE);
int need_comma = 0;
int nick_online = 0;
int can_show_all = 0, show_all = 0, used_all = 0;

satırlarının hemen altına;

Kod:
int is_servadmin = is_services_admin(u);

satırını ekleyin, yine aynı dosyada

Kod: Kodu kopyalamak için üzerine çift tıklayın!
ngi = get_ngi(ni);

satırının altına;

Kod:
if ( (ngi->flags & NF_PRIVATE) )
{
if (!is_servadmin &&
(!nick_identified(ni) || (u->ngi != ngi)))
{
notice_lang(s_NickServ, u, NICK_INFO_PRIVATE, nick);
return;
}
}

satırlarını ekleyin, kaydedip dosyadan çıkın.

Kod:
pico modules/chanserv/main.c

komutları ile main.c klasörümüze girdikten sonra;

Kod: Kodu kopyalamak için üzerine çift tıklayın!
if ((param && stricmp(param, "ALL") == 0) && can_show_all)
show_all = 1; "

satırının hemen altına;

Kod:
if (ci->flags & CI_PRIVATE)
{
notice_lang(s_ChanServ, u, CHAN_INFO_PRIVATE, chan);
if(!is_services_admin(u) && !is_founder(u,ci) && !check_access(u, ci, CA_AUTOOP))
return;
}

satırlarını ekliyoruz, kaydedip dosyadan çıkın.

Kod:
pico modules/chanserv/set.c

Kod: Kodu kopyalamak için üzerine çift tıklayın!
static void do_set_mlock(User *u, ChannelInfo *ci, char *param);

satırının altına ise;

Kod:
static void do_set_private(User *u, ChannelInfo *ci, char *param);

satırını ekliyoruz, yine aynı dosyada

Kod:
} else if (stricmp(cmd, "MLOCK") == 0) {
do_set_mlock(u, ci, param); "

satırının altına;

} else if (stricmp(cmd, "PRIVATE") == 0) {
do_set_private(u, ci, param);

satırını ekliyoruz, yine aynı dosyada;

Kod: Kodu kopyalamak için üzerine çift tıklayın!
ci->mlock_joindelay = oldlock_joindelay;
ci->mlock_joinrate1 = oldlock_joinrate1;
ci->mlock_joinrate2 = oldlock_joinrate2;
}

sıra dizini olan satırın hemen altına;


static void do_set_private(User *u, ChannelInfo *ci, char *param)
{
if (stricmp(param, "ON") == 0) {
ci->flags |= CI_PRIVATE;
notice_lang(s_ChanServ, u, CHAN_SET_PRIVATE_ON);
} else if (stricmp(param, "OFF") == 0) {
ci->flags &= ~CI_PRIVATE;
notice_lang(s_ChanServ, u, CHAN_SET_PRIVATE_OFF);
} else {
syntax_error(s_ChanServ, u, "SET PRIVATE", CHAN_SET_PRIVATE_SYNTAX);
}
}

satırlarını ekliyoruz, kaydedip çıkıyoruz.


pico lang/index


NICK_INFO_OPTIONS

satırının altına;


NICK_INFO_PRIVATE

satırını ekliyoruz, yine aynı dosyada


CHAN_INFO_OPTIONS

satırının altına;


CHAN_INFO_PRIVATE

satırını ekliyoruz kaydedip çıkıyoruz.


pico lang/tr.l


NICK_INFO_OPTIONS
Ekler: ^B%s^B

satırının altına;

NICK_INFO_PRIVATE
^B%s^B özel bir nicktir.

satırını

CHAN_INFO_OPTIONS
Ekler: ^B%s^B

satırının altına ise;

CHAN_INFO_PRIVATE
^B%s^B özel bir kanaldir.

satırını ekliyoruz, kaydedip çıkıyoruz.


make


make install

Ardından servislerimize restart atıyoruz, hepsi bu kadar.

Kodu yazarı : Soldy





Kalbim Atar Cansız, Geçmez Gün Ahsız, Vahsız..
  Alıntı ile Cevapla