Xbot
- The correct title of this article is xbot. The initial letter is capitalized due to technical limitations.
![]() | |
Developer(s): | Infinity0 |
Programming language: | PHP |
Development state: | Discontinued |
Source model: | Open source |
Last stable release: | 1.2 (Dec 14, 2007) |
Last preview release: | 2.0a |
License type: | Free software (GPL) |
Influenced by: | NoodleBot
|
xbot was a PHP bot by Infinity0. xbot is no longer in development, because I have decided to work on dbpc instead. See below for details.
Contents
Latest
Before I headed back to uni in early 2008, I was working on xbot 2.0. I haven't worked on it since. If anybody wants to see or continue the latest development code, ask me for it.
Development stalled, because I couldn't figure out a natural & consistent way to integrate multiple connections into xbot's internal structure (hence dbpc). There is however, an extremely basic and messy implementation of this, which works OK for simple use. But I haven't tested it out for complicated tasks such as running two !console
s on two different connections, but it's highly likely to majorly fuck up, due to module data being shared between multiple connections, which I haven't fixed.
Apart from that, the only other major change from xbot 1.2 (that I can remember) is the implementation of runlevels, which allows you to either have modules dynamically loaded when called (the old way, uses include()
, is slower, but allows you to change the code and run it without restarting the bot), or loaded once at startup (uses variable functions $func()
, is faster, but if you change the code you have to restart the bot to execute it).
Brief
xbot was a bot started by Infinity0 in mid-2006. It was built to be light and easily customizable, as a contrast to NoodleBot's many various functions. It was the first in a series of PHP, module-based bots, which were developed as an alternative to NoodleBot, which was the main bot in use at the time. Indeed, xbot was itself developed from a copy of NoodleBot 2.6 from which everything apart from vital functions had been stripped.
Very early versions of xbot were almost indistinguishable from dAmnBot/NoodleBot, but gradually, new things were added and old things were stripped away. The current xbot (1.2) is fully object-oriented, using classes for its major data structures, including client methods, channel data, users, and modules, and is the smallest feature-complete bot at ~60KB (zipped) (including ~20KB of documentation (zipped)). (The only bot which is currently smaller is Amphino, at 25KB, and it is not yet complete.)
After suspending the bot from downloads for over a year (due to his frustration at the power abuse* of various dA admins and his subsequent lack of motivation to do much on dAmn) infinity0 has resumed development of the bot. This time, he has included additional documentation on various topics, such as the aforementioned power abuse, and also free software, upon which the dAmn bot community is based.
*including but not limited to (what many feel are) harsh and unfair ban punishments upon several of his friends, namely SubjectX52873M, djthyrax, miksago, ClanCC.
Modules
xbot was the first PHP bot to include a modules system, so that its functions could be easily extended or stripped. This same modular structure was later ported to Futurism, Dante and most of its derivatives.
xbot modules used to use the same functions and variables as NoodleBot, and hence were somewhat of a mix between NoodleBot extensions and Futurism modules. However, xbot's code was completely restructured and made object-oriented at v0.6, so that it was more organized. Current versions are neither compatible with NoodleBot nor Futurism.
The config files for an xbot module is almost exactly the same as a Futurism module, the only difference being the variable names. An xbot module can easily be converted into a Futurism module, and vice versa, by simply changing the necessary variable and function names. A detailed comparison of the most often-used functions/variables is available at Bot reference.
Trivia
- The bot's original motto was "Like an XBox, but better".
- The bot is called xbot because infinity0's name begins with x.
- infinity0 got the idea for xbot whilst revising for a maths exam.
- The modules system was originally not object-oriented, but was made OO after an enlightening discussion with electricnet.
Downloads
Modules can be downloaded here: xbot/Modules
- xbot 1.2 - bugfix release 2008-01-30 00:00 -
standardstandard - the standard bot. includes devel, example and library modules. 59.3KB, md5:3e2c5a5662b27287d5cb0c7184da1a71- PLEASE READ PHP bot resource hog BEFORE YOU DOWNLOAD AND USE THIS BOT.
- DeviantART login update October 2008 renders this version unusable, but a patch is provided.