This is the new home of the egghelp.org community forum.
All data has been migrated (including user logins/passwords) to a new phpBB version.


For more information, see this announcement post. Click the X in the top right-corner of this box to dismiss this message.

Banmask proc for dalnet

Support & discussion of released scripts, and announcements of new releases.
Post Reply
s
simo
Revered One
Posts: 1126
Joined: Sun Mar 22, 2015 2:41 pm

Banmask proc for dalnet

Post by simo »

Proper banmask setting for dalnet in 1 proc for all your ban settings in your scripts
And you can use this when u need to set a ban on someone in a proc

Example:

Code: Select all



##########################
## Proc for the banmask ##
##########################


proc BanMsk {uhost} {
     if {[string match -nocase "*@*.irccloud.com" $uhost]} {  
                     return "*!*[string map {sid id uid id} [string trimleft [lindex [split $uhost @] 0] "~"]]@*"
                  }  else { return "*!*@[lindex [split $uhost "@"] 1]" }
}


#####################################
## Proc for checking access levels ##
#####################################

proc AccessChker {nick chan} {  if {[matchattr [nick2hand $nick] o|o $chan]} { return 1 }; foreach type {op halfop} { if {[is$type $nick $chan]} { return 1 } }; return 0 }

proc NOAccessChker {nick chan} {  if {[matchattr [nick2hand $nick] of|of $chan]} { return 1 }; foreach type {op halfop} { if {[is$type $nick $chan]} { return 1 } }; return 0 }



#####################
## Proc for kickban #
#####################

bind pub -|- !kb Pub:Kban


proc  Pub:Kban {nick uhost hand chan text} {
  if {![AccessChker $nick $chan]} { return 0 }
 
      set text [split [regsub -all -- {\s{2,}} [string trim [stripcodes * $text]] { }]]

     set target [string trimright [string trimleft [lindex [split $text] 0] "@%+"] ":"]
     set reason [join [lrange [split $text] 1 end]]
 
    if {![llength $text]} { putserv "Notice $nick :Syntax is !KB \<nick\> \<reason\>" ; return 0 }

     if {[NOAccessChker $target $chan]} { return 0 }

   if {$reason eq ""} {  set reason "Kicked By\: $nick --- Reason\: Requested."  
    } else { set reason "Kicked By\: $nick --- Reason\: $reason" }

      if {[AccessChker $target $chan]} { return 0 }

     set lastChar [string index $reason end]
    if {$lastChar ni {\. ! ?}} { append reason "." }

     if {![onchan $target $chan]} {  
                          putserv "Notice $nick :$target is not on channel $chan"                              
    } else {
                      if {![ischanban [BanMsk $chost] $chan]} { putserv "mode $chan +b [BanMsk $chost]" } 
                        putserv "kick $chan $target :$reason"   
 }
}
 
 

##################
## Proc for kick #
##################

 
bind pub -|- !k Pub:Kicker

proc  Pub:Kicker {nick uhost hand chan text} {
  if {![AccessChker $nick $chan]} { return 0 }
 
      set text [split [regsub -all -- {\s{2,}} [string trim [stripcodes * $text]] { }]]

     set target [string trimright [string trimleft [lindex [split $text] 0] "@%+"] ":"]
     set reason [join [lrange [split $text] 1 end]]
 
    if {![llength $text]} { putserv "Notice $nick :Syntax is !K \<nick\> \<reason\>" ; return 0 }

     if {[NOAccessChker $target $chan]} { return 0 }
     
   if {$reason eq ""} {  set reason "Kicked By\: $nick --- Reason\: Requested."  
    } else { set reason "Kicked By\: $nick --- Reason\: $reason" }

     if {[AccessChker $target $chan]} { return 0 }

     set lastChar [string index $reason end]
    if {$lastChar ni {\. ! ?}} { append reason "." }

     if {![onchan $target $chan]} {  
                putserv "Notice $nick :$target is not on channel $chan"                              
    } else { putserv "kick $chan $target :$reason" }
}
 

########################
## Proc for Nick ban  ##
########################
 
 
bind pub -|- !nb pub:BadNickBanner
bind pub -|- !n pub:BadNickBanner
bind pub -|- .n pub:BadNickBanner
bind pub -|- .nb pub:BadNickBanner


   
proc pub:BadNickBanner {nick host hand chan text} {
  if {![AccessChker $nick $chan]} { return 0 }

   global botnick

     set text [regsub -all -- {\s{2,}} [string trim [stripcodes * $text]] { }]
 
     set bannedmasksxSZ [list]

        set nicktarget [string trimright [string trimleft [lindex [split $text] 0] "@%+"] ":"]

       if {![llength $nicktarget]} {  putserv "Notice $nick :Syntax is !n \<nick\/banmask\> "  ;  return 0 }

      if {[NOAccessChker $nicktarget $chan] || [string match -nocase "*${botnick}*" $nicktarget]} { return 0 }
    
        set nicktarget2 [string trim [regsub -nocase -all {[\?\*|a|i|e|u|o|x|0-9|\{\}\[\]\|\\\\`\-\_\`\^]+} $nicktarget ""] ""]
        set targetnick3 [string trim [regsub -nocase -all {[0-9|\{\}\[\]\|\\\\`\-\_\`\^]+} $nicktarget ""] ""]
        set nicktarget4 [string trim [regsub -nocase -all {[^a|i|e|u|o|x|0-9|\{\}\[\]\|\\\\`\-\_\`\^]+} $nicktarget ""] ""]
        set nicktarget5 "[string trim [regsub -nocase -all {[\?|a|i|e|u|o|x|0-9|\{\}\[\]\|\\\\`\-\_\`\^]+} $nicktarget "*"] ""]"
        set Badcharsz "[string length [regsub -all {\ } $nicktarget4 ""]]"
        set Goodcharsz "[string length [regsub -all {\ } $nicktarget2 ""]]"


        regsub -all -- {(.)\1+} $nicktarget2 {\1*} nicktarget2
        regsub -all -- {(.)\1+} $nicktarget2 {\1*} nicktarget3
        regsub -all -- {(.)\1+} $targetnick3 {\1*} targetnick3
        regsub -all -- {(.)\1+} $nicktarget5 {\1*} nicktarget5
        regsub -all -- {(((.)\3)\3+)} $nicktarget {\2*} nicktarget6
        set nicktarget7 [string trim [regsub -nocase -all {[0-9|\{\}\[\]\|\\\\`\-\_\`\^]+} $nicktarget6 "*"] ""]

      set length2 [string length [regsub -all {\ } $nicktarget2 ""]]
      set length3 [string length [regsub -all {\ } $nicktarget ""]]

      if {[string match -nocase "*Guest*" $nicktarget]} { return 0 }

     set kickreason  "[join [lrange [split $text] 1 end]]"
     set lastChar [string index $kickreason end]
    if {$lastChar ni {\. ! ?}} { append kickreason "." }

   if {[join [lrange [split $text] 1 end]] eq ""} { set kickreason2 "\00312,00 Kick-Banned by: \00306 \002$nick\002 \00312 - Reason:"  
 }  else { set kickreason2  "\00312,00 Kick-Banned by: \00306 \002$nick\002 \00312 - Reason: \00305  \002$kickreason\002 - " }
 

 if {![onchan $nicktarget $chan]} {
     if {($length2 < 5)} { lappend bannedmasksxSZ [regsub -all -- {\*{2,}} *$nicktarget7*!*@* {*}] }
     if {($length2 == 5)} { lappend bannedmasksxSZ [regsub -all -- {\*{2,}} *$nicktarget5*!*@* {*}]   
    } elseif {($length2 > 5)} { lappend bannedmasksxSZ [regsub -all -- {\*{2,}} [wildcard $nicktarget2]!*@* {*}] }        
   } else { 
              putnow "kick $chan $nicktarget :$kickreason2 \00312,00 \002«-Inappropriate-NICK-»\002"   
      if {($length2 < 5)} { lappend bannedmasksxSZ [regsub -all -- {\*{2,}} *$nicktarget7*!*@* {*}] }
      if {($length2 == 5)} { lappend bannedmasksxSZ [regsub -all -- {\*{2,}} *$nicktarget5*!*@* {*}] 
       } elseif {($length2 > 5)} { lappend bannedmasksxSZ [regsub -all -- {\*{2,}} [wildcard $nicktarget2]!*@* {*}] }        

            set chost [getchanhost $nicktarget $chan]
           if {![ischanban [BanMsk $chost] $chan]} { lappend bannedmasksxSZ [BanMsk $chost] } 
}
 if {[llength $bannedmasksxSZ]} {   
   putnow "mode $chan +bb $bannedmasksxSZ"
  }
}

 
Post Reply