yapımcısı bir şey demedikten sonra bize laf düşmez..
ScanX den arkadaşın istediği bölüm..
Kod: Kodu kopyalamak için üzerine çift tıklayın!
## Çalışması İstediğin Kanalları Yazınız..
set globalkanallar {
"#kanal1"
"#kanal2"
"#kanal3"
"#kanal4"
"#kanal5"
}
## Admin Kanalını Yazınız..
set admin_chan "#admin"
##Kullanıcının Çekilmesi İstediğiniz Kanalı Yazınız..
set cek_chan "#cinsellik"
bind pub - !karaliste karalst
proc karalst {nick host hand chan text} {
global admin_chan globalkanallar karals:tmz
if {[lsearch -exact $globalkanallar [string tolower $chan]] == -1} {return 0}
if {[isop $nick $chan] || [onchan $nick $admin_chan]} {
set text [karals:tmz $text]
set yap [lindex [split $text] 0]
if {($yap != "listele") && [llength $text] < 2} { putquick "NOTICE $nick :Kullanım: !karaliste <ekle/sil/listele> <banmask> <sebep> şeklindedir."; return 0 }
set bsekli [lindex [split $text] 1]
set bsebep [lrange [split $text] 2 end]
if {([regexp -all -- {!} $bsekli] > 1) || ([regexp -all -- {!} $bsekli] < 1) || ([regexp -all -- {@} $bsekli] > 1) || ([regexp -all -- {@} $bsekli] < 1)} {
if {$yap != "listele"} {
putquick "NOTICE $nick :banmask'i nick!ident@host şeklinde belirtmelisiniz. Wildcardlar kullanılabilir. Örnek: ScanX!*@* veya *!Confused@* veya *!*@45SMO6T.*";
return 0
}
}
if {($yap != "listele") && ([string length $bsekli] < "9") || ([regexp -all -- {\*} $bsekli] > 5)} { putquick "NOTICE $nick :Belirttiğiniz banmask çok kapsamlı ve kısa, Lütfen kapsamını daraltınız."; return 0 }
if {[string match -nocase "ekle" $yap]} {
if {$bsebep == ""} {
set bsebep "Sebep belirtilmedi."
}
regexp {(\S+/)?} "scripts/ScanX/$chan" tmp karaliste_dir
if {$karaliste_dir != ""} {
if {![file isdirectory $karaliste_dir]} {
file mkdir $karaliste_dir
putlog "Klasör oluşturuldu: $karaliste_dir"
}
}
putquick "NOTICE $nick :Karaliste: Ban şekli: $bsekli Sebep: $bsebep --> Başarıyla karalisteye eklendi."
set dl [open "scripts/ScanX/$chan.db" a]
puts $dl "[join $bsekli] [join $bsebep] [join \002Ekleyen:\002] [join $nick] \n"
flush $dl
catch {closer $dl}
}
if {[string match -nocase "sil" $yap]} {
if {![file exists "scripts/ScanX/$chan.db"]} {
putserv "NOTICE $nick :$chan kanalı için karaliste boş zaten."
return
}
set data ""
set input [open "scripts/ScanX/$chan.db" r]
while {![eof $input]} {
set curline [gets $input];set curline [split $curline]
if {$curline != ""} {
set data [linsert $data end $curline]
}
}
catch {close $input}
set deger -1;set esles ""
foreach line $data {
incr deger
if {[string match -nocase "$bsekli" [lindex $line 0]]} {
set esles $deger
break
}
}
if {$esles == ""} {
putserv "NOTICE $nick :$bsekli listede yok! Listeyi görmek için: !karaliste listele"
return
}
set newdata [lreplace $data $deger $deger]
set output [open "scripts/ScanX/$chan.db" w]
foreach newline $newdata {
if {$newline != ""} {
puts $output $newline
}
}
flush $output
catch {close $output}
putserv "NOTICE $nick :$bsekli karalisteden silindi."
return
}
if {[string match -nocase "listele" $yap]} {
if {![file exists "scripts/ScanX/$chan.db"]} { putserv "NOTICE $nick :Karaliste boş."; return 0 }
set input [open "scripts/ScanX/$chan.db" r]
set lines [split [read $input] \n]
catch {close $input}
set sayc 0
foreach line $lines {
if {$line != ""} {
putserv "NOTICE $nick :$line"
incr sayc
}
}
if {$sayc == 0} {
putserv "NOTICE $nick :Karalistede hiç kayıt bulunamadı."; return
} else { putserv "NOTICE $nick :Listenin Sonu.."
}
}
}
}
bind join - * karals:join
proc karals:join {nick uhost hand chan} {
global globalkanallar admin_chan cek_chan karals:jtmz botnick
if {[lsearch -exact $globalkanallar [string tolower $chan]] == -1 || [onchan $nick $admin_chan] || $nick == $botnick} { return 0 }
set nuhost [karals:jtmz "$nick![getchanhost $nick]"]
if {![file exists "scripts/ScanX/$chan.db"]} { return 0 }
set kfile [open "scripts/ScanX/$chan.db" r]
set lines [split [read $kfile] "\n"]
catch {close $kfile}
foreach lines $lines {
if {$lines != ""} {
if {[string match -nocase *[lindex $lines 0]* $nuhost]} {
set sebep [lrange $lines 1 end-2];set ekleyen [lindex $lines end]
putquick "MODE $chan -o+bb $nick [lindex $lines 0] *!*@[lindex [split $uhost @] 1]"
putquick "KICK $chan $nick $sebep Sebebinden Dolayı Karalistedesin..!! (Ekleyen:$ekleyen) \00302(\00304ScanX\00302)\003"
putquick "OS RAW SVSJOIN $nick $cek_chan"
putquick "NOTICE $nick Karalistede Olduğun için $cek_chan Kanalına Alındınız.. \00302(\00304ScanX\00302)\003"
}
}
}
}
proc karals:jtmz {i} {
regsub -all -- \\\\ $i \001 i
regsub -all -- \\\[ $i \002 i
regsub -all -- \\\] $i \003 i
regsub -all -- \\\} $i \004 i
regsub -all -- \\\{ $i \005 i
return $i
}
proc karals:tmz {i} {
regsub -all -- \\\\ $i \\\\\\\\ i
regsub -all -- \\\[ $i \\\\\[ i
regsub -all -- \\\] $i \\\\\] i
regsub -all -- \\\} $i \\\\\} i
regsub -all -- \\\{ $i \\\\\{ i
regsub -all -- \\\" $i \\\\\" i
return $i
}