hadi biraz daha geliştirip o özelliği de ekleyelim... memo/not değilde (ki şart da değil öyle olması)
ortada botun aldığı bir davet (invite) var ise ,davet edilen kanalı ::targetchan ile ve kimden geldiğini ayrı bir değişken ile bot hafızasında saklayıp,ortada bilgilendirecek bir sahip (owner) yoksa, o geldiğinde/kanala (botun olduğu herhangi bir kanala) girişinde sahibine bu aldığı davet bilgisini iletsin....
ki böylelikle bot sahibi "online" değilse dahi ,döndüğünde isteğe kabul yada red cevabını verebilsin....
Kod: Kodu kopyalamak için üzerine çift tıklayın!
bind raw - "INVITE" inv_join
bind msg n "!tamam" accept_inv
bind msg n "!olmaz" reject_inv
bind join n "* *" owner_note
proc inv_join {from key arg} {
set ::targetchan [lindex [split $arg ":"] 1]
set ::invited $from
putserv "notice $::owner :$from tarafından, $::targetchan kanalına davet edildim."
putserv "notice $::owner :daveti kabul etmek için: /msg $::botnick !tamam"
putserv "notice $::owner :daveti red etmek için: /msg $::botnick !olmaz"
return 0
}
proc reject_inv {nick uhost hand text} {
if {[info exists ::targetchan] && [info exists ::invited]} {
unset ::targetchan
unset ::invited
putserv "notice $::owner :Red edildi .."
return 1
}
return 0
}
proc accept_inv {nick uhost hand text} {
if {[info exists ::targetchan] && [info exists ::invited]} {
channel add $::targetchan
putserv "notice $::owner :Kanala girildi .."
unset ::targetchan
unset ::invited
return 1
}
return 0
}
proc owner_note {nick uhost hand chan} {
if {[info exists ::targetchan] && [info exists ::invited]} {
putserv "notice $::owner :$::invited tarafından, $::targetchan kanalına davet edildim."
putserv "notice $::owner :daveti kabul etmek için: /msg $::botnick !tamam"
putserv "notice $::owner :daveti red etmek için: /msg $::botnick !olmaz"
return 1
}
return 0
}
putlog "ok..."
ki böylelikle bot sahibinin botun attığı davet bilgisi notice'ini görmemesi/gözden kaçırma olasılığı da bir anlamda ortadan kalkıyor.çünkü buna bir kabul yada red cevabı verinceye dek bu bilgi (bot hafızası temizlenmediği sürece) saklanacak ve sahibi her kanala girdiğinde ona bir karşılama mesajı gibi atacaktır.. sahibi yanıt verdiğinde bu bilgiler temizlenmiş olacak ve artık o kabul/red komutları da işlemeyecek.... hikayenin sonu...