Sock bot de base

Contenu du snippet

Voici un sockbot de base... en fait c'est un bot que jutilisait sur mon serveur mais je n'ais laisser que la base de la connexion c'est surtout pour apprendre

Source / Exemple :


alias bot { dialog -m sockbot sockbot }
dialog sockbot {
  size -1 -1 138 80
  title "SockBot"
  text "Serveur",1,2 2 50 17
  text "Port",2,2 22 50 17
  text "Pseudo",3,2 42 50 17
  edit "",4,47 0 87 22
  edit "",5,47 20 87 22
  edit "",6,47 40 87 22
  button "Connect",7,1 62 133 16
}
on *:dialog:sockbot:sclick:7:{ botconnexion $+($did(4),:,$did(5)) $did(6) }
alias botconnexion {
  ;;Ici on ouvre le sock et on enregistre Serveur, Port et pseudo qui peuvent servire plus tard
  sockopen connexion $gettok($1,1,$asc(:)) $gettok($1,2,$asc(:))
  set %sockserv $gettok($1,1,$asc(:))
  set %sockport $gettok($1,2,$asc(:))
  set %socknick $2
}
;; Quand le sock ouvre : on envoie l'info pour s'enregistrer et le pseudo
on *:SOCKOPEN:connexion:{ window -e @bot | sockwrite connexion USER %socknick 0 * : $+ %socknick $+ $crlf $+ NICK %socknick $+ $crlf }
;;L'info reçue par le serveur et linterpretation de l'info reçue
on *:SOCKREAD:*connexion*:{ var %r | sockread %r | tokenize 32 %r
  if ($2 == 432) { sockwrite -n connexion NICK $r(A,Z) $+ $r(a,z) $+ $r(a,z) $+ $r(a,z) $+ $r(11,99) }
  if ($2 == 433) { sockwrite -n connexion NICK $r(A,Z) $+ $r(a,z) $+ $r(a,z) $+ $r(a,z) $+ $r(11,99) }
  if ($2 == 498) { sockwrite -n connexion NICK $r(A,Z) $+ $r(a,z) $+ $r(a,z) $+ $r(a,z) $+ $r(11,99) }
  ;;Tres important de repondre au ping pour ne pas etre déconnecter
  if (PING* iswm %r) { sockwrite connexion PONG $2 $+ $crlf | echo @bot 4 $+ $1- | halt }
  if (*NOTICE* iswm %r) { echo @bot %r | halt }
  if (*VERSION* iswm %r) { echo @bot 9 $+ %r | halt }
  if (*FINGER* iswm %r) { echo @bot 9 $+ %r | halt }
  if (*PING* iswm %r) { echo @bot 9 $+ %r | halt }
  if (*TIME* iswm %r) { echo @bot 9 $+ %r | halt }
  if (*PRIVMSG* iswm %r) { echo @bot 15< $+ $gettok(%r,3,32) $+ >< $+ $right($gettok(%r,1,32),$calc($len($gettok(%r,1,32)) - 1)) $+ > $+ $4- | halt }
  if (*KICK* iswm %r) { echo @bot 7 $+ %r | halt }
  if (*MODE* iswm %r) { echo @bot 7 $+ %r | halt }
  else { echo @bot 4 $+ %r }
}
;;Si le Sock ferme on le sais...
on *:SOCKCLOSE:*connexion*:{ echo @bot Connexion Fermée }
;;Les alias des commandes de bases avec b. en avant pour ne pas les melanger avec ceux par defaut de mIRC
alias b.join { sockwrite connexion join $1 $+ $crlf }
alias b.part { sockwrite connexion part $1 $+ $crlf }
alias b.hop { b.part $1 | b.join $1 }
alias b.kick { sockwrite connexion kick $1 $2 : $+ $3- $+ $crlf }
alias b.quit { sockwrite -n connexion quit $1- }
alias b.mode { sockwrite connexion mode $1 $2 $3 $+ $crlf }
alias b.nick { sockwrite connexion NICK $1 $+ $crlf }
alias b.msg { sockwrite connexion PRIVMSG $1 : $+ $2- $+ $crlf }
alias b.send { sockwrite -n connexion $1- }

Conclusion :


Je vien de faire un update maintenant suffi de tapper /bot pour que le dialog s'ouvre

Un autre update... Un alias et des lignes de commentaires

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.