Xbot

From Botdom Wiki
Jump to: navigation, search
The correct title of this article is xbot. The initial letter is capitalized due to technical limitations.
About xbot - xbot modules || README / Install guide - Documentation - Modules guide - Versions || Reference
xbot
Xbot screenshot.png
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


Discontinued Project
This project has been discontinued and is not recommended for use.

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.

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 !consoles 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

Update 2009-12: The reason why none of the links to {stuff hosted on my account on the SRCF} work any more is because I've been banned from there. Long story short, I discovered some plaintext passwords and told the admins about it. They then banned me because I "shouldn't have been looking for them". For the (slightly) longer version, see User:Infinity0/SRCF

If anyone really desperately needs something from one of those links, there is a roundabout way of getting them. Email me for details.

GreenCopyleft.svg
Heckert GNU white.png
This work is released under the GNU General Public License, which allows you to freely use, modify, or distribute it, as long as you give these rights to subsequent users of (this work or your derivative of it) too.