jed
First commit, but the bot is already quite advanced
merged all files into a single lycanobot.pl due to including problems.
fixed some minors bugs
* Added a local file system for configuring the bot
* Added the !reveal command
* Changed the keys for the users db, now use nick instead of irc name
* Fixed psychic phase, now working
* Added a function to kill, kill_ply
* Some bug fixes
now compiles properly ... :|
* removed the local config system - broken
* the bot now tries at least to join $night_channel if it hasn't done it when starting a new game
* merged the voice_* functions into voice_them
* added op/voice tracking
* handle multiple voice (such as +vvv)
* many bug fixes that make a game more or less playable :)
* implemented functionnal $speed_talk
* now handle kicks events
* now invite werewolves _after_ kicking them
* now checks if joined _before_ if opped while starting a game
* announce possible targets to the werewolves
* secured cmd_vote, now prints your vote, some bug fixes
* announce any existing phase-timeout
* handle "zombies", dead persons messages (if they are op they can talk)
* now keeps +n channel mode by default
* truncated some long messages
* some other little bugs fixed
* Added the local config file system,
  with a sample one generated if it's missing
* Timeouts are no more constants, it will be able
  to change them while in game nextly
* New command : "stop", to stop a running game
* Added the admins system, their names are stored in
  the config file and they can start/stop a game
* Minor bug fixes and code cleanup
* Updated to vs 0.1.0, many changes :)
* Added a send buffer & rate control system, the bot do not flood anymore
* The bot now know which modes are sets in a channel, and avoid setting the ones that are already sets
* The bot now sets channels modes at start only and leave them forever
* More precise output : lines prefixed by "->" are bot's side stuff, "*" ones are events from the server, and "#" are warning and errors
* Phases are now strings instead of numbers (bcs used in %timeout)
* Added per-command attributes which restricts and describes each cmd (with several sentences randomly choosen :)
* Added the sorcerer and all the stuff it implies
* When announcing the dead players in the morning, the bot now begins with the werewolf victim, then others killed, and then the cured player
* The phase timer nows begins when the bot said his last sentence ("You have %i seconds"), instead of the *phase* beginning
* Multiples games, start and stop commands fully working (or at least better than before)
* Announcement of possibles command arguments choices, if a player name must be given
* Added a TODO list
* Some bugs fixes & code clean up
* Upgraded to vs 0.1.1
* Using more precise timer using Time::HiRes if available
* Added $max_mode_params
* Checks for mandatory config vars
* Added a help about each job which is said at the beginning
* New commands :
  - tutorial command to (un)set the helps messages in game
  - settimeout and showtimeouts commands to change phases timouts in game
  - setcards and showcards to set the special cards that have to be used
  - help, self explicit
* The bot doesn't start a new game if there are no werewolves (too much
  special cards)
* Improved voting calculation : now checks for absolute/relative majority
  and equal votes (no more random choices)
* Werewolves now die of hunger if they cannot decide who they'll eat >:)
* $num_werewolves, $num_villagers and $num_werewolves are no more globals
  but recalculated in each sub
* Decreased to main loop speed ($irc->timeout()) to 0.20, a bit more efficient
* Minor bug fixes & code clean
Forgotten pre-commit code clean :/
Code cleaned (max 80 chars per line) and divided into several files
Translation system created.
All the english messages moved to messages/messages-en.pl.
Template messages file at messages/template-messages.pl.
* Improved translation system
* fr language added
* some bugs fixed
* Really added the fr messages file
* A little bug fix
* Changed the database and users managment :
  - splitted %userlist into %chanusers (for IRC-related informations)
    and %userlist (for static users information)
* Now a player is considered alive if $players{$nick}{'alive'} is 1, and the
  $players{$nick} hash always exists. We use alive_players() to get the alive
  players instead of keys(%players).
* Removed the unused 'ready' key in %players
* Moved $messages{'cmds'}{'fate'}{'already_dead'} to a general
  messages{'errors'}{'dead_ply'}
* Added the ignore command, to make the bot ignore users on the channel
* Added a need_alive mandatory options for all the commands
* Code clean in on_public
* Forget hooks.pl and admin.pl at last commit
* Added some missings '\' before the $messages{...}{...}
* Fixed crash while werewolves die of hunger
* Also now announce the sorcerer's victim
Messages for the ignore cmd, some moves and corrections