Soyez le premier à donner votre avis sur cette source.
Snippet vu 4 914 fois - Téléchargée 15 fois
#!/bin/perl -w Xchat::register("Script perso", "1.0", "redefinition de /away + anti-kick"); # On met un hook sur la commande "away" et un sur l' evenement "you kicked" Xchat::hook_command("away", cmd_away); Xchat::hook_print("You Kicked", cmd_kicked); my ($hmsg, $hnot); # Lorsque l' on tape "away" ... sub cmd_away{ my $name; # Si l' on est pas encore away, alors if((Xchat::get_info(away)) eq ""){ # on recupere le nick de l' utilisateur $name = Xchat::get_info(nick); # on envoie la commande "/nick pseudo[away]" Xchat::command("nick ".$name."[away]"); # on mets l' utilisateur en mode away Xchat::command("away"); # on met un hook sur les message des chan et sur les notices ... $hmsg = Xchat::hook_server("PRIVMSG", cmd_msg); $hnot = Xchat::hook_server("NOTICE", cmd_not); }else{ # Sinon ... on recupere le pseudo de l' utilisateur $name = Xchat::get_info(nick); # On suprimme le "[away]" a la fin # on change le nick et on se remet en ligne Xchat::command("nick ".substr($name, 0, length($name)-6)); Xchat::command("back"); # on supprime les hooks sur les messages recus sur les chans Xchat::unhook($hmsg); Xchat::unhook($hnot); } return Xchat::EAT_NONE; } # lorsque l' on est kické sub cmd_kicked{ # On affiche la phrase tu as été kické de "nom du chan" Xchat::print("Tu as été kické !!!! de $_[0][1]\r\nReconnection..."); # on se reconnecte au chan immediatement Xchat::command("join ".$_[0][1]); # on envoie une notice a celui qui nous a kické pour lui dire qu' on est pas content :p Xchat::command("notice ".$_[0][2]." Plus jamais tu me kick toi ... :@"); return Xchat::EAT_NONE; } # lorsque l' on est away et que qqun envoie un message sur le chan ... sub cmd_msg{ my ($netw, $serv); # Si le message comprends les 4 premieres lettres du pseudo ( pour moi "gero" a changer en fonction du votre ...) # et que ce n' est pas vous qui avez envoyé le msg if(($_[1][3] =~ m/gero/i)&&(!($_[0][0] =~ m/Xchat::get_info(nick)/))){ $netw = Xchat::get_info(network); $serv = Xchat::get_info(server); # si le message n' est pas un message en PV, alors on affiche le message dans l' onglet general du serveur if($_[0][2] ne Xchat::get_info(nick)){ Xchat::print("Chan:$_[0][2]::$_[0][0]::$_[1][3]\r\n", $netw, $serv); } } # On retourne toutes les infos pour que l' evenement suive son cours... return Xchat::EAT_NONE; } #lorsque l' on est away et que l' on recois une notice, on l' affiche egalement dans l'onglet general du serveur sub cmd_not{ my ($netw, $serv); $netw = Xchat::get_info(network); $serv = Xchat::get_info(server); Xchat::print("NOTICE::Chan:$_[0][2]::$_[0][0]::$_[1][3]\r\n", $netw, $serv); return Xchat::EAT_NONE; } # Au demarrage du script, on indique que le script est chagé. Xchat::print("Script perl chargé !");
Je suppose qu'au bout de tant de temps tu t'en fiches un peu mais
je pense que cela vient de ta version d' Xchat. En effet, comme je l'ai indiqué
dans l'introduction, j'utilise la nouvelle librairie, fournie avec Xchat 2.0.8 ou sup.
Peut-être le problème vient-il de là ?
genial le script mais chez moi perso il ne va pas :D
Il m'indique ceci et vu que je ne connais pas le perl je ne vois pas :)
Error in command callback Undefined subroutine &Xchat::Script::cdcdc::sprint_f called at (eval 11) line 75.
TEBECO :
- 1 Je parlais comme l' a si bien fait remarquer UAIP des sources de CE site.
- 2 Je sais encore utiliser un moteur de recherches, merci de t' en soucier.
- 3 Si tu as un commentaire sur ma source plutôt que sur le titre, la description, le nombre de ligne, mes fautes d' orthographes, mon pseudo ou autre chose qui - au final - ne m' intéresses pas trop, je suis preneur...
Merci quand même d' avoir pris du temps pour t' intéresser a ma publication. A moins que tu ne te sois arrêté à la description ?
UAIP : Oui, en effet, de toute facon il va falloir que je me penche sur l' extraction du nom de l' auteur de l' envoie du msg, parce que c' est visuellement assez lourd l' affichage - host compris - de l' utilisateur... Si en plus le script est plus rapide, ce ne sera que tout benef...
Au passage, si qqun a une idée sur le genre de fonction utile que je pourrais rajouter au script, ou une optimisation du code ... je suis preneur, je suis un peu rouillé en perl ...
Et est-ce que qqun sait utiliser la lib tkx ? je voudrais afficher les messages dans une fenêtre plutôt que dans l' onglet général du serveur, mais en utilisant Tk, le script bloque Xchat complètement lors de l' instruction MainLoop(); ... :-s
Merci
xD dommage que la recherche soit pas fructueuse plutôt :
http://xchat.org/cgi-bin/disp.pl
le site même du client est probablement un des plus fournit en exemple de code
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.