KraL
IFGT Süper Moderatör
- Katılım
- 27 Kas 2025
- Mesajlar
- 1,421
- Tepkime puanı
- 19
- IFGT Puan
- 38
Ö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;
komutları ile chanservimizin modüllerini açıyoruz.
main.c klasöründe;
kodunu bulup hemen altına,
ekliyoruz. aynı dosyada;
kodunu bulup hemen altına,
ekliyoruz ve de main.c dosyasını kayıt edip çıkıyoruz. ( CTRL + X , y , enter)
daha sonra, aynı klasörde ( /modules/chanserv ) bulunan,
komutu ile set.c dosyasını açıyoruz.
kodunu bulup hemen altına,
ekliyoruz ve aynı dosyada;
kodunu bulup hemen altına,
ekliyoruz ve aynı dosyada;
kodunu bulup hemen altına,
ekliyoruz ve aynı dosyada;
kodlarını bulup hemen altına,
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ı,
ile açıyoruz.
kodunu bulup hemen altına,
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ı,
komutu ile açıyoruz.
kodunu bulup hemen altına,
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.
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,
dosyasına giriş yapıp,
kodunu bulup hemen altına,
kodunu ekliyoruz ve aynı dosyada;
kodunu bulup hemen altına,
kodunu ekliyoruz aynı dosyada;
kodunu bulup hemen altına,
şeklinde ekliyoruz aynı dosyada;
kodunun hemen altına,
şeklinde ekliyoruz ve aynı dosyada;
kodunu bulup hemen altına da,
şeklinde ekliyoruz ve aynı dosyada;
kodunu bulup hemen altına,
şeklinde ekliyoruz ve aynı dosyada;
kodunu bulup hemen altına,
ş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,
dosyasına giriş yapıp en aşağıda,
kodlarını buluyoruz ve de onları şu şekilde değiştiriyoruz,
ve de langstrs.h dosyasını kayıt edip çıkıyoruz. ( CTRL + X , y , enter)
ircservices-5.x.xx/lang klasöründe,
dosyasına giriş yapıp en aşağıya,
sonra,
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
ile giriş yapıyoruz
satırının hemen altına,
şeklinde ekliyoruz. aynı dosyada;
satırının hemen altına,
ş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
komutu ile yeni bir op kanalı belirliyoruz.
daha sonra yeniden komut sistemine giderek,
dosyasına giriş yapıp
satırının hemen altına,
ş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
dosyasına giriş yapıp
satırını bulup hemen üstüne,
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..
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
]
İyi Çalışmalar..
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 ?
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);
}
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
İyi Çalışmalar..