Dialogs de modération

Contenu du snippet

Bah comme son nom l'indique, ce sont des dialogs de modération.
Le premier est le dialog du semi-opérateur (halfop, ishelp/ishop)
Le deuxième est celui de l'opérateur (isop).

Source / Exemple :


menu channel {
  -
  CM.Commande
  .$iif(($me isop $chan || $me ishop $chan),Dialog de Modération, $style(2) Indisponible) : CM
  .Editeur Phrase: Editeur 
}

on *:load:{
  set %cm.mamadoo chat2.servihoo.com chat-hub.voila.fr chat5.x-echo.com chat7.x-echo.com chat14.x-echo.com chat10.x-echo.com chat1.voila.fr chat15.x-echo.com chat9.x-echo.com chat4.x-echo.com irc.voila.fr chat.wanadoo.mg chat.wanadoo.ma
  set %CM.kick.raison Kick.
  set %CM.kb.raison Banni.
}

on *:unload: unset %cm.*

alias -l CM {
  if ($me isop $chan) { $iif(!$dialog(CM.Commande.Op), dialog -m CM.Commande.Op CM.Commande.Op, echo 4 -a Erreur $+ $chr(44) le dialog est déjà lancé.) }
  elseif ($me ishelp $chan) { $iif(!dialog(CM.Commande.halfop),dialog -m CM.Commande.halfop CM.Commande.halfop, echo 4 -a Erreur $+ $chr(44) le dialog est déjà lancé.) }
}

Alias -l Editeur $iif(!$dialog(CM.editeur),dialog -m CM.editeur CM.editeur, echo 4 -a Erreur $+ $chr(44) le dialog est déjà ouvert.)

dialog -l CM.Commande.halfop {
  title "Commande Halfop"
  size -1 -1 102 90
  option dbu
  box "Commande Halfop", 1, 1 1 98 77
  list 3, 4 10 61 65, size extsel vsbar
  button "Voice", 5, 70 12 24 11, flat
  button "Devoice", 6, 70 25 24 11, flat
  button "Kick", 8, 70 38 24 11, flat
  button "Ban", 10, 70 51 24 11, flat
  button "Kick Ban", 12, 70 64 24 11, flat
  text "By CoolMan002", 33, 30 82 38 8
}

dialog -l CM.Commande.Op {
  title "Commande Opérateur"
  size -1 -1 102 144
  option dbu
  box "Commande Opérateur", 13, 1 1 98 130
  list 14, 4 10 61 119, size extsel vsbar
  button "Ban", 19, 70 104 24 11, flat
  button "Kick", 20, 70 91 24 11, flat
  button "Devoice", 21, 70 78 24 11, flat
  button "Voice", 22, 70 65 24 11, flat
  button "Kick Ban", 23, 70 117 24 11, flat
  button "Deop", 30, 70 26 24 11, flat
  button "Op", 29, 70 13 24 11, flat
  button "Halfop", 31, 70 39 24 11, flat
  button "Dehalfop", 32, 70 52 24 11, flat
  text "By CoolMan002", 1, 0 133 102 8, center
}

dialog -l CM.editeur {
  title "Editeur de phrase"
  size -1 -1 168 41
  option dbu
  text "Raison du kick :", 1, 2 3 41 8
  text "Raison du kickban :", 2, 2 13 49 8
  edit "", 3, 58 2 71 10, autohs
  edit "", 4, 58 14 71 10, autohs
  button "Save", 5, 133 2 27 10, flat
  button "Save", 6, 133 14 27 10, flat
  button "Fermer", 7, 65 27 37 12, flat
}

on *:dialog:*:*:*:{
  if ($dname == CM.Commande.halfop) {
    if $devent == init { did -z $dname 3 | CM.Commande.halfop.listing }
    elseif $devent == sclick {
      if $did == 5 { CM.action + v $CM.Commande.Qui }
      elseif $did == 6 { CM.action - v $CM.Commande.Qui }
      elseif $did == 8 { CM.kick $CM.Commande.Qui }
      elseif $did == 10 { CM.ban $CM.Commande.Qui }
      elseif $did == 12 { $iif($version >= 6.12,CM.kb,CM.kb2) $CM.Commande.Qui }
    }
  }
  elseif ($dname == CM.Commande.Op) {
    if $devent == init {
      if ($istok(%cm.mamadoo,$server,32)) { did -b $dname 31,32 }
      did -z $dname 14
      CM.Commande.Op.listing 
    }
    elseif $devent == sclick {
      if $did == 19 { CM.ban $CM.Commande.Qui }
      elseif $did == 20 { CM.kick $CM.Commande.Qui }
      elseif $did == 21 { CM.action - v $CM.Commande.Qui }
      elseif $did == 22 { CM.action + v $CM.Commande.Qui }
      elseif $did == 23 { $iif($version >= 6.12,CM.kb,CM.kb2) $CM.Commande.Qui }
      elseif $did == 29 { CM.action + o $CM.Commande.Qui }
      elseif $did == 30 { CM.action - o $CM.Commande.Qui }
      elseif $did == 31 { CM.action + h $CM.Commande.Qui }
      elseif $did == 32 { CM.action - h $CM.Commande.Qui }
    }
  }
  elseif ($dname == CM.editeur) {
    if ($devent == init) {
      did -a $dname 3 $iif(%CM.kick.raison, $ifmatch,Kick.)
      did -a $dname 4 $iif(%CM.kb.raison, $ifmatch,Banni.)
    }
    elseif ($devent == sclick) {
      if ($did == 5) {
        if ($len($did($dname,3)) = 0) { echo 4 -a Tu veux enregistrer quoi là ? | set %CM.kick.raison Kick. }
        else { set %CM.kick.raison $did($dname,3) | echo -a 4Enregistré: %CM.kick.raison }
      }
      elseif ($did == 6) {
        if ($len($did($dname,4)) = 0) { echo 4 -a Tu veux enregistrer quoi là ? | set %CM.kb.raison Banni. }
        else { set %CM.kb.raison $did($dname,4) | echo -a 4Enregistré: %CM.kb.raison }
      }
      elseif ($did == 7) { dialog -x $dname }
    }
  }
}

alias -l CM.Commande.halfop.listing {
  if !$dialog(CM.Commande.halfop) { dialog -m CM.Commande.halfop CM.Commande.halfop }
  var %a = 0, %b = $nick($active,0)
  while %b > %a {
    inc %a
    did -a CM.Commande.halfop 3 $nick($active,%a) 
  }
}

alias -l CM.Commande.Op.listing {
  if !$dialog(CM.Commande.op) { dialog -m CM.Commande.op CM.Commande.op }
  var %a = 0, %b = $nick($active,0)
  while (%b > %a) {
    inc %a
    did -a CM.Commande.op 14 $nick($active,%a) 
  }
}

alias -l CM.kb2 {
  var %cmkb = $numtok($1-,32)
  while (%cmkb) {
    kick $active $gettok($1-,%cmkb,32) Banni.
    ban -u3600 $active $gettok($1-,%cmkb,32) 2
    dec %cmkb
  }
}

alias -l CM.kb {
  tokenize 32 $1-
  ban -ku3600 $active $* 2 %CM.kb.raison
}

alias -l CM.ban {
  tokenize 32 $1-
  ban -u3600 $active $* 2
}

alias -l CM.kick {
  tokenize 32 $1-
  kick $active $* %CM.kick.raison
}

alias -l CM.Commande.Qui {
  if ($me isop $active) {
    var %a = 0, %b = $did(CM.Commande.Op,14,0).sel
    while (%b > %a) {
      inc %a
      var %aa = $did(CM.Commande.Op,14,%a).sel
      var %aaa = %aaa $did(CM.Commande.Op,14,%aa)
    }
    return %aaa
    halt
  }
  elseif ($me ishelp $active) {
    var %a = 0, %b = $did(CM.Commande.halfop,3,0).sel
    while (%b > %a) {
      inc %a
      var %aa = $did(CM.Commande.halfop,3,%a).sel
      var %aaa = %aaa $did(CM.Commande.halfop,3,%aa)
    }
    return %aaa
  }
  else { halt }
}

alias -l CM.Action {
  var %cma = $3-
  while %cma {
    mode $active $+($1,$str($2,$modespl)) $gettok(%cma,1- $modespl,32)
    var %cma = $deltok(%cma,1- $+ $modespl,32)
  }
}

Conclusion :


Comment ça fonctionne: clique droit dans un salon ?? CM.Commande

Défaut/bug/amélioration » laissez un commentaire.

Voilà.

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.