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/)
-   Services Hazır Kodlar (https://www.ircforumlari.net/services-hazir-kodlar/)
-   -   OP Kanalı Eklentisi For IRCServices-5.0.* (https://www.ircforumlari.net/services-hazir-kodlar/36738-op-kanali-eklentisi-ircservices-50-a.html)

ArresT 26 Ağustos 2007 01:56

OP Kanalı Eklentisi For IRCServices-5.0.*
 
Öncelikle; Yapacağımız editlemeler; tarafımdan yapılmış olup, Sky-Dancer, Diablo ve Bronx [AnarchYBrotherS tester] tarafından test edildi. [ kendilerine teşekkür ederim ]

Bu uygulamanın yararı, her kanal sahibi kendisine bir op kanalı seçebilecektir ve de kanala giren bir op otomatik olarak op kanalına girecektir. OP Kanaliniz aynı zamanda da kanalınızın infosunda görünecektir. Küçük kanallar ise OP Kanalı yönlendirmesini kardeş kanalı için kullanabilirler, böylece Kardeş kanallarına oplarını da otomatik olarak gönderebilirler.

Yapacağımız uygulama da ilk yapmanız gereken şey chan.db nizi yedeklemektir. Lütfen Bunu unutmayınız. Aksi Durumlarda chan.db niz hasar görebilir ve de kullanılmaz hale gelebilir.

Kodlama; ircservices-5.0.59 kodlama yapısında yapılmış ve diğer ircservices versiyonları içinde denenmiştir.

Öncelikle;

Kod:

cd ircservices-5.x.xx


Kod:

cd modules


Kod:

cd chanserv


komutları ile chanservimizin modüllerini açıyoruz.

Kod:

pico main.c


main.c klasöründe;

Kod:

{ "SET URL", NULL, NULL, CHAN_HELP_SET_URL, -1,-1 },


kodunu bulup hemen altına,

Kod:

{ "SET OPSCHAN", NULL, NULL, CHAN_HELP_SET_OPSCHAN, -1,-1 },


ekliyoruz. aynı dosyada;

Kod:

if (ci->url)
notice_lang(s_ChanServ, u, CHAN_INFO_URL, ci->url);



kodunu bulup hemen altına,

Kod:

if (ci->opschan)
notice_lang(s_ChanServ, u, CHAN_INFO_OPSCHAN, ci->opschan);



ekliyoruz ve de main.c dosyasını kayıt edip çıkıyoruz. ( CTRL + X , y , enter)

daha sonra, aynı klasörde ( /modules/chanserv ) bulunan,

Kod:

pico set.c


komutu ile set.c dosyasını açıyoruz.

Kod:

static void do_set_url(User *u, ChannelInfo *ci, char *param);


kodunu bulup hemen altına,

Kod:

static void do_set_opschan(User *u, ChannelInfo *ci, char *param);


ekliyoruz ve aynı dosyada;

Kod:

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



kodunu bulup hemen altına,

Kod:

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



ekliyoruz ve aynı dosyada;

Kod:

} else if (stricmp(cmd, "URL") == 0) {
do_set_url(u, ci, NULL);



kodunu bulup hemen altına,

Kod:

} else if (stricmp(cmd, "OPSCHAN") == 0) {
do_set_opschan(u, ci, NULL);



ekliyoruz ve aynı dosyada;

Kod:

/*************************************************************************/
static void do_set_url(User *u, ChannelInfo *ci, char *param)
{
if (param && !valid_url(param)) {
notice_lang(s_ChanServ, u, BAD_URL);
return;
}
free(ci->url);
if (param) {
ci->url = sstrdup(param);
notice_lang(s_ChanServ, u, CHAN_URL_CHANGED, ci->name, param);
} else {
ci->url = NULL;
notice_lang(s_ChanServ, u, CHAN_URL_UNSET, ci->name);
}
put_channelinfo(ci);
}
/*************************************************************************/



kodlarını bulup hemen altına,

Kod:

static void do_set_opschan(User *u, ChannelInfo *ci, char *param)
{
/** Coded by Diablo **/
        if (param) {
        if (param[0]!='#') {
        notice_lang(s_ChanServ, u, BAD_OPSCHAN);
        return;
/** Coded by Diablo **/
    }

    free(ci->opschan);
    if (param) {
        ci->opschan = sstrdup(param);
        notice_lang(s_ChanServ, u, CHAN_OPSCHAN_CHANGED, ci->name, param);
    }  else {
        ci->opschan = NULL;
        notice_lang(s_ChanServ, u, CHAN_OPSCHAN_UNSET, ci->name);
    }
    put_channelinfo(ci);
}
}
/*************************************************************************/



ekliyoruz. [ /***/ arası sadece düzenli olsun diye koydum düzenli olmak lazım değil mi ? :) ] ve de set.c dosyasını kayıt edip çıkıyoruz. ( CTRL + X , y , enter) (Ara Kodlamada eklentisi için diabloya teşekkürler )

Aynı klasörde ( /modules/chanserv ) bulunan chanserv.h dosyasını,

Kod:

pico chanserv.h


ile açıyoruz.

Kod:

char *url;


kodunu bulup hemen altına,

Kod:

char *opschan;


kodunu ekliyoruz ve de chanserv.h dosyasını kayıt edip çıkıyoruz. ( CTRL + X , y , enter)

aynı klasörde ( /modules/chanserv ) bulunan util.c dosyasını,

Kod:

pico util.c


komutu ile açıyoruz.

Kod:

free(ci->url);


kodunu bulup hemen altına,

Kod:

free(ci->opschan);


kodunu ekliyoruz ve de util.c dosyasını kayıt edip çıkıyoruz. ( CTRL + X , y , enter)

modülize kısmında işimiz bitti, ANCAK; database kayıtlarının yapılması ve de Language kısmını ayarlamak için daha işlemlerimiz devam ediyor.

ircservices-5.x.xx içinde languages adlı klasöre giriş yapıyoruz.

Kod:

cd ircservices-5.x.xx/lang/


yaparak klasöre giriş yapıyoruz ve kodlamamıza devam ediyoruz. Ancak buradaki kodlamalarınızda lütfen satır kaydırmamaya dikkat edelim. Satır kaydırıldığında Chanservinizin mesajlarında kayma ya da Chanservde çalışamama hatası alabilirsiniz. Bu yüzden burada FTP yolu ile kendi makinanıza download ettikten sonra editleme en iyi yapılacak şeydir. Bir Editör programı kullanmakta mantıklı bir iş tabi ki de ancak zorunlu değil.. ( Tavsiye; Editplus ) önemli olan SATIR KAYDIRMAMAK.. [ yani bir boşluk varsa o boşluk diğer parametre içinde olmalıdır. ]

ircservices-5.x.xx/lang klasöründe,

Kod:

pico tr.l


dosyasına giriş yapıp,

Kod:

BAD_URL
URL bilgileri http://hostname[:port]/... ya da ftp://hostname[:port]/... seklinde olmak zorundadir.



kodunu bulup hemen altına,

Kod:

BAD_OPSCHAN
Sadece isimleri # ile baslayan kanallari OP Kanali secebilirsiniz.



kodunu ekliyoruz ve aynı dosyada;

Kod:

CHAN_REGISTER_INVALID_NAME
Sadece isimleri # ile baslayan kanallari kaydedebilirsiniz.



kodunu bulup hemen altına,

Kod:

CHAN_OPSCHAN_INVALID_NAME
Sadece isimleri # ile baslayan kanallari OP Kanali secebilirsiniz.



kodunu ekliyoruz aynı dosyada;

Kod:

# SET URL responses
CHAN_URL_CHANGED
%s kanalinin web adresi (URL) %s olarak degisti.



kodunu bulup hemen altına,

Kod:

# SET OPSCHAN responses
CHAN_OPSCHAN_CHANGED
%s kanalinin OP Kanali %s olarak degisti.
# SET EMAIL responses



şeklinde ekliyoruz aynı dosyada;

Kod:

CHAN_URL_UNSET
%s kanalinin web adresi (URL) silindi.



kodunun hemen altına,

Kod:

CHAN_OPSCHAN_UNSET
%s kanalinin OP kanali silindi.



şeklinde ekliyoruz ve aynı dosyada;

Kod:

CHAN_INFO_URL
URL: %s



kodunu bulup hemen altına da,

Kod:

CHAN_INFO_OPSCHAN
OP Kanali: %s



şeklinde ekliyoruz ve aynı dosyada;

Kod:

DESC Kanal hakkindaki aciklamayi degistirir.


kodunu bulup hemen altına,

Kod:

OPSCHAN Kanalinizin op kanalini belirleyebilirsiniz.


şeklinde ekliyoruz ve aynı dosyada;

Kod:

CHAN_HELP_SET_DESC
Kullanimi: SET kanal DESC aciklama
Belirtilen kanal hakkindaki,LIST ve INFO komutlari ile
gorunecek olan aciklamayi belirler.Kullanabilmek icin
founder level access gerekir.



kodunu bulup hemen altına,

Kod:

CHAN_HELP_SET_OPSCHAN
Kullanimi: SET kanal OPSCHAN Kanal adi
Belirtilmis OP Kanalina oplariniz zorunlu giris yaparlar.
Boylece op kanalinizi kendiniz ayarlamis olursunuz. Kendinize
Kardes bir kanal secip ayni zamanda oplarinizi o kanala da
gonderebilirsiniz.



şeklinde ekliyoruz.. ve de util.c dosyasını kayıt edip çıkıyoruz. ( CTRL + X , y , enter) biliyorum belki de çok sıkıldınız ama son bir kaç şey kaldı onları da halledelim..

String ayarlarımızı yapmak için,

ircservices-5.x.xx/lang klasöründe,

Kod:

pico langstrs.h


dosyasına giriş yapıp en aşağıda,

Kod:

#define STAT_OPER_HELP_SERVERS 1209

#define NUM_STRINGS 1210



kodlarını buluyoruz ve de onları şu şekilde değiştiriyoruz,

Kod:

#define STAT_OPER_HELP_SERVERS 1209
#define BAD_OPSCHAN 1210
#define CHAN_OPSCHAN_INVALID_NAME 1211
#define CHAN_OPSCHAN_CHANGED 1212
#define CHAN_OPSCHAN_UNSET 1213
#define CHAN_INFO_OPSCHAN 1214
#define CHAN_HELP_SET_OPSCHAN 1215

#define NUM_STRINGS 1216



ve de langstrs.h dosyasını kayıt edip çıkıyoruz. ( CTRL + X , y , enter)

ircservices-5.x.xx/lang klasöründe,

Kod:

pico index


dosyasına giriş yapıp en aşağıya,

Kod:

STAT_OPER_HELP_SERVERS


sonra,

Kod:

BAD_OPSCHAN
CHAN_OPSCHAN_INVALID_NAME
CHAN_OPSCHAN_CHANGED
CHAN_OPSCHAN_UNSET
CHAN_INFO_OPSCHAN
CHAN_HELP_SET_OPSCHAN



ekleyin..

ve gelelim son bir iki işlemimize,

burada yaptığımız işlem databaselere yazdırılma ve okunma işlemi olacaktır.


ircservices-5.x.xx/modules/database/

klasörüne giriş yapıyoruz ve de version4.c dosyasına

Kod:

pico version4.c


ile giriş yapıyoruz

Kod:

SAFE(write_string(ci->url, f));


satırının hemen altına,

Kod:

SAFE(write_string(ci->opschan, f));


şeklinde ekliyoruz. aynı dosyada;

Kod:

if (ci->url)
mem += strlen(ci->url)+1;



satırının hemen altına,

Kod:

if (ci->opschan)
mem += strlen(ci->opschan)+1;



şeklinde ekleme yapıyoruz ve dosyayı yeniden kaydedip çıkıyoruz.

servislerimize make ve make install attıktan sonra servislerimizi restartlıyoruz. Serviceslerimiz yeniden geldikten sonra,

Servislerimizde bir kanal kayıt edip

Kod:

/cs set #kanal opschan #opkanalı


komutu ile yeni bir op kanalı belirliyoruz.

daha sonra yeniden komut sistemine giderek,

Kod:

pico version4.c


dosyasına giriş yapıp

Kod:

SAFE(read_string(&ci->url, f));


satırının hemen altına,

Kod:

SAFE(read_string(&ci->opschan, f));


şeklinde ekleme yapıyoruz.

Böylece modülizasyon işlemimiz sona ermiş oldu her kanalımızın bir op kanalı belirleme özelliği açılmış oldu ancak son olarak; oplarımızın kontrolü için,

ircservices-5.x.xx/modules/chanserv/ klasöründe

Kod:

pico check.c


dosyasına giriş yapıp

Kod:

    /* Check early for server auto-ops */


satırını bulup hemen üstüne,

Kod:

        if (check_access(user, ci, CA_AUTOOP) && !is_oper(user)) {
                send_cmd(s_NickServ, "SAJOIN %s %s", user->nick, ci->opschan);
        }

Kod:




kodlarını ekliyoruz. Dosyayı kayıt edip kapatıyoruz.

make ve make install işlemimizi yaptıktan sonra servislerimizi restartlayın

artık sistemimiz bitmiş oldu..

Kod:

/cs help set opschan


ile gerekli bilgiye ulaşabilirsiniz.

İşlemimizin Çaba ve Sabır isteyen bir iş olduğunu unutmayınız. ben elimden geldiği kadarı ile eklentimi açıklamaya çalıştım. Eğer bir adımınızın yanına diğer adımınızı koymada sorun çekiyorsanız, ilk adımınızı kontrol edin. Hatalarını görerek yeniden baştan alabilirsiniz [ baştan almaya gözünüz yemezse eğer biraz dinlenin devam edin :D:D ]

İyi Çalışmalar..

txf 26 Eylül 2007 19:17

Cevap: OP Kanalı Eklentisi For IRCServices-5.0.*
 
Peki Bunu Anope'ye Uyarlamamız Mümkün mü Üstâd ?

ysfm 26 Eylül 2007 20:15

Cevap: OP Kanalı Eklentisi For IRCServices-5.0.*
 
anopede oplar icin eklentı modulesi var ama kullanıcı icin yoq global kanal icin kullanabılırsın

tekyer 16 Kasım 2007 04:29

Cevap: OP Kanalı Eklentisi For IRCServices-5.0.*
 
hata aliyorum

op kanali ekliyorum
[03:21] -ChanServ- #radyo kanalinin OP kanali silindi. diye mesaj veriyor

/cs help set opschan diyorum hic cevap vermiyor :S

kanal infosunda

[03:27] -ChanServ- URL: [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
-
[03:27] -ChanServ- Kullanimi: set kanal OPSCHAN kanal adi
-
[03:27] -ChanServ- Belirtilmis OP Kanalina oplariniz zorunlu giris yaparlar.
-
[03:27] -ChanServ- Boylece op kanalinizi kendiniz ayarlamis olursunuz. Kendinize
-
[03:27] -ChanServ- Kardes bir kanal secip ayni zamanda oplarinizi o kanala da
-
[03:27] -ChanServ- gonderebilirsiniz.
-
[03:27] -ChanServ- E-mail adresi: [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

olarak görunuyor :S

ArresT 07 Aralık 2007 07:38

Cevap: OP Kanalı Eklentisi For IRCServices-5.0.*
 
Sanırım tr.l dosyasında bir hatanız var yeniden kontrol ederseniz iyi olur, eğer hala yapamadıysanız, ben yardımcı olabilirim size.. İyi günler..

riXos 07 Aralık 2007 12:02

Cevap: OP Kanalı Eklentisi For IRCServices-5.0.*
 
Arkadaşım bende en az 10 defa kurdum hata aldığım tek yer tr.l dosyası.Mümkünü varsa editlenmiş tr.l dosyasını buraya gönderebilirmisiniz.

SHYSTER 08 Aralık 2007 05:13

Cevap: OP Kanalı Eklentisi For IRCServices-5.0.*
 
Toplam 1 Eklenti bulunuyor.
bunu bir dene

NeSt 09 Aralık 2007 22:19

Cevap: OP Kanalı Eklentisi For IRCServices-5.0.*
 
Alıntı:

ApSiS Nickli Üyeden Alıntı (Mesaj 266381)
anopede oplar icin eklentı modulesi var ama kullanıcı icin yoq global kanal icin kullanabılırsın


Peki linki verebilirmisin arkadasım

Kral Elessar 12 Aralık 2007 05:01

Cevap: OP Kanalı Eklentisi For IRCServices-5.0.*
 
Alıntı:

WizArd Nickli Üyeden Alıntı (Mesaj 302219)
bunu bir dene

rar dosyası bozuk geldi açamadım nedense, yeniden yükleyebilir misin ;huh

riXos 12 Aralık 2007 09:54

Cevap: OP Kanalı Eklentisi For IRCServices-5.0.*
 
Evet bende yazacaktım ama vaktim olmadı rar dosyası bozuk malesef ;boggled


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

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