- Katılım
- 25 Haz 2023
- Mesajlar
- 1,005
- Tepkime puanı
- 239
- Puanları
- 63
- Yaş
- 37
- Konum
- Fransa
- Cinsiyet
- Erkek
- Takım
- Türkiye
TCL (Tool Command Language), IRC botları ve uygulamaları için yaygın olarak kullanılan bir komut dilidir. Özellikle Eggdrop IRC botları gibi platformlarda, TCL kullanılarak botların özellikleri özelleştirilebilir. TCL, IRC botlarında komutları, kullanıcı etkileşimlerini ve kanal yönetimini yönetmek için sıklıkla kullanılır.
Aşağıda, Eggdrop IRC botu için yaygın olarak kullanılan bazı TCL script örnekleri bulunmaktadır:
TCL Script Örneği - !hello Komutu:
tcl
# Bot, kullanıcı "hello" komutunu yazdığında yanıt verecek.
bind pub - "!hello" hello_command
# Komut fonksiyonu
proc hello_command {nick uhost hand chan text} {
putserv "PRIVMSG $chan :Merhaba $nick! Yardım edebilir miyim?"
}
Bu script, bir kullanıcı !hello komutunu kanal içinde yazarsa botun kullanıcıya yanıt vermesini sağlar.
TCL Script Örneği - Hoş Geldin Mesajı:
tcl
# Kanalınıza katılan her kullanıcıya hoş geldin mesajı.
bind join - * welcome_user
proc welcome_user {nick uhost hand chan} {
putserv "PRIVMSG $chan :Hoş geldin $nick! Kanalımıza katıldığın için teşekkürler!"
}
Bu script, bir kullanıcı kanalınıza katıldığında ona hoş geldin mesajı gönderir.
TCL Script Örneği - !users Komutu:
tcl
# Kanalınızdaki aktif kullanıcı sayısını gösteren komut
bind pub - "!users" show_users
proc show_users {nick uhost hand chan text} {
set users [chanusers $chan]
set user_count [llength $users]
putserv "PRIVMSG $chan :Kanalda şu anda $user_count kullanıcı var."
}
Bu script, kullanıcılar !users komutunu yazarsa, kanalda kaç kişi olduğunu gösterir.
TCL Script Örneği - Yasaklı Kelimeler:
tcl
# Yasaklı kelimeler listesi
set banned_words [list "yasaklıkelime1" "yasaklıkelime2" "yasaklıkelime3"]
# Kullanıcı bir mesaj gönderdiğinde, yasaklı kelimeleri kontrol etme
bind pub - * check_banned_words
proc check_banned_words {nick uhost hand chan text} {
global banned_words
foreach word $banned_words {
if {[string match "*$word*" $text]} {
putserv "PRIVMSG $chan :$nick, o kelime yasaklıdır!"
putserv "KICK $chan $nick :Yasaklı kelime kullanmak!"
return
}
}
}
Bu script, kullanıcılar yasaklı kelimeleri kullanmaya çalıştığında onları uyarır ve otomatik olarak kanaldan atar.
TCL Script Örneği - Sohbet Logları:
tcl
# Sohbet logları dosyası
set logfile "/path/to/logfile.txt"
# Her mesajı kaydetme
bind pub - * log_message
proc log_message {nick uhost hand chan text} {
global logfile
set log_text "[timestamp] $nick: $text"
# Mesajı dosyaya yaz
append_to_file $logfile "$log_text"
}
# Mesajları dosyaya yazan yardımcı fonksiyon
proc append_to_file {filename text} {
set fh [open $filename a]
puts $fh $text
close $fh
}
Bu script, her kanal mesajını belirtilen log dosyasına kaydeder.
TCL Script Örneği - Rastgele Cevaplar:
tcl
# Fun komutları
set responses {
"Ben buradayım!" "Nasılsınız?" "Bugün harika bir gün!" "Yardımcı olabilir miyim?"
}
# Kullanıcı "!fun" komutunu yazarsa, rastgele bir cevap verir.
bind pub - "!fun" random_response
proc random_response {nick uhost hand chan text} {
global responses
# Rastgele cevap seçme
set random_reply [lindex $responses [expr {int(rand() * [llength $responses])}]]
putserv "PRIVMSG $chan :$random_reply"
}
Bu script, bir kullanıcı !fun komutunu yazarsa, bot rastgele bir eğlenceli cevap verir.
Aşağıda, Eggdrop IRC botu için yaygın olarak kullanılan bazı TCL script örnekleri bulunmaktadır:
1. Basit Komut Yanıt Scripti
Bu script, kullanıcıların bir kanal içinde belirli bir komut yazdığında botun yanıt vermesini sağlar.TCL Script Örneği - !hello Komutu:
tcl
# Bot, kullanıcı "hello" komutunu yazdığında yanıt verecek.
bind pub - "!hello" hello_command
# Komut fonksiyonu
proc hello_command {nick uhost hand chan text} {
putserv "PRIVMSG $chan :Merhaba $nick! Yardım edebilir miyim?"
}
Bu script, bir kullanıcı !hello komutunu kanal içinde yazarsa botun kullanıcıya yanıt vermesini sağlar.
2. Botun Kanala Hoş Geldin Mesajı Yazması
Bot, kanalına katılan kullanıcıya otomatik bir hoş geldin mesajı gönderir.TCL Script Örneği - Hoş Geldin Mesajı:
tcl
# Kanalınıza katılan her kullanıcıya hoş geldin mesajı.
bind join - * welcome_user
proc welcome_user {nick uhost hand chan} {
putserv "PRIVMSG $chan :Hoş geldin $nick! Kanalımıza katıldığın için teşekkürler!"
}
Bu script, bir kullanıcı kanalınıza katıldığında ona hoş geldin mesajı gönderir.
3. Kullanıcı Sayısını Gösterme
Bir komutla kanalınızdaki aktif kullanıcı sayısını gösteren basit bir script.TCL Script Örneği - !users Komutu:
tcl
# Kanalınızdaki aktif kullanıcı sayısını gösteren komut
bind pub - "!users" show_users
proc show_users {nick uhost hand chan text} {
set users [chanusers $chan]
set user_count [llength $users]
putserv "PRIVMSG $chan :Kanalda şu anda $user_count kullanıcı var."
}
Bu script, kullanıcılar !users komutunu yazarsa, kanalda kaç kişi olduğunu gösterir.
4. Yasaklı Kelimeler İçin Filtre
Kanalda belirli kelimelerin kullanılmasını engelleyen bir script.TCL Script Örneği - Yasaklı Kelimeler:
tcl
# Yasaklı kelimeler listesi
set banned_words [list "yasaklıkelime1" "yasaklıkelime2" "yasaklıkelime3"]
# Kullanıcı bir mesaj gönderdiğinde, yasaklı kelimeleri kontrol etme
bind pub - * check_banned_words
proc check_banned_words {nick uhost hand chan text} {
global banned_words
foreach word $banned_words {
if {[string match "*$word*" $text]} {
putserv "PRIVMSG $chan :$nick, o kelime yasaklıdır!"
putserv "KICK $chan $nick :Yasaklı kelime kullanmak!"
return
}
}
}
Bu script, kullanıcılar yasaklı kelimeleri kullanmaya çalıştığında onları uyarır ve otomatik olarak kanaldan atar.
5. Sohbet Logları Kaydetme
Bu script, kanal sohbetlerini kaydeden basit bir loglama mekanizması sağlar.TCL Script Örneği - Sohbet Logları:
tcl
# Sohbet logları dosyası
set logfile "/path/to/logfile.txt"
# Her mesajı kaydetme
bind pub - * log_message
proc log_message {nick uhost hand chan text} {
global logfile
set log_text "[timestamp] $nick: $text"
# Mesajı dosyaya yaz
append_to_file $logfile "$log_text"
}
# Mesajları dosyaya yazan yardımcı fonksiyon
proc append_to_file {filename text} {
set fh [open $filename a]
puts $fh $text
close $fh
}
Bu script, her kanal mesajını belirtilen log dosyasına kaydeder.
6. Rastgele Cevaplar (Fun Bot)
Bot, kullanıcılara rastgele eğlenceli cevaplar verir.TCL Script Örneği - Rastgele Cevaplar:
tcl
# Fun komutları
set responses {
"Ben buradayım!" "Nasılsınız?" "Bugün harika bir gün!" "Yardımcı olabilir miyim?"
}
# Kullanıcı "!fun" komutunu yazarsa, rastgele bir cevap verir.
bind pub - "!fun" random_response
proc random_response {nick uhost hand chan text} {
global responses
# Rastgele cevap seçme
set random_reply [lindex $responses [expr {int(rand() * [llength $responses])}]]
putserv "PRIVMSG $chan :$random_reply"
}
Bu script, bir kullanıcı !fun komutunu yazarsa, bot rastgele bir eğlenceli cevap verir.
TCL Script Özelleştirmeleri:
- Kanallara ve kullanıcı gruplarına özgü komutlar ekleyebilirsiniz.
- Kullanıcı yetkilendirmesi (mod, oper vs.) ekleyerek yalnızca belirli kullanıcıların belirli komutları kullanmasına izin verebilirsiniz.
- Kanal yönetim araçları ekleyerek moderasyon işlevlerini otomatikleştirebilirsiniz.