Kod: Kodu kopyalamak için üzerine çift tıklayın!
# Yasaklanacak komutlar
set yasak_komutlar {.kickradyo .djal .voiceal}
# Manuel izinli kullanıcılar
set allowed_users {AdminNick Deneme}
# Log dosyası ve boyut limiti (1 MB = 1048576 bayt)
set komut_log_dosya "komut_koruma.log"
set komut_log_limit 1048576
# ============================================
# -- Yetki kontrolü --
proc is_authorized_user {nick hand chan} {
global allowed_users
if {[matchattr $hand o|o $chan]} { return 1 } ;# kanal op
if {[matchattr $hand m|m]} { return 1 } ;# global master
if {[matchattr $hand h|h $chan]} { return 1 } ;# halfop
if {[lsearch -nocase $allowed_users $nick] != -1} { return 1 }
return 0
}
# ============================================
# -- Log dosyası boyutu kontrolü --
proc kontrol_log_boyutu {} {
global komut_log_dosya komut_log_limit
if {[file exists $komut_log_dosya]} {
set boyut [file size $komut_log_dosya]
if {$boyut > $komut_log_limit} {
set eski "${komut_log_dosya}_old.log"
catch {file delete -force $eski}
catch {file rename -force $komut_log_dosya $eski}
putlog "komut_koruma_dj.tcl >> Log dosyası limiti aştı ($boyut bayt) — eski log yedeklendi: $eski"
}
}
}
# ============================================
# -- Yasaklı komut loglama prosedürü --
proc logla_yasakli_komut {chan nick uhost text} {
global komut_log_dosya
# Boyut kontrolü yap
kontrol_log_boyutu
set zaman [strftime "%d.%m.%Y %H:%M:%S"]
set satir "$zaman [string toupper $chan] >> $nick ($uhost) yasaklı komutu denedi: $text"
# Bot loguna da yaz
putlog $satir
# Dosyaya yaz
if {[catch {set f [open $komut_log_dosya "a+"]} err]} {
putlog "HATA: Log dosyasına yazılamadı ($komut_log_dosya): $err"
return
}
puts $f $satir
close $f
}
# ============================================
# -- Mesaj dinleyici --
bind pubm - "*" kontrol_pub_mesaj
proc kontrol_pub_mesaj {nick uhost hand chan text} {
global yasak_komutlar
# Sadece #dj kanalında çalışsın
if {$chan ne "#dj"} { return 0 }
# Başta boşluk varsa temizle
set text [string trimleft $text]
foreach cmd $yasak_komutlar {
# Büyük/küçük harf duyarsız kontrol
if {[string match -nocase "${cmd}*" $text]} {
if {![is_authorized_user $nick $hand $chan]} {
putquick "NOTICE $nick :$cmd komutunu kullanma yetkiniz yok!"
putquick "PRIVMSG $chan :$nick bu komutu kullanamaz!"
logla_yasakli_komut $chan $nick $uhost $text
# Yetkisiz kullanıcıyı atmak istersen aşağıdaki satırı aktif et:
# putquick "KICK $chan $nick :Yetkisiz komut kullanımı ($cmd)"
break
}
}
}
return 0
}
putlog "komut_koruma_dj.tcl yüklendi - #dj kanalında aktif (log: komut_koruma.log, limit: 1MB)"
Bir de bunu dener misin TCL ekledin mi conf'a.
Log dosyasına sınır koyma fikri için @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] a teşekkürler
Kod: Kodu kopyalamak için üzerine çift tıklayın!
# Log dosyası ve boyut limiti (1 MB = 1048576 bayt)
set komut_log_dosya "komut_koruma.log"
set komut_log_limit 1048576