FFA/FFABot

From Armagetron

FFABot

I have finally finished creating this resource for anyone wishing to organize a FFA event. Below you will find more information on this IRC bot. If something isn't clear, feel free to message me here. For reference, the IRC bot automatically joins the channel #armagetron.tourneys (the place where captains should go to pick teams).

What is this for?

A problem with the FFA tournament is finding a fast, efficient way to have captains pick their players. By using this bot, that problem is eliminated. With little effort from an event organizer, this bot has the potential to maximize the convenience of organizing the tournament.

I'm interested. Can you teach me?

So, you're an event organizer and you'd like to know how to use this bot? Great! See this page: FFA/FFABot/Instructions.

Commands

How they are parsed

Commands are parsed by a splitting technique in C#. Here is an example.

What your message looks like in IRC:

Josh^: Hello, world!

What your message looks like to the FFABot:

:Hello, World!


Going more into detail than needed, just understand that the key to your command being properly interpreted is reliant on whether or not you input it correctly.

Josh^: $pick Jimmy

is NOT the same as

Josh^:  $pick Jimmy

Why? Because the FFABot doesn't remove the space in the beginning. It's picky. In general, just make sure you keep in mind you are working with a computer. Type accordingly. Don't type your commands mid-sentence and expect it to read your mind. Just be mindful. :)


Commands Available

Generally speaking, all of these commands may not be useful. They are merely implemented in the exclusive case that they are needed. For instance, a tournament organizer probably will never use the $addadmin command. But in the event they need help doing something and can't figure it out, they can "add" a new administrator to help them out. It has the potential to become helpful, so I implemented it now instead of when it is needed. Additionally, "enable" and "disable" may not have any immediate use. Just know they exist for a purpose. More in-depth knowledge of each command can be found on the FFA/FFABot/Commands page.

Administrators

 **Adding**
 $addrange <tronnicks>			//adds a range of players to the list (useful in first time adding from wiki, separated by spaces)
 $addplayer <tronnick>			//adds a player to the list
 $addcaptain <ircnick> <tronnick> 	//MUST already be added as player, otherwise use following ($addboth)
 $addboth <ircnick> <tronnick> 		//if not already added as a player, but wishes to be captain and player
 $addadmin <ircnick> <superiority>      //adds a user capable of utilizing admin commands. Superiority values are "true" or false". (see $removeadmin)

 **Removing**
 $removeall				//removes everyone from all lists (except the primary administrator)
 $removeplayer <tronnick>		//removes a single player (if player is captain, this will also remove them from the captains list)
 $removecaptain <ircnick>		//remove captain (removes from captain but remains player)
 $removeadmin <ircnick>			//remove an administrator (must have a superiority value of true to do this)

 **Misc. Commands**
 $disable <player>			//disables captain rights ($pick) *useful if you wish to pause the picking process to say something, simply disable the captain(s)*
 $enable <player>			//enables captain rights ($pick) 
 $enableall                             //enables all captains simultaneously
 $disableall                            //disables all captains simultaneously
 $captains				//view list of captains (enabled captains are green, disabled are red)
 $players                               //view a list of players that have not already been selected by a captain
 $start   				//initiate the picking process
 $who					//neatly displays list of all players not already assigned a team via $pick
 $help                                  //links the user to the documentation page

Captains

 $pick <player>				//selects a player from player pool and places it into captain's team (provided they aren't already picked)
 $who					//neatly displays list of all players not already assigned a team via $pick
 $help                                  //links the user to the documentation page

Other Information

Feedback

Please! If you have a suggestion, find a bug, have an idea, or any of the above: LET ME KNOW! This tool could very well have flaws. If you find any, simply tell me. I'll work towards fixing it ASAP.

Source

The source code for the project can be found on my GitHub page. For obtaining a compiled version of the program, you can see the FFA/FFABot/Instructions page.