on ^*:snotice:*:{
; GERÇEK OPER GİRİŞ TAKİBİ
; Sunucu formatına göre "is now an IRC Operator" veya "has opered as" mesajlarını yakalar
if (*is now an IRC Operator* iswm $1-) || (*has opered as* iswm $1-) {
if ($regex($1-,/(\S+)\s+(is now an IRC|has opered)/i)) {
var %n = $regml(1)
; Eğer nick başında @, +, . gibi karakterler varsa temizle
var %n = $regsubex(%n,/[+@.~&%]/g,)
set %gercek_oper. [ $+ [ %n ] ] $ctime
.optakip_yaz 03[OPER GİRİŞ] %n şu anda sunucu yetkisini (OPER/ADMIN) aktif etti. Tarih: $asd($ctime)
}
}
; GERÇEK OPER ÇIKIŞ TAKİBİ (Snotice üzerinden Quit/Signoff)
; Sunucudan çıkan operların snotice üzerindeki çıkış mesajını yakalar
if (*Client exiting:* iswm $1-) || (*Signoff:* iswm $1-) {
if ($regex($1-,/Client exiting:\s+(\S+)/i)) || ($regex($1-,/Signoff:\s+(\S+)/i)) {
var %n = $regml(1)
var %n = $regsubex(%n,/[+@.~&%]/g,)
; Eğer bu nick daha önce giriş yapmış bir oper ise
if (%gercek_oper. [ $+ [ %n ] ]) {
var %sure = $sure_cevir($calc($ctime - %gercek_oper. [ $+ [ %n ] ]))
.optakip_yaz 04[OPER ÇIKIŞ] %n Sunucudan ayrıldı (Quit/Signoff). Aktif Süresi: %sure - Tarih: $asd($ctime)
unset %gercek_oper. [ $+ [ %n ] ]
}
}
}
}
; Alternatif Deoper Takibi (Kullanıcı quit çekmeden /deoper olursa)
on *:rawmode:#:{
if ($1 == -o) {
var %n = $2
if (%gercek_oper. [ $+ [ %n ] ]) {
var %sure = $sure_cevir($calc($ctime - %gercek_oper. [ $+ [ %n ] ]))
.optakip_yaz 04[OPER DEOPER] %n Yetkisini elinden aldı veya deoper oldu. Aktif Süresi: %sure - Tarih: $asd($ctime)
unset %gercek_oper. [ $+ [ %n ] ]
}
}
}
; --- YARDIMCI FONKSİYONLAR ---
alias -l optakip_yaz {
if (!$window(@OperTakip)) { window -e @OperTakip }
echo -t @OperTakip $1-
}
alias -l asd {
return $günbul($asctime($1,dddd)) - $asctime($1,dd/mm/yyyy - HH:nn:ss)
}
alias -l günbul {
if ($1 == Monday) { return Pazartesi }
if ($1 == Tuesday) { return Salı }
if ($1 == Wednesday) { return Çarşamba }
if ($1 == Thursday) { return Perşembe }
if ($1 == Friday) { return Cuma }
if ($1 == Saturday) { return Cumartesi }
if ($1 == Sunday) { return Pazar }
return $1
}
alias -l sure_cevir {
var %s = $1
var %h = $floor($calc(%s / 3600))
var %m = $floor($calc(($calc(%s % 3600)) / 60))
var %sec = $calc(%s % 60)
var %res = ""
if (%h > 0) { var %res = %res %h saat }
if (%m > 0) { var %res = %res %m dakika }
if (%sec > 0) { var %res = %res %sec saniye }
return %res
}