Antiban protection by djul.

Contenu du snippet

Il s'agit d'une simple protection anti ban offrant la possibilité de choisir entre différentes options lors du ban. Simple deop de l'user ayant posé le ban, kick, kickban ou bien multikick. Message et nombre de kicks étant paramétrable. (Merci à devorZ qui m'a fait l'optimisation au niveau de $devent pendant que je corrigeais autre chose.)

Source / Exemple :


;; AntiBan ;;
;2008-djul©
;

On *:LOAD:{
  set %ab-msg i'm2fast4u
  set %ab-nbk 5
  set %ab-state ON
  echo -at 3[AntiBan3] -
  echo -at 3[AntiBan3] Add On 3Chargé.
  echo -at 3[AntiBan3]-
  .timerab 1 3 ab
}
On *:UNLOAD:{ 
  unset %ab-*
  echo -at 3[AntiBan3] -
  echo -at 3[AntiBan3] Add On 4Déchargé.
  echo -at 3[AntiBan3]-
}
alias Ab if (!$dialog(Ab)) dialog -m Ab Ab 
dialog ab {
  title "AntiBan /ab"
  size -1 -1 70 142
  option dbu
  check "Activer la protection", 1, 5 5 69 10
  box "Action", 2, 5 15 60 55
  radio "Deop", 3, 10 25 50 10
  radio "Kick", 4, 10 35 50 10
  radio "Multi Kick", 5, 10 45 50 10
  radio "Kick Ban", 6, 10 55 50 10
  box "Options", 7, 5 75 60 45
  text "Nombre Kick:", 8, 10 85 31 8
  edit "", 9, 45 85 15 10, center
  text "Raison kick:", 10, 10 95 30 8
  edit "", 11, 10 105 50 10, center
  button "Fermer", 12, 5 125 60 12, default flat ok
}
on *:dialog:ab:*:*:{
  If ($devent == Init) {
    did -a ab 9 %ab-nbk
    did -a ab 11 %ab-msg
    if (%ab-state = 1) did -c ab 1
    if (%ab-action == dop) did -c ab 3
    elseif (%ab-action == k) did -c ab 4
    elseif (%ab-action == mk) did -c ab 5
    elseif (%ab-action == kb) did -c ab 6
  }
  Elseif ($devent == Edit) {
    if ($did == 9) set %ab-nbk $did(9)
    if ($did == 11) set %ab-msg $did(11)
  }
  Elseif ($devent == Sclick) {
    if ($did == 1) set %ab-state $did(1).state
    if ($did == 3) set %ab-action dop
    if ($did == 4) set %ab-action k
    if ($did == 5) set %ab-action mk
    if ($did == 6) set %ab-action kb
  }
}
on @!*:ban:#:{ 
  if (%ab-state = 1) { 
    if ($banmask iswm $ial($me))  {
      if (%ab-action == dop) { set %ab-banmask $banmask | echo -a 3[AntiBan3] Activé  sur $chan ( $+ $network $+ ) | mode # -ob $nick %ab-banmask }
      if (%ab-action == k) { set %ab-banmask $banmask |  echo -a 3[AntiBan3] Activé sur $chan ( $+ $network $+ ) | mode # -b %ab-banmask | kick # $nick %ab-msg }
      if (%ab-action == kb) { set %ab-banmask $banmask |  echo -a 3[AntiBan3] Activé sur $chan ( $+ $network $+ ) | mode # -ob+b $nick %ab-banmask $wildsite | kick # $nick %ab-msg }
      if (%ab-action == mk) { 
        echo -a 3[AntiBan3] Activé sur $chan ( $+ $network $+ )
        set %ab-tmp %ab-nbk 
        set %ab-banmask $banmask
        set %ab-nick $address($nick,2) 
        set %ab-chan $chan
        mode # -b %ab-banmask
        kick # $nick %ab-msg
      }
    }
  }
}
on *:JOIN:%ab-chan:{
  if ( ( %ab-nick == $address($nick,2) ) && (%ab-tmp > 0) && (%ab-state = 1) ) { kick # $nick now cry... more %ab-tmp | dec %ab-tmp 1 }
}

Conclusion :


Vous avez peut être déjà vu ce type de source de nombreuses fois... c'est pas le cas de tous, à bon entendeur :]
Critiques constructives acceptées.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.