|
ft_IRC is a 42 school team project where you need to recreate from scratch an IRC server, according to the . Coding in C++98, this server should follow the standard protocols such as RFC 2812 and RFC 1459. |
Status = 95/100% finished
All bonuses
There are two types of requirements: mandatory and bonus.
- Handle several client simultaneously without blocking
▶️ Tested with 100+ connexions - Using a reference client with no errors
▶️ We chose Hexchat - Provide user authentification, channel management and operators
- Handle packet concatenation
- Reproduce the comportment of an official IRC server, following the standard protocols, on the commands available
- File sending works
- Creating a bot
Clone the repository and enter it :
git clone https://github.com/sponthus/IRC
cd IRC
makeFrom the project directory, enter :
./ircserv [port] [password]During execution, you will have access to the server logs.
By default, the server will be hosted at localhost:[port].
PASSallows you to enter server passwordNICKallows you to give your nickname or change it laterUSERallows you to give your usernameJOINallows you to join 1 or more channel(s), or create them if they don't existPARTallows you to leave 1 or more channel(s)PRIVMSGallows you to send a message, to a channel or a specific nicknameKICKallows you to kick someone from a channelINVITEallows you to invite someone to a channel you're inTOPICallows you to either see the topic of a channel, or change itWHOwith a channel, allows you to see who is connected on a channelMODEwith options to add/remove:i: invitation only channelk: key-protected channelo: add/remove operator privilege on channell: user limit on channelQUITleaves the server, you can add a message
The bot can be launched with :
./QuestBot [port] [password]Where port is the port of the server at localhost, and the password from the IRC server.
This bot creats its own channel, or joins it if already existing, and starts asking random questions if players are connected to the channel. He recognizes the answers given. You will have access to the bot logs during execution.
You will find an example of questions the bot can learn at /capitals.txt. Questions can be formatted by following:
- Begins with
theme=[theme] - Followed by questions formatted as :
[question ?]|[answer(s)] - You can add 1 or more answers, using :
[answer1]/[answer2]/... - Answers accepted will include capitalized or non-capitalized answers You can teach questions to the bot by using :
LEARN [question_file]In the bot program.
Made by endoliam and sponthus
