====== MichBot ====== //Irc Bot for clans// MichBot est un bot IRC concu par un joueur pour les joueurs.\\ Il se base sur les libs [[misc:gamestat2|gamestat2]], [[http://libircclient.sourceforge.net/|libircclient]] et [[https://sourceforge.net/projects/cjson/|libcJSON]]. ===== Fonctionnalités ===== * Fichier de configuration JSON * Commandes basées sur l'écriture de binds * Commandes génériques avec arguments * Query de plus d'une centaine de serveurs FPS * Query des serveurs Mumble * Query des serveurs Minecraft ===== RoadMap ===== * Query des serveurs TS3 (possible ? le port query sera nécessaire) * Afficher des message sur les erreurs * i18n (ajout d'un fichier json) * Système de plugins avec dlopen ===== Bugs ===== * Le bot ne se déconnecte pas correctement (irc_cmd_quit ne fonctionne pas). * Si le bot est muté, il crash dès qu'il tente de parler. * Incapable de se reconnecter en cas d'EOF ou de netsplit //Pour rapporter un bug : envoyez un mél à **hideCHEZmrhide.fr**// ===== Téléchargement ===== ==== Release stable ==== * [[http://mrhide.eu/f/michbot0.4.tar.bz2|MichBot 0.4 (Linux32b)]] ==== old ==== * <del>[[http://mrhide.eu/f/michbot0.2.tar.bz2|MichBot 0.2 (Linux32b)]]</del> ===== Configuration JSON ===== La syntaxe du fichier de configuration est le [[http://json.org/|JSON]], normalisé et simple à appréhender ==== Pas de HL sur les connexions ==== Il suffit de mettre un tableau de nicks vide : <code javascript> "highlight_nicks": [] </code> ==== Créer un bind ==== Il suffit d'ajouter un objet **bind** dans le tableau **binds** : <code javascript> "binds": [ { "bind": "!help", "action": "PRINT", "args": ["Notre forum : http://leetteam.org/forum"] } ] </code> Le champ //"bind"// contient le bind qui sera parsé dans l'IRC. //"action"// détermine la fonction appelée par le bind, chaque fonction admet un certain nombre de paramètres(//"args"// qui DOIT être un tableau) qui sont d'un certain type, si l'argument est **null**, le bot s'attendra à ce qu'ils soit transmit en paramètre Les fonctions disponibles sont : ^ fonction ^ arguments ^ description ^ | PRINT | "chaine à afficher" | Affiche un message | | Q_SRV | "chaine contenant l'IP du serveur", port du serveur(uint), [[misc:gamestat2#liste_des_jeux_geres|type du serveur(uint)]] | Query un serveur de jeu | | Q_MUMBLE | "chaine contenant l'IP du serveur", port du serveur(uint) | Query un serveur mumble | | Q_MC | "chaine contenant l'IP du serveur", port du serveur(uint) | Query un serveur minecraft | ==== Exemple de configuration ==== <code javascript> { "bot_name": "MichBot", "irc_addr": "irc.quakenet.org", "irc_port": 6667, "irc_channel": "#l33t", "join_message": "Hi folks !", "quit_message": "Bye folks !", "highlight_nicks": [ "LeetMember1", "LeetMember2", "..." ], "highlight_nicks_format": "Hi %s <3", "binds": [ {"bind": "!help", "action": "PRINT", "args": ["CMDLIST : !priv !pub !mumble !mc [!srv !qmumble !minecraft !about]"]}, {"bind": "!about", "action": "PRINT", "args": ["See : http://mrhide.eu/dokuwiki/doku.php?id=misc:michbot"]}, {"bind": "!srv", "action": "Q_SRV", "args": [null, null, null]}, {"bind": "!qmumble", "action": "Q_MUMBLE", "args": [null, null]}, {"bind": "!mumble", "action": "Q_MUMBLE", "args": ["mumble.leetteam.com", 64738]}, {"bind": "!priv", "action": "Q_SRV", "args": ["pubsrv.leetteam.com", 30000, 74]}, {"bind": "!pub" , "action": "Q_SRV", "args": ["privsrv.leetteam.com", 10000, 74]}, {"bind": "!mc", "action": "Q_MC", "args": ["mc.leetteal.com", 25565]}, {"bind": "!minecraft", "action": "Q_MC", "args": [null, null]} ] } </code>