====== Introduction ====== rr4botz2 est un bot IRC écrit en C++ chargeant des scripts [[Lua]]. Il conserve une liste des utilisateurs des canaux et permet aux scripts de réagir à certaines actions, comme un message sur un canal ou en privé. ====== Fonctions disponibles depuis Lua ====== En plus de la lib standard Lua, le bot dispose des fonctions suivantes pour intéragir avec le bot : * say(chan, texte) : dit //texte// sur le canal //chan//. Exemple : %%say("#bots", "hello world")%% * send_command(commande) : envoie la commande IRC //commande// au serveur. Exemple : %%send_command("MODE #bots +v eggdrop\n")%% * log(type, texte) : log la chaîne //texte//. //type// doit être "error", "warning" ou "info". Exemple : %%log("warning", "probleme !")%% * register_onchannelmsg(func, regex) : enregistre la fonction //func// pour être appelée si une chaîne correspondant à la //regex// est prononcée sur un canal. La fonction //func// prend en paramètre le nom du canal, le nick de l'utilisateur qui a parlé et le texte prononcé. * register_onaction(func, action) : enregistre la fonction //func// pour être appelée lorsque l'action //action// est effectuée. //action// peut être "join", "part" ou "quit". //func// reçoit en paramètre le nom du canal, l'action, le nick de l'utilisateur et un éventuel argument (sauf pour join). * register_onchannelupdate(func) : enregistre la fonction //func// pour être appelée périodiquement, à chaque mise à jour des informations sur le canal. //func// reçoit en paramètre le nom du canal. * load_module(script) : charge le module //script//. //script// doit être un script Lua valide. Retourne true ou false suivant si le module a pu être charé ou non (l'erreur éventuelle est loggée). * unload_module(script) : décharge le module //script// s'il était chargé. Ne retourne rien. **Attention** : vous ne devez jamais déchargé le module courant ! * get_nick() : retourne le nick du bot. * get_chan(chan) : si le canal //chan// est connu du bot, retourne une table contenant des informations. Le champ users contient la table des utilisateurs sur le canal sous la forme //nick// -> //mode//, où mode est "normal", "voice", "halfop", "op", "protect" ou "owner". Si vous avez besoin d'autres fonctionnalités, n'hésitez pas à me contacter ([[remram44]]). La prise en charge d'autres langages de script n'est pas envisagée. ====== Récupérer rr4botz2 ====== [[http://remram44.free.fr/hyper/rr4botz2.zip|Archive au format ZIP]] ====== Compiler rr4botz2 ====== Vous aurez besoin de Lua, pthread et des sockets (fournies par la lib wsock32 sous Windows). Le projet, bien que prévu à l'origine pour fonctionner sous Linux, compile et tourne parfaitement sous Windows (testé avec MinGW).