Anti badwords

Description

Ce script est un Anti BadWord simple. Il se gere entièrement via un dialogue. Il permettra (si vous êtes op ou halfop la personne qui prononce un mot interdit est ni op ni halfop) de : avertir 3 fois, dévoicer 2minutes, kick, et enfin, ban 30minutes.
Je l'avais créer à la base sur une demande et comme je le trouvais pas mal, je voulais savori ce que vous en pensiez...

Source / Exemple :


#################################
######## Source By TidZ` ########
####     irc.evilsnet.org    ####
####   Contact@EvilsNeT.Org  ####
#################################

menu channel,menubar {
  BadWords : /dialog -m BadWord BadWord
}

on *:load:{
  echo -a 7[14BadWord7] 3- 14Anti BadWords By TidZ`3 Chargé14 !
  echo -a 7[14BadWord7] 3- 14Vous pouvez le gerer via le menu principal de votre script.
  echo -a 7[14BadWord7] 3- 14Si vous rencontrez des problèmes à cause de cette source, contactez moi à l'adresse suivante : 3Contact@EvilsNeT.Org14.
}

dialog BadWord {
  title " ~ BadWords - By TidZ` ~"
  size -1 -1 200 285
  option dbu
  text "Système Anti-BadWords By TidZ`. Entrez le mot que vous voulez interdire dans la case, cliquer sur + pour l'ajouté a la liste interdites. Pour en supprimer un, sélectionnez le et cliquez sur -.", 1, 15 10 160 40, center pour
  check "Activer / Désactiver", 2, 15 35 60 10
  list 3, 15 50 75 75
  edit "", 5, 100 75 70 10
  button "+", 6, 115 89 10 10
  button "-", 7, 145 89 10 10
  button "Valider", 9, 40 255 50 10, ok
  button "Retour", 10, 110 255 50 10, cancel
  text "Ajouter un mot", 11, 115 65 70 10
  link "- Site du créateur -", 12, 77 275 50 45 9
  text "Définissez la phrase d'avertissement :", 13, 16 130 150 10
  edit "", 14, 16 140 168 10
  text "Définissez la phrase de dévoice :", 23, 16 155 150 10
  edit "", 24, 16 165 168 10
  text "Combien temps que la personne restera dévoice (en minute) ?", 15, 16 180 170 10
  edit "", 16, 168 178 16 10
  text "Définissez la raison du kick :", 17, 16 190 70 10
  edit "", 18, 16 200 168 10
  text "Définissez la raison du ban :", 19, 16 215 70 10
  edit "", 20, 16 225 168 10
  text "Combien temps que la personne restera bannie (en minute) ?", 21, 16 240 170 10
  edit "", 22, 168 238 16 10
}

alias badwords { dialog -m BadWord BadWord }

on *:dialog:BadWord:init:0:{
  if (%badword == on) { did -c $dname 2 }
  else { did -u $dname 2 }
  loadbuf -o BadWord 3 bw.txt
  set %NbrLigneBw $lines(bw.txt)
  did -a $dname 14 %pavert
  did -a $dname 16 $calc(%tdev / 60)
  did -a $dname 18 %pkick
  did -a $dname 20 %pban
  did -a $dname 22 $calc(%tban / 60)
  did -a $dname 24 %pdev

}
on *: dialog:BadWord:edit:*:{
  if ($did(14) != $null) { set %pavert $did(14) }
  else { unset %pavert }
  if ($did(16) != $null ) { set %tdev $calc($did(16) * 60) }
  else { unset %tdev }
  if ($did(18) != $null ) { set %pkick $did(18) }
  else { unset %pkick }
  if ($did(20) != $null ) { set %pban $did(20) }
  else { unset %pban }
  if ($did(22) != $null ) { set %tban $calc($did(22) * 60) }
  else { unset %tban }
  if ($did(24) != $null ) { set %pdev $did(24) }
  else { unset %pdev }
}

on *:dialog:BadWord:sclick:*:{
  if ($did == 12) { run http://www.evilsnet.org }
  if ($did(2).state == 1) { set %badword on }
  else { unset %badword }
  if ($did == 6) { write bw.txt $did(5) | did -a $dname 3 $did(5) }
  if ($did == 7) {
    echo -a 14Vous avez retirer le mot3 $did(3).seltext 14de la liste des Bad-Words.
    did -d BadWord 3 $did(3).sel
    write -c bw.txt
    set %BWcompteur 1
    set %MaxBW $did(3).lines
    while ( %BWcompteur <= %MaxBW ) {
      write bw.txt $did(3,%BWcompteur).text
      inc %BWcompteur
    }
  }
}

on *:dialog:BadWord:close:*:{
  if (%badword == on) { echo -a 14Anti BadWord 3Activé ! }
  else { echo -a 14Anti BadWord 4Désactivé ! }
}

on *:text:*:#:{
  if (%badword == on) {
    if (($me isop #) || ($me ishop #)) {
      if (($nick isop #) || ($nick ishop #)) { halt }  
      set %NbrMotPhrase $0
      set %NbrMotPhraseCompteur 1
      while (%NbrMotPhraseCompteur <= %NbrMotPhrase) {
        set %parcoursLignesBw 1
        set %CoupureDroite $pos($strip($1-),$chr(32),%NbrMotPhraseCompteur )
        set %CoupureGauche $pos($strip($1-),$chr(32),$calc(%NbrMotPhraseCompteur - 1))
        if (%NbrMotPhraseCompteur <= 1) {
          set %MotVérifié $remove($left( $strip($1-),%CoupureDroite),$chr(32),*,?)
        }
        if ((%NbrMotPhraseCompteur > 1) && (%NbrMotPhraseCompteur < %NbrMotPhrase)) {
          set %MotVérifié $remove($mid($strip($1-),%CoupureGauche,$calc(%CoupureDroite - %CoupureGauche)),$chr(32),*,?)
        }
        if (%NbrMotPhraseCompteur == %NbrMotPhrase) {
          set %MotVérifié $remove($mid( $strip($1-),%CoupureGauche),$chr(32),*,?)
        }
        if ($read(bw.txt,w,%MotVérifié)) { 
          inc %bad $+ $nick
          if (%bad [ $+ [ $nick ] ] <= 3) {
            if (%pavert != $null) { msg # %pavert }
            else { msg # 7[14Avertissement7] 3- 14Reste poli(e)3 $nick 14! }
          }
          if (%bad [ $+ [ $nick ] ] == 4) {
            mode # -v $nick
            if (%pdev != $null) { msg # %pdev }
            else { msg # 7[14Dévoice7] 3- 14Je t'avais dit de rester poli(e)3 $nick 14! Un dévoice de3 214minutes. }

            if {%tdev != $nulm) { timer 1 %tdev mode # +v $nick }
            else { timer 1 120 mode # +v $nick }
          }
          if (%bad [ $+ [ $nick ] ] == 5) {
            if (%pkick != $null) { kick # $nick %pkick }
            else { kick # $nick 14Est-ce si compliquer de rester 3poli(e) 14?? }
          }
          if (%bad [ $+ [ $nick ] ] => 6) {
            mode # +b $address($nick,2)
            if (%pban != $null) { kick # $nick %pban }
            else { kick # $nick 14Trop, c'est trop ! }
            if (%tban != $null) { timer 1 %tban mode # -b $address($nick,2) }
            else { timer 1 3600 mode # -b $address($nick,2) }
          }
        }
        inc %NbrMotPhraseCompteur 
      }
    }
  }
}

Codes Sources

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.