The easy to use and full featured Irc Bot everyone is talking about!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

readme.md 18KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668
  1. # About IRCBot
  2. Created by: Chris Woodward
  3. 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!
  4. ## Feature Set
  5. * Channel Moderation
  6. * Custom Access Levels
  7. * Full GUI Interface
  8. * Console Interface
  9. * Bot API for making custom interfaces
  10. * Owner Control Functions
  11. * Automatic nick registration
  12. * Ghost on Nick in Use
  13. * Flood Protection
  14. * 4chan thread/reply viewing and searching
  15. * URL/file parsing
  16. * Google Search
  17. * Wolfram Alpha Search
  18. * SED
  19. * Ping Requests
  20. * Last Seen Nick
  21. * Channel Rules
  22. * Weather and Forcasts
  23. * Magic 8ball
  24. * Pass the Hbomb game
  25. * Fun commands
  26. * Chat Protocol (A.L.I.C.E.)
  27. * Channel Roll Call
  28. * Version Checker
  29. * Idle
  30. * Dice Rolls
  31. * GitHub issue submission
  32. * Full logging support
  33. * Custom Alarms
  34. * Surveys
  35. ## Installation - Windows
  36. 1) 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.<br>
  37. 2) Run IRCBot-GUI.exe or IRCBot-Console.exe
  38. ## Installation - Linux (Alpha)
  39. 1) Install mono and libgdiplus packages.<br>
  40. 2) Download the Release-Mono.zip from the latest release and extract the files to a directory of your choice.<br>
  41. * config/servers.xml contains all the server settings for the bot. Edit the default server and add more <server></server> if you want.<br>
  42. * 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.<br>
  43. 4) Open a terminal emulator and cd it to the directory with the IRCBot-Console.exe.<br>
  44. 5) Type: `mono IRCBot-Console.exe`
  45. * Current Limitations: Does not display any output, some functions may not work, buggy.
  46. ## Configuration
  47. 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.
  48. 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
  49. 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.
  50. Adding a Server
  51. To add a new server, click the "Add Server" button in the Configuration window. The required fields are as follows:
  52. <table>
  53. <tr>
  54. <th>Property</th><th>Format</th><th>Default Value</th>
  55. </tr>
  56. <tr>
  57. <td>Server Name</td><td>string</td><td></td>
  58. </tr>
  59. <tr>
  60. <td>Server Address</td><td>irc.hostname.net</td><td></td>
  61. </tr>
  62. <tr>
  63. <td>Port Number</td><td>int32</td><td>6667</td>
  64. </tr>
  65. <tr>
  66. <td>Name</td><td>string</td><td></td>
  67. </tr>
  68. <tr>
  69. <td>Nick</td><td>string</td><td></td>
  70. </tr>
  71. </table>
  72. 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.
  73. ## Command List
  74. Each command has the following properties:
  75. <table>
  76. <tr>
  77. <th>Property</th><th>Format</th>
  78. </tr>
  79. <tr>
  80. <td>name</td><td>string</td>
  81. </tr>
  82. <tr>
  83. <td>description</td><td>string</td>
  84. </tr>
  85. <tr>
  86. <td>triggers</td><td>comma separated string array</td>
  87. </tr>
  88. <tr>
  89. <td>syntax</td><td>string</td>
  90. </tr>
  91. <tr>
  92. <td>access_level</td><td>int32</td>
  93. </tr>
  94. <tr>
  95. <td>blacklist</td><td>comma separated string array</td>
  96. </tr>
  97. <tr>
  98. <td>show_help</td><td>boolean</td>
  99. </tr>
  100. <tr>
  101. <td>spam_check</td><td>boolean</td>
  102. </tr>
  103. </table>
  104. ### Fortunes
  105. * `fortune` Displays a fortune.<br>
  106. Usage: `fortune`
  107. ### Trivia
  108. * `trivia` Starts a new game of trivia.<br>
  109. Usage: `trivia`
  110. * `stoptrivia` Stops a running game of trivia.<br>
  111. Aliases: `strivia`<br>
  112. Usage: `stoptrivia`
  113. * `scores` Displays the top 10 scores.<br>
  114. Usage: `scores`
  115. * `score` Shows your current rank and score.<br>
  116. Usage: `score`
  117. ### 4chan
  118. * `4chan` Views a specific thread ID or OP number of a board, or a list of boards on 4chan.<br>
  119. Usage: `4chan [{board}] [{(#)thread_ID|OP_index}] [{(#)reply_ID|reply_index}]`
  120. * `next_thread` Displays the next OP on the current board.<br>
  121. Aliases: `nt`<br>
  122. Usage: `next_thread`
  123. * `next_reply` Displays the next reply on the current thread.<br>
  124. Aliases: `nr`<br>
  125. Usage: `nr`
  126. * `4chansearch` Searchs a specific board for a thread that contains the specified query.<br>
  127. Aliases: `4chs`, `4cs`, `4chans`<br>
  128. Usage: `4chansearch {board} {query}`
  129. ### Is It Up
  130. * `isitup` Checks if the web address specified is accessible from the bot.<br>
  131. Aliases: `isup`<br>
  132. Usage: `isitup {url}`
  133. ### Ping Me
  134. * `pingme` Gets the ping time between the bot and the client requesting the ping.<br>
  135. Usage: `pingme`
  136. ### Seen
  137. * `seen` Displays the last time the nick has been seen in the channel.<br>
  138. Usage: `seen`
  139. ### Access
  140. * `setaccess` Adds the specified nick to the access list with the specified level.<br>
  141. Aliases: `addaccess`<br>
  142. Usage: `setaccess {nick} {access_level}`
  143. * `delaccess` Removes the specified access level from the nick.<br>
  144. Usage: `delaccess {nick} {access_level}`
  145. * `listaccess` Lists all the users with access on the channel and their level.<br>
  146. Aliases: `accesslist`<br>
  147. Usage: `listaccess`
  148. * `getaccess` Displays the current access level of a user.<br>
  149. Aliases: `access`<br>
  150. Usage: `getaccess [{channel}] {nick}`
  151. ### Moderation
  152. * `founder` Sets the nick to Owner of the chan.<br>
  153. Usage: `founder {nick}`
  154. * `defounder` Unsets the nick as Owner of the chan.<br>
  155. Usage: `defounder {nick}
  156. * `asop` Adds the nick to the Auto Super Op List.<br>
  157. Usage: `asop {nick}`
  158. * `deasop` Removes the nick from the Auto Super Op List.<br>
  159. Usage: `deasop {nick}`
  160. * `sop` Sets the nick as Super Op.<br>
  161. Usage: `sop {nick}`
  162. * `desop` Removes the nick as Super Op.<br>
  163. Usage: `desop {nick}`
  164. * `aop` Adds the nick to the Auto Op List.<br>
  165. Usage: `aop {nick}`
  166. * `deaop` Removes the nick from the Auto Op List.<br>
  167. Usage: `deaop {nick}`
  168. * `op` Sets the nick as an Op.<br>
  169. Usage: `op {nick}`
  170. * `deop` Removes the nick as an Op.<br>
  171. Usage: `deop {nick}`
  172. * `ahop` Adds the nick to the Auto HOP List.<br>
  173. Usage: `ahop {nick}`
  174. * `deahop` Removes the nick from the Auto HOP List.<br>
  175. Usage: `deahop {nick}`
  176. * `avoice` Adds the nick to the Auto Voice List.<br>
  177. Usage: `avoice {nick}`
  178. * `deavoice` Removes the nick from the Auto Voice List.<br>
  179. Usage: `deavoice {nick}`
  180. * `mode` Sets or unsets a channel mode.<br>
  181. Usage: `mode +/-{flags}`
  182. * `topic` Sets the channels topic.<br>
  183. Usage: `topic {topic}`
  184. * `invite` Invites the specified nick into the channel.<br>
  185. Usage: `invite {nick}`
  186. * `ak` Adds the specified nick to the auto kick list.<br>
  187. Usage: `ak {nick} [{reason}]`
  188. * `ab` Adds the specified nick to the auto ban list.<br>
  189. Usage: `ab {nick} [{reason}]`
  190. * `akb` Adds the specified nick to the auto kick-ban list.<br>
  191. Usage: `akb {nick} [{reason}]`
  192. * `deak` Removes the specified nick to the auto kick list.<br>
  193. Usage: `deak {nick} [{reason}]`
  194. * `deab` Removes the specified nick to the auto ban list.<br>
  195. Usage: `deab {nick} [{reason}]`
  196. * `deakb` Removes the specified nick to the auto kick-ban list.<br>
  197. Usage: `deakb {nick} [{reason}]`
  198. * `hop` Sets the nick as Half Op.<br>
  199. Usage: `hop {nick}`
  200. * `dehop` Removes the nick as Half Op.<br>
  201. Usage: `dehop {nick}`
  202. * `b` Bans the specified nick.<br>
  203. Usage: `b {nick}`
  204. * `ub` Unbans the specified nick.<br>
  205. Usage: `ub {nick}`
  206. * `clearban` Clears all the bans in the channel.<br>
  207. Usage: `clearban`
  208. * `kb` Bans and then Kicks the specified nick.<br>
  209. Usage: `kb {nick} [{reason}]`
  210. * `tb` Bans the specified nick for the amount of time specified.<br>
  211. Usage: `tb {ban_time} {nick} [{reason}]`
  212. * `tkb` Bans and then Kicks the specified nick for the amount of time specified.<br>
  213. Usage: `tkb {ban_time} {nick} [{reason}]`
  214. * `k` Kicks the nick from the channel.<br>
  215. Usage: `k {nick} [{reason}]`
  216. * `voice` Sets the nick as Voiced.<br>
  217. Usage: `voice {nick}`
  218. * `devoice` Removes the nick as Voiced.<br>
  219. Usage: `devoice {nick}`
  220. * `kme` Kicks the requesting nick from the channel.<br>
  221. Usage: `kme`
  222. ### Owner
  223. * `owner` Identifies the nick as the Bot's Owner.<br>
  224. Usage: `owner {password}`
  225. * `addowner` Adds the defined nick as an owner.<br>
  226. Usage: `addowner {nick}`
  227. * `delowner` Removes the defined nick from the owners list.<br>
  228. Usage: `delowner {nick}`
  229. * `nick` Changes the Bot's nickname to the one specified.<br>
  230. Usage: `nick {new_nick}`
  231. * `id` Has the Bot identify to nickserv.<br>
  232. Usage: `id`
  233. * `join` Tells the Bot to join the specified channel.<br>
  234. Usage: `join {channel}`
  235. * `part` Tells the Bot to part the channel.<br>
  236. Usage: `part [{channel}]`
  237. * `say` Has the Bot say the specified message to the channel.<br>
  238. Usage: `say [{channel}] {message}`
  239. * `action` Displays the specified message as an action in the channel.<br>
  240. Alternate Commands: `me`<br>
  241. Usage: `action [{channel}] {message}`
  242. * `query` Private messages the specified nick.<br>
  243. Usage: `query {nick} {message}`
  244. * `quit` Quits the server instance.<br>
  245. Usage: `quit`
  246. * `quitall` Quits all of the connected server instances.<br>
  247. Usage: `quitall`
  248. * `cycle` Restarts the server instance.<br>
  249. Usage: `cycle`
  250. * `cycleall` Restarts all of the connected server instances.<br>
  251. Usage: `cycleall`
  252. * `exit` Closes the client.<br>
  253. Usage: `restart`
  254. * `restart` Restarts the client.<br>
  255. Usage: `restart`
  256. * `ignore` Adds the specified nick/chan to the ignore list.<br>
  257. Usage: `ignore {nick|channel}`
  258. * `unignore` Removes the specified nick/chan from the ignore list.<br>
  259. Usage: `unignore {nick|channel}`
  260. * `ignoremodule` Adds the specified nick/chan to a modules ignore list.<br>
  261. Usage: `ignoremodule {module} {nick|chan}`
  262. * `unignoremodule` Removes the specified nick/chan from a modules ignore list.<br>
  263. Usage: `unignoremodule {module} {nick|chan}`
  264. * `ignorecmd` Adds the specified nick/chan to a commands ignore list.<br>
  265. Usage: `ignorecmd {command} {nick|chan}
  266. * `unignorecmd` Removes the specified nick/chan from a commands ignore list.<br>
  267. Usage: `unignorecmd {command} {nick|chan}`
  268. * `blacklist` Adds the specified channel to the bot blacklist.<br>
  269. Usage: `blacklist {channel}`
  270. * `unblacklist` Removes the specified channel from the bot blacklist.<br>
  271. Usage: `unblacklist {channel}`
  272. * `update` Updates the Modules and Configurations on all server instances.<br>
  273. Usage: `update`
  274. * `modules` Displays the loaded modules.<br>
  275. Usage: `modules`
  276. * `loadmodule` Loads the specified module into the bot.<br>
  277. Aliases: `load`, `addmodule`<br>
  278. Usage: `loadmodule {module_class_name}`
  279. * `delmodule` Unloads the specified module from the bot.<br>
  280. Aliases: `unload`, `unloadmodule`<br>
  281. Usage: `delmodule {module_class_name}`
  282. * `addchan`Invites the bot to a specified channel.<br>
  283. Usage: `addchan {channel}`
  284. * `addchanlist` Adds the specified channel to the auto-join list.<br>
  285. Usage: `addchanlist {channel}`
  286. * `delchanlist` Removes the specified channel to the auto-join list.<br>
  287. Usage: `delchanlist {channel}`
  288. * `nicklist` Lists the nicks in the current channel or specified one.<br>
  289. Aliases: `nicks`<br>
  290. Usage: `nicklist [{channel}]`
  291. * `channels` Lists the channels the bot is in on that server.<br>
  292. Usage: `channels`
  293. * `servers` Lists the servers the bot is connected to.<br>
  294. Usage: `servers`
  295. * `conf` Lists the bot's current configuration settings.<br>
  296. Usage: `conf [module_config]`
  297. * `resources` Displays the current CPU and RAM used by the bot.<br>
  298. Usage: `resources`
  299. * `clear` Kicks everyone from the channel except the initiator and the bot.<br>
  300. Usage: `clear [{channel}]`
  301. ### Help
  302. * `help` Displays the modules available to the nick. Viewing a specific module shows the commands. Viewing a specific command shows the command properties.<br>
  303. Usage: `help [{module}] [{command}]`
  304. ### Rules
  305. * `rules` Displays the channel rules.<br>
  306. Usage: `rules`
  307. * `addrule` Adds the specified rule to the end of the channel rules.<br>
  308. Usage: `addrule {rule}`
  309. * `delrule` Removes the specified rule from the channel rules.<br>
  310. Usage: `delrule {rule_number}`
  311. ### Messaging
  312. * `message` Leaves a message for the specified nick. Will be delivered once the nick joins or speaks in a channel the bot is in.<br>
  313. Aliases: `msg`<br>
  314. Usage: `message {nick} {message}`
  315. * `anonmessage` Leaves 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.<br>
  316. Aliases: `amsg`, `anonmsg`<br>
  317. Usage: `anonmessage {nick} {message}`
  318. ### Intro
  319. * `intro` Adds a personal greeting for whenever you enter the channel.<br>
  320. Usage: `intro {greeting_1|greeting_2}`
  321. * `introdelete` Deletes your introductions for that channel.<br>
  322. Aliases: `delintro`, `deleteintro`<br>
  323. Usage: `introdelete`
  324. ### Quote
  325. * `quote` Displays a random quote from the channel. If a nick is specified, it will get a quote from that nick.<br>
  326. Usage: `quote [{nick}]`
  327. ### Weather
  328. * `weather` Displays the current weather conditions for the specified city.<br>
  329. Aliases: `w`<br>
  330. Usage: `weather {zip_code|city_name}`
  331. * `forecast` Displays the weather forecast for the specified city.<br>
  332. Aliases: `f`<br>
  333. Usage: `forecast {zip_code|city_name}`
  334. ### Search
  335. * `google` Displays the first result from Google.<br>
  336. Aliases: `g`<br>
  337. Usage: `google {query}`
  338. ### 8-Ball
  339. * `8ball` Answers any yes/no question.<br>
  340. Usage: `8ball {question}`
  341. ### HBomb
  342. * `hbomb` Initiates a new game of pass the HBomb.<br>
  343. Usage: `hbomb`
  344. * `pass` Passes the HBomb to the specified nick.<br>
  345. Usage: `pass {nick}`
  346. * `lock_bomb` Locks the bomb to the current holder, or passes it and then locks it.<br>
  347. Aliases: `lb`<br>
  348. Usage: `lock_bomb [{nick}]`
  349. * `unlock_bomb` Unlocks the bomb from the current holder.<br>
  350. Aliases: `unlb`<br>
  351. Usage: `unlock_bomb`
  352. * `set_bomb` Sets the bomb holder to the specified nick.<br>
  353. Aliases: `sb`<br>
  354. Usage: `set_bomb {nick}`
  355. * `detonate` Detonates the current active bomb.<br>
  356. Usage: `detonate`
  357. * `stop_bomb` Stops the bomb without it blowing up.<br>
  358. Usage: `stop_bomb`
  359. * `defuse` Cuts 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.<br>
  360. Usage: `defuse {wire_color}`
  361. ### Fun
  362. * `love` Sends some love to the specified nick or requesting nick.<br>
  363. Usage: `love [{nick}]`
  364. * `hug` Sends a hug to the specified nick or requesting nick.<br>
  365. Usage: `hug [{nick}]`
  366. * `slap` Slaps the specified nick or requesting nick.<br>
  367. Usage: `slap [{nick}]`
  368. * `bots` Checks in to the channel.<br>
  369. Usage: `bots`
  370. * `br` Responds with HUEHUEHUE.<br>
  371. Usage: `br`
  372. * `net` Talks about the quality .NET Framework.<br>
  373. Usage: `net`
  374. ### Response
  375. * `addresponse` Adds a new response to the dictionary.<br>
  376. Usage: `addresponse {allowed_chan}[,{allowed_chan}]:{trigger}[|{trigger}]:{response}[|[response}]`
  377. * `delresponse` Removes the specified response from the dictionary.<br>
  378. Usage: `delresponse {response_number}`
  379. * `listresponse` Lists all of the responses in the dictionary.<br>
  380. Usage: `listresponse`
  381. ### Chat
  382. * `stopchat` Stops the bot from chatting in that channel.<br>
  383. Usage: `stopchat`
  384. ### Poll
  385. * `poll` Creates a poll in the channel.<br>
  386. Usage: `poll {question}|{answer}[|{answer}...]`
  387. * `addanswer` Adds an answer to the active poll.<br>
  388. Usage: `addanswer {answer}`
  389. * `delanswer` Removes the specified answer from the active poll.<br>
  390. Usage: `delanswer {answer_number}`
  391. * `stoppoll` Stops the active poll and displays the results.<br>
  392. Usage: `stoppoll`
  393. * `results` Displays the results of the current poll.<br>
  394. Usage: `results`
  395. * `vote` Votes for the specified answer.<br>
  396. Usage: `vote {answer_number}`
  397. ### Roll Call
  398. * `rollcall` Displays every nick in the channel.<br>
  399. Usage: `rollcall [{channel}]`
  400. ### Version Response
  401. * `ver` Sends a version request and displays the response.<br>
  402. Usage: `ver {nick}`
  403. ### Idle
  404. * `idle` Sets you as idle. Protects from certain games and actions.<br>
  405. Usage: `idle`
  406. * `deidle` Returns you from idle.<br>
  407. Usage: `deidle`
  408. ### Roll Dice
  409. * `roll` Rolls a specified number of dice with certain s amount of sides and displays the results.<br>
  410. Usage: `roll [{number_of_dice}] [{number_of_sides}]`
  411. ### Wolfram Alpha
  412. * `wa` Returns the results of your query from Wolfram Alpha.<br>
  413. Usage: `wa {query}`
  414. ### GitHub
  415. * `bug` Creates a new issue with a ''Bug'' label.<br>
  416. Usage: `bug {title}[|{description}]`
  417. * `request` Creates a new issue with a ''Issue'' label.<br>
  418. Usage: `request {title}[|{description}]`
  419. ### About
  420. * `about` Displays the bots current version, creator, and owners.<br>
  421. Usage: `about`
  422. * `source` Displays the url for the source code of IRCBot.<br>
  423. Usage: `source`
  424. * `uptime` Displays how long the bot has been connected to the server.<br>
  425. Usage: `uptime`
  426. * `runtime` Displays how long the bot program has been running.<br>
  427. Usage: `runtime`
  428. ### Logging
  429. * `last` Displays information of the usage of specified commands.<br>
  430. Usage: `last [{command}] [{nick}] [{number_of_results}]`
  431. ### Alarms
  432. * `alarm` Sets an alarm for the time specified.<br>
  433. Usage: `alarm {time} {message or command}`
  434. ### Surveys
  435. * `survey` Starts a survey session for the requesting nick.<br>
  436. Usage: `survey {survey_number}`
  437. * `surveys` Lists all available surveys, nicks who have taken the specified survey, or answers of the specified nick for the specified survey.<br>
  438. Usage: `surveys [{survey_number}] [{nick}]`
  439. * `nextquestion` Submits your entered text as an answer and displays the next question.<br>
  440. Usage: `nextquestion`
  441. * `addsurvey` Begins the add new survey wizard.<br>
  442. Usage: `addsurvey {survey_access_level} {survey_name}`
  443. * `delsurvey` Deletes the specified survey.<br>
  444. Usage: `delsurvey {survey_number}`
  445. * `finishsurvey` Finalizes the submitted survey and adds it to the list.<br>
  446. Usage: `finishsurvey`
  447. * `cancelsurvey` Cancels the current survey and erases the answers.<br>
  448. Usage: `cancelsurvey`
  449. * `addsurveyowner` Adds an owner to the specified survey.<br>
  450. Usage: `addsurveyowner {survey_number} {new_owner}[,{new-owner}]`
  451. * `delsurveyowner` Deletes an owner to the specified survey.<br>
  452. Usage: `delsurveyowner {survey_number} {owner}[,{owner}]`
  453. ## Bugs/Feature Requests
  454. 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.
  455. ## Contact Info
  456. Email: admin@teknik.io<br>
  457. IRC: (irc.teknik.io)#IRCBot<br>
  458. Nick: Uncled1023
  459. ## Acknowledgements
  460. Cameron Lucas
  461. [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/uncled1023/ircbot/trend.png)](https://bitdeli.com/free "Bitdeli Badge")