Commandes ircop

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 615 fois - Téléchargée 26 fois

Contenu du snippet

Il permet de gline shun gzline rapidementa avec alias/inputs/popups testé sur Unrealircd

Source / Exemple :


;~~~ Alias ~~~

alias gl {
  if ( $$1 != $null ) {
    set %gl. [ $+ [ $1 ] ] oui
    if ( $2 == $null ) { 
      set %gl.temps. [ $+ [ $1 ] ] %GlineInstTime
    }
    else {
      set %gl.temps. [ $+ [ $1 ] ] $2
    }
    if ( $3 == $null ) {
      set %gl.raison. [ $+ [ $1 ] ] No reason.
    }
    else {
      set %gl.raison. [ $+ [ $1 ] ] $3-
    }
    userhost $1
  }
}

alias shu {
  if ( $$1 != $null ) {
    set %shu. [ $+ [ $1 ] ] oui
    if ( $2 == $null ) { 
      set %shu.temps. [ $+ [ $1 ] ] %GlineInstTime
    }
    else {
      set %shu.temps. [ $+ [ $1 ] ] $2
    }
    if ( $3 == $null ) {
      set %shu.raison. [ $+ [ $1 ] ] No reason
    }
    else {
      set %shu.raison. [ $+ [ $1 ] ] $3-
    }
    userhost $1
  }
}

alias gz {
  if ($$1 != $null) {
    set %gz. [ $+ [ $1 ] ] oui
    if ($2 == $null) { 
      set %gz.temps. [ $+ [ $1 ] ] %GlineInstTime
    }
    else {
      set %gz.temps. [ $+ [ $1 ] ] $2
    }
    if ( $3 == $null ) {
      set %gz.raison. [ $+ [ $1 ] ] No reason
    }
    else {    
      set %gz.raison. [ $+ [ $1 ] ] $3-
    }
    userhost $1
  }
}

alias ki {
  kill $$1-
}
on *:input:*: { 
  if ( $1 == !kill ) || ( $1 == .kill ) {
    if ( $3 == $null ) { kill $2 No reason }
    if ( $3 != $null ) { kill $$2 $3- }
  }
  if ( $1 == !gline ) || ( $1 == .gline ) || ( $1 == .gl ) || ( $1 == !gl ) {
    if ( $$2 != $null ) {
      set %gl. [ $+ [ $2 ] ] oui
      if ( $3 == $null ) { 
        set %gl.temps. [ $+ [ $2 ] ] %GlineInstTime
      }
      else {
        set %gl.temps. [ $+ [ $2 ] ] $3
      }
      if ( $4 == $null ) {
        set %gl.raison. [ $+ [ $2 ] ] No reason
      }
      else {
        set %gl.raison. [ $+ [ $2 ] ] $4-
      }
      userhost $2
    }
  }
  if ( $1 == !shun ) || ( $1 == .shun ) || ( $1 == .sh ) || ( $1 == !sh ) {
    if ( $$2 != $null ) {
      set %shu. [ $+ [ $2 ] ] oui
      if ( $3 == $null ) { 
        set %shu.temps. [ $+ [ $2 ] ] %GlineInstTime
      }
      else {
        set %shu.temps. [ $+ [ $2 ] ] $3
      }
      if ( $4 == $null ) {
        set %shu.raison. [ $+ [ $2 ] ] No reason
      }
      else {
        set %shu.raison. [ $+ [ $2 ] ] $4-
      }
      userhost $2
    }
  }
  if ( $1 == !gzline ) || ( $1 == .gzline ) || ( $1 == .gz ) || ( $1 == !gz ) {
    if ($$2 != $null) {
      set %gz. [ $+ [ $2 ] ] oui
      if ($3 == $null) { 
        set %gz.temps. [ $+ [ $2 ] ] %GlineInstTime
      }
      else {
        set %gz.temps. [ $+ [ $2 ] ] $3
      }
      if ( $4 == $null ) {
        set %gz.raison. [ $+ [ $2 ] ] No reason
      }
      else {    
        set %gz.raison. [ $+ [ $2 ] ] $4-
      }
      userhost $2
    }
  }
}
;~~~ Raws ~~~

raw 302:*:{
  var %temp.ban $gettok($2,1,61)
  if ($right(%temp.ban,1) == $chr(42)) set %temp.ban $left(%temp.ban, $calc($len(%temp.ban) - 1))
  if ( %gl. [ $+ [ %temp.ban ] ] == oui ) {
    gline $+(*@,$gettok($2,2,64))  %gl.temps. [ $+ [ %temp.ban ] ] $+(:,%gl.raison. [ $+ [ %temp.ban ] ] ) ( $me )
    unset %gl. [ $+ [ %temp.ban ] ]
    unset %gl.temps. [ $+ [ %temp.ban ] ]
    unset %gl.raison. [ $+ [ %temp.ban ] ]
    halt
  }
  elseif ( %shu. [ $+ [ %temp.ban ] ] == oui ) {
    shun  $+(*@,$gettok($2,2,64))  %shu.temps. [ $+ [ %temp.ban ] ] $+(:,%shu.raison. [ $+ [ %temp.ban ] ] ) ( $me ) 
    unset %shu. [ $+ [ %temp.ban ] ]
    unset %shu.temps. [ $+ [ %temp.ban ] ]
    unset %shu.raison. [ $+ [ %temp.ban ] ]
    halt
  }
  elseif ( %gz. [ $+ [ %temp.ban ] ] == oui ) {
    gzline  $+(*@,$gettok($2,2,64))  %gz.temps. [ $+ [ %temp.ban ] ] $+(:,%gz.raison. [ $+ [ %temp.ban ] ] ) ( $me ) 
    unset %gz. [ $+ [ %temp.ban ] ]
    unset %gz.temps. [ $+ [ %temp.ban ] ]
    unset %gz.raison. [ $+ [ %temp.ban ] ]
    halt
  }
}

;~~~ Remotes ~~~

on *:load:{
  echo -a Tu viens de loader la remote Gline - Shun - Gzline crée par Undz.
  echo -a Les commandes ( Les mots entre crochets sont facultatifs. ) : 
  echo -a Gline : !gl/.gl/!gline/.gline Pseudo [Durée] [Raison]
  echo -a Shun: !sh/!shun/.sh/.shun Pseudo [Durée] [Raison]
  echo -a Gzline: !gz/.gz/.gzline/!gzline Pseudo [Durée] [Raison]
  set %GlineInstTime $$?="Temps par default pour un gline/shun/gzline instantané : $crlf ( format : 1w2d3h4s = 1semaine 2jours 3heures 4secondes )"
}

;~~~ Popups ~~~

menu nicklist {
  $iif( o isin $usermode , - )
  $iif( o isin $usermode , Opers Cmds )
  .kill
  ..Sans raison:/kill $$1 No reason
  ..Avec raison:/kill $$1 $$?="Raison :"
  .shun
  ..Instantané ( %GlineInstTime ):/shu $$1
  ..Instantané avec durée:/shu $$1 $$?="Durée ( dhms ) :"
  .gline
  ..Instantané ( %GlineInstTime ):/gl $$1
  ..Instantané avec durée:/gl $$1 $$?="Durée ( dhms ) :"
  .gzline
  ..Instantané ( %GlineInstTime ):/gz $$1
  ..Instantané avec durée:/gz $$1 $$?="Durée ( dhms ) :"
}

A voir également

Ajouter un commentaire Commentaires
Messages postés
708
Date d'inscription
lundi 15 juillet 2002
Statut
Membre
Dernière intervention
17 mars 2005

Ouais parfois je fais l'effort de proposer des codes de façon concretes. Mais ya des jours ou on a pas la motivation surtour si le code est trop naze, on se contente de dire que c'est nul en espérant ne pas tomber sur un gamin caractériel qui revendique sa médiocrité.

L'interet c'est que ça te serve dans un prochain code. Ceci dit tu devrais modifier celui la en tenant compte des commentaires sur la page. Quand je debutais je passais ici pour voir des codes et de temps en temps je prenais de mauvais exemples ou des syntaxes incorrectes. Pense a ceux qui veulent apprendre montre leur du CODE ;)

(n'oublie pas de mettre ton addon a jour, ça voudrait dire que j'ai réflechis pour rien)
Messages postés
4
Date d'inscription
samedi 19 juin 2004
Statut
Membre
Dernière intervention
19 juin 2004

merci bcp de ce commentaire constructif ainsi que de ces diverses astuces ;)
Je recherche kk1 qui s'y connait en tcl pour un renseignement... contacté moi ici :)
Messages postés
708
Date d'inscription
lundi 15 juillet 2002
Statut
Membre
Dernière intervention
17 mars 2005

ho pinaise g rédigé comme un sagouin :D. j'espere que cette petite rubrique astuce t'aura intéressé.

prochaine étape le DIALOGUE :)
Messages postés
708
Date d'inscription
lundi 15 juillet 2002
Statut
Membre
Dernière intervention
17 mars 2005

tiens une derniere suggestion ç serait bien que tu rajoutes dans ton popups une sectuin pour configurer me temps des commandes par defaut

ça ne serait pas négligeable.

sinon quand tu fait :
unset %gl. [ $+ [ %temp.ban ] ]
les crochets sont inutiles : unset %gl. $+ %temp.ban
c'est pareil pour les set :
set %gz.temps. [ $+ [ $2 ] ] $3
deviens : set %gz.temps. $+ $2 $3

les crochets d'évaluations, ne servent que si tu veux "évaluer" la variable :

if ( %gl. [ $+ [ %temp.ban ] ] = blabla ) { instruction }

parait que moins de caractere donne un code plus rapide c'est a toi de voir.

autre astuce sympa j'ai vu que tu fais :

unset %shu. [ $+ [ %temp.ban ] ]
unset %shu.temps. [ $+ [ %temp.ban ] ]
unset %shu.raison. [ $+ [ %temp.ban ] ]

tu pourrais etre plus "efficace" en faisant :

unset %shu.*

ça va supprimer toutes les variables commençant pas %shu.

encore une astuce (vu que tu debutes tu dois demander que ça :) )
tu tapes ça dans le on *:input:
if ( $1 !gline ) || ( $1 .gline ) || ( $1 == .gl ) || ( $1 == !gl ) { ... }

deja mettre le == c'est pas courant. Je dirais pas que ça sert a rien mais je l'utilise jamais. chez moi ça aurait donné ça :
if ($1 !gline) || ($1 .gline) || ($1 = .gl) || ($1 = !gl) { ... }

mais on peut faire encore mieux que ça
regarde :

on *:input:*: {
var %k !kill .kill,%g !gline !gl .gline .gl,%s = !shun .shun .sh !sh,%gz = !gzline .gzline !gz .gz
if ($findtok(%k,$1,1,32)) { ... }
elseif ($findtok(%g,$1,1,32)) { ... }
elseif ($findtok(%s,$1,1,32)) { ... }
elseif ($findtok(%gz,$1,1,32)) { ... }
}

Comme ça on fait un seul test grace a $findtok ki regarde si $1 est dans les parametres qui déclenches patati patata :) ...
De surcroit on est plus rapide car ton code verfiait tous les if de l'evenement input.
Dans mon cas grace au elseif une fois la condition rencontrée les autres ne sont ne sont pas testée d'ou un serieu gain de temps.

ce que je ne comprend pas c'est que tu sembles maitriser cette syntaxe dans le raws ... mais autant répéter on sera sur que tu ai compris.

Bref mon commentaire commence a etre long je vais m'arreter la si j'ai des idées je te ferais signe une autre fois
Messages postés
4
Date d'inscription
samedi 19 juin 2004
Statut
Membre
Dernière intervention
19 juin 2004

je n'ai jamais prétendu avoir bien codé (je debute en irc) ce script ce révele relativement utile pour moi et je souhaitais le mettre a disposition de tlm. merci pour les conseils donnés même si la maniere n'y était pas see ya
Afficher les 10 commentaires

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.