Created by: Chris Woodward
The IRCBot is designed to provide an all-in-one solution for those who wish to run an IRC bot easily. It includes many useful features as well as fun games. It can even be used as your personal client!
- Channel Moderation
- Custom Access Levels
- Full GUI Interface
- Console Interface
- Bot API for making custom interfaces
- Owner Control Functions
- Automatic nick registration
- Ghost on Nick in Use
- Flood Protection
- 4chan thread/reply viewing and searching
- URL/file parsing
- Google Search
- Wolfram Alpha Search
- SED
- Ping Requests
- Last Seen Nick
- Channel Rules
- Weather and Forcasts
- Magic 8ball
- Pass the Hbomb game
- Fun commands
- Chat Protocol (A.L.I.C.E.)
- Channel Roll Call
- Version Checker
- Idle
- Dice Rolls
- GitHub issue submission
- Full logging support
- Custom Alarms
- Surveys
- Download the Release.zip from the latest release in https://github.com/uncled1023/IRCBot/releases and extract the files to a directory of your choice.
- Run IRCBot-GUI.exe or IRCBot-Console.exe
- Install mono and libgdiplus packages.
- Download the Release-Mono.zip from the latest release and extract the files to a directory of your choice.
- config/servers.xml contains all the server settings for the bot. Edit the default server and add more if you want.
- config/modules.xml contains all the module config settings. It is usually a good idea to separate them into separate folders/files for each server. You specify the modules.xml file in the server config.
- Open a terminal emulator and cd it to the directory with the IRCBot-Console.exe.
- Type:
mono IRCBot-Console.exe
- Current Limitations: Does not display any output, some functions may not work, buggy.
When you first start up the IRC Bot, you will need to add your details into the configuration. You can do this one of two ways: By using the configuration manager in tools, or by editing the config.xml directly in the /config/ folder. The first is preferred as to reduce the chance of messing up the configuration file.
After clicking tools->configuration, you will then be presented with the configuration manager. From here, you can Add a new server, and configure bot settings
Once you have added your server, just click "Connect" and if you entered your configuration correctly your bot will then connect to the server and channels you specified. Adding a Server
To add a new server, click the "Add Server" button in the Configuration window. The required fields are as follows:
| Property | Format | Default Value |
|---|---|---|
| Server Name | string | |
| Server Address | irc.hostname.net | |
| Port Number | int32 | 6667 |
| Name | string | |
| Nick | string |
Each server has it's own settings for the Modules and Commands within the modules. You also can control the access level for each XOP level within the Op Levels Configuration tab.
Each command has the following properties:
| Property | Format |
|---|---|
| name | string |
| description | string |
| triggers | comma separated string array |
| syntax | string |
| access_level | int32 |
| blacklist | comma separated string array |
| show_help | boolean |
| spam_check | boolean |
fortuneDisplays a fortune.
Usage:fortune
-
triviaStarts a new game of trivia.
Usage:trivia -
stoptriviaStops a running game of trivia.
Aliases:strivia
Usage:stoptrivia -
scoresDisplays the top 10 scores.
Usage:scores -
scoreShows your current rank and score.
Usage:score
-
4chanViews a specific thread ID or OP number of a board, or a list of boards on 4chan.
Usage:4chan [{board}] [{(#)thread_ID|OP_index}] [{(#)reply_ID|reply_index}] -
next_threadDisplays the next OP on the current board.
Aliases:nt
Usage:next_thread -
next_replyDisplays the next reply on the current thread.
Aliases:nr
Usage:nr -
4chansearchSearchs a specific board for a thread that contains the specified query.
Aliases:4chs,4cs,4chans
Usage:4chansearch {board} {query}
isitupChecks if the web address specified is accessible from the bot.
Aliases:isup
Usage:isitup {url}
pingmeGets the ping time between the bot and the client requesting the ping.
Usage:pingme
seenDisplays the last time the nick has been seen in the channel.
Usage:seen
-
setaccessAdds the specified nick to the access list with the specified level.
Aliases:addaccess
Usage:setaccess {nick} {access_level} -
delaccessRemoves the specified access level from the nick.
Usage:delaccess {nick} {access_level} -
listaccessLists all the users with access on the channel and their level.
Aliases:accesslist
Usage:listaccess -
getaccessDisplays the current access level of a user.
Aliases:access
Usage:getaccess [{channel}] {nick}
-
founderSets the nick to Owner of the chan.
Usage:founder {nick} -
defounderUnsets the nick as Owner of the chan.
Usage: `defounder {nick} -
asopAdds the nick to the Auto Super Op List.
Usage:asop {nick} -
deasopRemoves the nick from the Auto Super Op List.
Usage:deasop {nick} -
sopSets the nick as Super Op.
Usage:sop {nick} -
desopRemoves the nick as Super Op.
Usage:desop {nick} -
aopAdds the nick to the Auto Op List.
Usage:aop {nick} -
deaopRemoves the nick from the Auto Op List.
Usage:deaop {nick} -
opSets the nick as an Op.
Usage:op {nick} -
deopRemoves the nick as an Op.
Usage:deop {nick} -
ahopAdds the nick to the Auto HOP List.
Usage:ahop {nick} -
deahopRemoves the nick from the Auto HOP List.
Usage:deahop {nick} -
avoiceAdds the nick to the Auto Voice List.
Usage:avoice {nick} -
deavoiceRemoves the nick from the Auto Voice List.
Usage:deavoice {nick} -
modeSets or unsets a channel mode.
Usage:mode +/-{flags} -
topicSets the channels topic.
Usage:topic {topic} -
inviteInvites the specified nick into the channel.
Usage:invite {nick} -
akAdds the specified nick to the auto kick list.
Usage:ak {nick} [{reason}] -
abAdds the specified nick to the auto ban list.
Usage:ab {nick} [{reason}] -
akbAdds the specified nick to the auto kick-ban list.
Usage:akb {nick} [{reason}] -
deakRemoves the specified nick to the auto kick list.
Usage:deak {nick} [{reason}] -
deabRemoves the specified nick to the auto ban list.
Usage:deab {nick} [{reason}] -
deakbRemoves the specified nick to the auto kick-ban list.
Usage:deakb {nick} [{reason}] -
hopSets the nick as Half Op.
Usage:hop {nick} -
dehopRemoves the nick as Half Op.
Usage:dehop {nick} -
bBans the specified nick.
Usage:b {nick} -
ubUnbans the specified nick.
Usage:ub {nick} -
clearbanClears all the bans in the channel.
Usage:clearban -
kbBans and then Kicks the specified nick.
Usage:kb {nick} [{reason}] -
tbBans the specified nick for the amount of time specified.
Usage:tb {ban_time} {nick} [{reason}] -
tkbBans and then Kicks the specified nick for the amount of time specified.
Usage:tkb {ban_time} {nick} [{reason}] -
kKicks the nick from the channel.
Usage:k {nick} [{reason}] -
voiceSets the nick as Voiced.
Usage:voice {nick} -
devoiceRemoves the nick as Voiced.
Usage:devoice {nick} -
kmeKicks the requesting nick from the channel.
Usage:kme
-
ownerIdentifies the nick as the Bot's Owner.
Usage:owner {password} -
addownerAdds the defined nick as an owner.
Usage:addowner {nick} -
delownerRemoves the defined nick from the owners list.
Usage:delowner {nick} -
nickChanges the Bot's nickname to the one specified.
Usage:nick {new_nick} -
idHas the Bot identify to nickserv.
Usage:id -
joinTells the Bot to join the specified channel.
Usage:join {channel} -
partTells the Bot to part the channel.
Usage:part [{channel}] -
sayHas the Bot say the specified message to the channel.
Usage:say [{channel}] {message} -
actionDisplays the specified message as an action in the channel.
Alternate Commands:me
Usage:action [{channel}] {message} -
queryPrivate messages the specified nick.
Usage:query {nick} {message} -
quitQuits the server instance.
Usage:quit -
quitallQuits all of the connected server instances.
Usage:quitall -
cycleRestarts the server instance.
Usage:cycle -
cycleallRestarts all of the connected server instances.
Usage:cycleall -
exitCloses the client.
Usage:restart -
restartRestarts the client.
Usage:restart -
ignoreAdds the specified nick/chan to the ignore list.
Usage:ignore {nick|channel} -
unignoreRemoves the specified nick/chan from the ignore list.
Usage:unignore {nick|channel} -
ignoremoduleAdds the specified nick/chan to a modules ignore list.
Usage:ignoremodule {module} {nick|chan} -
unignoremoduleRemoves the specified nick/chan from a modules ignore list.
Usage:unignoremodule {module} {nick|chan} -
ignorecmdAdds the specified nick/chan to a commands ignore list.
Usage: `ignorecmd {command} {nick|chan} -
unignorecmdRemoves the specified nick/chan from a commands ignore list.
Usage:unignorecmd {command} {nick|chan} -
blacklistAdds the specified channel to the bot blacklist.
Usage:blacklist {channel} -
unblacklistRemoves the specified channel from the bot blacklist.
Usage:unblacklist {channel} -
updateUpdates the Modules and Configurations on all server instances.
Usage:update -
modulesDisplays the loaded modules.
Usage:modules -
loadmoduleLoads the specified module into the bot.
Aliases:load,addmodule
Usage:loadmodule {module_class_name} -
delmoduleUnloads the specified module from the bot.
Aliases:unload,unloadmodule
Usage:delmodule {module_class_name} -
addchanInvites the bot to a specified channel.
Usage:addchan {channel} -
addchanlistAdds the specified channel to the auto-join list.
Usage:addchanlist {channel} -
delchanlistRemoves the specified channel to the auto-join list.
Usage:delchanlist {channel} -
nicklistLists the nicks in the current channel or specified one.
Aliases:nicks
Usage:nicklist [{channel}] -
channelsLists the channels the bot is in on that server.
Usage:channels -
serversLists the servers the bot is connected to.
Usage:servers -
confLists the bot's current configuration settings.
Usage:conf [module_config] -
resourcesDisplays the current CPU and RAM used by the bot.
Usage:resources -
clearKicks everyone from the channel except the initiator and the bot.
Usage:clear [{channel}]
helpDisplays the modules available to the nick. Viewing a specific module shows the commands. Viewing a specific command shows the command properties.
Usage:help [{module}] [{command}]
-
rulesDisplays the channel rules.
Usage:rules -
addruleAdds the specified rule to the end of the channel rules.
Usage:addrule {rule} -
delruleRemoves the specified rule from the channel rules.
Usage:delrule {rule_number}
-
messageLeaves a message for the specified nick. Will be delivered once the nick joins or speaks in a channel the bot is in.
Aliases:msg
Usage:message {nick} {message} -
anonmessageLeaves a message for the specified nick without displaying the sender's nick. Will be delivered once the nick joins or speaks in a channel the bot is in.
Aliases:amsg,anonmsg
Usage:anonmessage {nick} {message}
-
introAdds a personal greeting for whenever you enter the channel.
Usage:intro {greeting_1|greeting_2} -
introdeleteDeletes your introductions for that channel.
Aliases:delintro,deleteintro
Usage:introdelete
quoteDisplays a random quote from the channel. If a nick is specified, it will get a quote from that nick.
Usage:quote [{nick}]
-
weatherDisplays the current weather conditions for the specified city.
Aliases:w
Usage:weather {zip_code|city_name} -
forecastDisplays the weather forecast for the specified city.
Aliases:f
Usage:forecast {zip_code|city_name}
googleDisplays the first result from Google.
Aliases:g
Usage:google {query}
8ballAnswers any yes/no question.
Usage:8ball {question}
-
hbombInitiates a new game of pass the HBomb.
Usage:hbomb -
passPasses the HBomb to the specified nick.
Usage:pass {nick} -
lock_bombLocks the bomb to the current holder, or passes it and then locks it.
Aliases:lb
Usage:lock_bomb [{nick}] -
unlock_bombUnlocks the bomb from the current holder.
Aliases:unlb
Usage:unlock_bomb -
set_bombSets the bomb holder to the specified nick.
Aliases:sb
Usage:set_bomb {nick} -
detonateDetonates the current active bomb.
Usage:detonate -
stop_bombStops the bomb without it blowing up.
Usage:stop_bomb -
defuseCuts a wire of the HBomb. If it is the correct wire, it will defuse the bomb and kick the previous holder. If not, it will detonate.
Usage:defuse {wire_color}
-
loveSends some love to the specified nick or requesting nick.
Usage:love [{nick}] -
hugSends a hug to the specified nick or requesting nick.
Usage:hug [{nick}] -
slapSlaps the specified nick or requesting nick.
Usage:slap [{nick}] -
botsChecks in to the channel.
Usage:bots -
brResponds with HUEHUEHUE.
Usage:br -
netTalks about the quality .NET Framework.
Usage:net
-
addresponseAdds a new response to the dictionary.
Usage:addresponse {allowed_chan}[,{allowed_chan}]:{trigger}[|{trigger}]:{response}[|[response}] -
delresponseRemoves the specified response from the dictionary.
Usage:delresponse {response_number} -
listresponseLists all of the responses in the dictionary.
Usage:listresponse
stopchatStops the bot from chatting in that channel.
Usage:stopchat
-
pollCreates a poll in the channel.
Usage:poll {question}|{answer}[|{answer}...] -
addanswerAdds an answer to the active poll.
Usage:addanswer {answer} -
delanswerRemoves the specified answer from the active poll.
Usage:delanswer {answer_number} -
stoppollStops the active poll and displays the results.
Usage:stoppoll -
resultsDisplays the results of the current poll.
Usage:results -
voteVotes for the specified answer.
Usage:vote {answer_number}
rollcallDisplays every nick in the channel.
Usage:rollcall [{channel}]
verSends a version request and displays the response.
Usage:ver {nick}
-
idleSets you as idle. Protects from certain games and actions.
Usage:idle -
deidleReturns you from idle.
Usage:deidle
rollRolls a specified number of dice with certain s amount of sides and displays the results.
Usage:roll [{number_of_dice}] [{number_of_sides}]
waReturns the results of your query from Wolfram Alpha.
Usage:wa {query}
-
bugCreates a new issue with a ''Bug'' label.
Usage:bug {title}[|{description}] -
requestCreates a new issue with a ''Issue'' label.
Usage:request {title}[|{description}]
-
aboutDisplays the bots current version, creator, and owners.
Usage:about -
sourceDisplays the url for the source code of IRCBot.
Usage:source -
uptimeDisplays how long the bot has been connected to the server.
Usage:uptime -
runtimeDisplays how long the bot program has been running.
Usage:runtime
lastDisplays information of the usage of specified commands.
Usage:last [{command}] [{nick}] [{number_of_results}]
alarmSets an alarm for the time specified.
Usage:alarm {time} {message or command}
-
surveyStarts a survey session for the requesting nick.
Usage:survey {survey_number} -
surveysLists all available surveys, nicks who have taken the specified survey, or answers of the specified nick for the specified survey.
Usage:surveys [{survey_number}] [{nick}] -
nextquestionSubmits your entered text as an answer and displays the next question.
Usage:nextquestion -
addsurveyBegins the add new survey wizard.
Usage:addsurvey {survey_access_level} {survey_name} -
delsurveyDeletes the specified survey.
Usage:delsurvey {survey_number} -
finishsurveyFinalizes the submitted survey and adds it to the list.
Usage:finishsurvey -
cancelsurveyCancels the current survey and erases the answers.
Usage:cancelsurvey -
addsurveyownerAdds an owner to the specified survey.
Usage:addsurveyowner {survey_number} {new_owner}[,{new-owner}] -
delsurveyownerDeletes an owner to the specified survey.
Usage:delsurveyowner {survey_number} {owner}[,{owner}]
Please report all bugs you find to me so I can fix them as soon as possible. Also if you have any feature requests, feel free to send them to me as well.
Email: [email protected]
IRC: (irc.teknik.io)#IRCBot
Nick: Uncled1023
Cameron Lucas
