====== 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 ====
* [[http://mrhide.eu/f/michbot0.2.tar.bz2|MichBot 0.2 (Linux32b)]]
===== 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 :
"highlight_nicks": []
==== Créer un bind ====
Il suffit d'ajouter un objet **bind** dans le tableau **binds** :
"binds": [
{
"bind": "!help",
"action": "PRINT",
"args": ["Notre forum : http://leetteam.org/forum"]
}
]
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 ====
{
"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]}
]
}