BT.badrealname.tcl 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #########################################################################
  2. ## BlackTools - The Ultimate Channel Control Script ##
  3. ## One TCL. One smart Eggdrop ##
  4. #########################################################################
  5. ######################### BADREALNAME TCL ###########################
  6. #########################################################################
  7. ## ##
  8. ## BlackTools : http://blacktools.tclscripts.net ##
  9. ## Bugs report : http://www.tclscripts.net/ ##
  10. ## GitHub page : https://github.com/tclscripts/BlackToolS-TCL ##
  11. ## Online Help : irc://irc.undernet.org/tcl-help ##
  12. ## #TCL-HELP / UnderNet ##
  13. ## You can ask in english or romanian ##
  14. ## ##
  15. #########################################################################
  16. proc badrealname:protect:join {nick host hand chan} {
  17. global botnick black
  18. set ::cchan $chan
  19. set ::nnick $nick
  20. set ::hhost $host
  21. set handle [nick2hand $nick]
  22. if {[setting:get $chan badrealname]} {
  23. if {[isbotnick $nick]} {
  24. return
  25. }
  26. if {![botisop $chan] && ![setting:get $chan xonly]} { return }
  27. if {[matchattr $handle $black(exceptflags) $chan]} { return }
  28. if {[onchan $nick $chan]} {
  29. putquick "WHOIS $nick"
  30. bind RAW - 311 badrealname:protect
  31. }
  32. }
  33. }
  34. proc badrealname:protect { from keyword arguments } {
  35. global botnick black
  36. set chan $::cchan
  37. set nick $::nnick
  38. set host $::hhost
  39. set chan1 $chan
  40. set found_realname ""
  41. set fullname [string range [join [lrange [split $arguments] 5 end]] 1 end]
  42. set text [check:except $fullname $chan $black(badfwords) $black(badfexcept) "BADREALNAME"]
  43. set check_word [check:file:word $chan $text "badrealname"]
  44. if {$check_word != ""} {
  45. set found_realname $check_word
  46. }
  47. if {$found_realname != ""} {
  48. blacktools:banner:2 $nick "badrealname:$found_realname" $chan $chan1 $host "0" ""
  49. if {[link:status $chan] == "1"} {
  50. foreach c [link:chan:get $chan] {
  51. blacktools:banner:2 $nick "badrealname:$found_realname" $c $c $host "1" ""
  52. }
  53. blacktools:link_ban2 [link:get] 0
  54. } else { who:chan $chan }
  55. }
  56. unbind RAW - 311 badrealname:protect
  57. }
  58. proc badrealname:module {nick host hand chan arg} {
  59. global black lastbind
  60. set type 0
  61. set chan1 "$chan"
  62. set why [lindex [split $arg] 0]
  63. set badf [join [lrange [split $arg] 1 end]]
  64. set number [lindex [split $arg] 1]
  65. if {[regexp {^[&#]} $why] && [matchattr $hand nmo|M $why]} {
  66. set chan "$why"
  67. set why [lindex [split $arg] 1]
  68. set badf [join [lrange [split $arg] 2 end]]
  69. set number [lindex [split $arg] 2]
  70. }
  71. set return [blacktools:mychar $lastbind $hand]
  72. if {$return == "0"} {
  73. return
  74. }
  75. prot:module:process $nick $host $hand $chan $chan1 $why $badf $type $number "badrealname"
  76. }
  77. ##############
  78. #########################################################################
  79. ## END ##
  80. #########################################################################