Outils pour utilisateurs

Outils du site


misc:michbot

MichBot

Irc Bot for clans

MichBot est un bot IRC concu par un joueur pour les joueurs.
Il se base sur les libs gamestat2, libircclient et 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

old

Configuration JSON

La syntaxe du fichier de configuration est le 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), 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]}
	]
}
misc/michbot.txt · Dernière modification: 2011/12/07 11:25 par mrhide