//----------------------------------------------------------------------------- // IGC - Invectory Games - IRC Service // Copyright (c) Invectory Games 2004 // Written by Simon Mattes (ZeroSky) // // IGC is property of it's respective owner. // You are not allowed to redistribute any files of IGC! // // *** http://server.Invectory.com/IGC/ *** ZeroSky@Invectory.com *** //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- // Features: //----------------------------------------------------------------------------- IGC is a pretty powerful IRC bot system, which provides many features: *** Written in C++ and for Windows32 *** IGC doesn't need a passwords system, it uses your QAuth :) *** IGC uses a home and a debugchannel; debugchannel is joined by all bots, homechannel by the mainbot only *** NEW VERSIONS RUN AS A HIDDEN PROCESS | CONSOLE CAN STILL BE ALLOCATED/DEALLOCATED *** All bots run in one process, that keeps CPU usage low and allows you to command any bot, the command is redirected to the right one. *** Global access levels and local channel levels on each bot *** Ability for Master Technicians to add bots in real-time through IRC *** Transparence for global and local channel levels. *** Restart/Terminate functionality *** IGC tries to prevent to excess flood: *** - All notices are sent by random bots to share the message traffic *** - Intelligent message buffer system with byte limit (puts mode commands together like +oCvosl nick0 nick1 nick2 1024) *** - Deactivation of several netsplit critical systems if a huge netsplit occures *** As mentioned, the message queue to prevent excess flood (read clearbuffer) *** Auths system for all bots, to add/remove/set botauths through IRC *** Netsplit detection *** Common error reports *** Emergency pong, prevents ping timeouts (sync command) *** Clearbuffer command *** Uptime command for both service and bots uptime *** Standard bot features such as (auto)op, (auto)voice, kick, ban, ... *** Time ban system (bans are removed after 10 minutes) *** Keeps bans of the bot (if any1 removes such a ban, a bot restores it) *** Queue system for requesting bots with !remove #channel command in homechannel *** Global blacklist system for user auths / hostmasks / channels with expirations (if a user using such a Q auth joins a channel a IGC bot is on, he get's auto kick banned) / (same but with hostmaks/userroots) / (if channel, the channel can't request a bot) *** Ability to suspend channels (after a channel becomes blacklist the bot parts it and stays out of it until the blacklist item expires) *** Global broadcast to all joined channels *** Additional performlist file with wildcard parameters *** Identifiers %n, %p for channel welcome messages; %n is replaced with user's nickname, %p with channelpeak *** Extended whois command *** Many debug options such as check op, channel status, user status, bots status, ... *** Features to let the bot perform usual channel operations (set topic, set key, set limit, ...) *** Chanflags such as bitch mode, protect mode, massvoice, keep topic, dynamic limit (prevents from join-floods), flood protect, ... *** Chanlev system, to add any Q authed user to a channel with a level *** Flood protect system, if chanflag +f (flood protect) is activated *** Keeps banned users out of channels (like Q does, if users join by beeing invited) *** Offers the 'peak-command' to record channel user peak *** Anti throttling system *** Raw command for debuging *** FTP functionality for file upload *** There are many more features not mentioned here, just launch IGC and find them on your own :p //----------------------------------------------------------------------------- // How to start IGC //----------------------------------------------------------------------------- First you've got to setup a config folder, therefore use the Standard folder (copy it or use this one) and alter the following files: - IGC_Config.ini: => Insert the name of a mainbot, setup the server address, ... - IGC_Users.cfg: => Setup the first administrator accout, syntax is: ' 6 0' (without brackets) [For instance: 'ZeroSky 6 0'] 6 is the userlevel (6 = admin), 0 is a system used parameter for inactivity detection. - IGC_PerformList.txt: => You might also wanto setup some perform commands (RAW commands) syntax is: ' ' (without brackets) can be the following: - A botname (case insensitive) - '*' for all bots - '#number' (as '#128' for the 128th service bot (mainbot is bot number 0)) An additional useful variable is '%nick%' (is replaced by bots nick later) - All the other files are used exclusively by the system and updated while run. Parameters to start IGC ======================= IGC no longer requires any paramerters to run. Run IGC ======= To run IGC simply execute IGC.exe To enable console debugging execute ShowConsole.bat To hide console execute HideConsole.bat For a local termination Terminate.bat //----------------------------------------------------------------------------- // Global User Levels: //----------------------------------------------------------------------------- 6 - Administrator 5 - Master Technician 4 - Technician 3 - Helper 2 - Service Friend 1 - Normal User 0 - No Access //----------------------------------------------------------------------------- // Channel User Levels: //----------------------------------------------------------------------------- 5 - Owner 4 - Master 3 - Operator 2 - Voice 1 - Friend 0 - No Access //----------------------------------------------------------------------------- // Special thanks to: //----------------------------------------------------------------------------- - DarkDeviL, DragonII and all the friendly StayNet operators who gave me oper help - StayNet for a trust and the possibility to host the bots - The beta-testers Huru and phoenix/Xenotic - Special thanks to X-LP for beta tests, longtime hosting of the bots and all the suggestions - Additional thanks to PibbZ/PbZ for further help and support on Quakenet ;)