Development releases:
Please be warned that this is not a stable release codebase. If you are not familiar with MySQL and know how to edit your database DO NOT USE THIS RELEASE.The codebase works for me without issues (unless otherwise stated in the changelog), but that doesnt mean it will work just fine for you.
The next stable release will be 0.4.0, again see changelog for details on version numbering convention.
Report issues and discuss this release in this thread.
Downloads:[
BeBot 0.3.5 Zip Archive]
[
BeBot 0.3.5 Tar.gz Archive]
The php bundle have been split into its own branch as its only needed by windows users, and it will generally be updated less often than the bot core.
[
PHP Bundle]
You can also get the latest and greatest directly from the subversion repository using a subversion client.
Repository is located at:
http://svn.shadow-realm.org/svn/BeBot/You can also browse the repository at
http://svn.shadow-realm.org/Example using the linux command line client:
svn co http://svn.shadow-realm.org/svn/BeBot/trunk BeBot
Please note that the code in the repository might not always be functional, but usually the repository should contain functional, although untested code.
Changelog:-------------
Version 0.3.5
-------------
- added missing default access rights
- added ban manager module to handle bans outside of blacklisting
- added banned_for and banned_until fields to user table (table gets updated automatically) for more flexible bans
- added optional informative message telling how to disable autoinvite to automatically invited characters
- user group(s) which should be per default marked for autoinvite on adding can be selected (none, members, guests, both)
- only setting defaults for receive_* if new user is guest or member, no longer for anonymous users
- Allow users to remove deleted characters from their alt lists.
- Check that the character we are checking alts for actually exsists.
- Fixed several issues with flexible security.
- Help updated for all modules that needed it.
- The Say module now outputs to the correct channels.
- The bot command character is now optional in tells, behaviour can be controlled by settings.
- Some minor fixes to AOChat library to deal with issues on certain PHP versions.
- Global settings array removed, replaced by $this -> bot -> settings -> get($module, $setting).
- Settings functions are now accessed via $this -> bot -> settings -> function() instead of $this -> bot -> set -> function()
- added pseudo-channel "all" to accesscontrol -> create(), to set rights for tell, pgmsg and gc at once
- Extended $this -> bot -> send_help() to accept an optinal command paramater.
- Legacy security checks removed from all modules.
- Security.php, Settings.php, and AccessControl.php are loaded before all other modules to satisfy dependencies.
- added $command["tells"] to catch any unhandled tells if wanted
- Raid roster properly using notitify field instead of user_level for buddy list
- fixed broken [whois] in memberslist
- removed defunct custom/help/ folder
- Extened functionality of running mutiple bots out of a single directory structure to allow per bot MySQL configurations.
- An "official" branch to improve BeBot 0.4 raidbot functionality was created.
- showing alts and blacklist info can be disabled by settings now
- Updated $this -> table_suffix to $this -> table_prefix (now if there is no prefix specified in MySQL.conf, it defaults to botname_tablename).
- Updated license to disallow redistributing BeBot under GPL versions other than version 2.
- Added option to enable/disable security for the Alts command. This will prevent you from adding alts with higher access level than you if Security -> usealts is enabled.
It will also prevent you from using alts admin to add alts to someone with higher access level than yourself. Defaults to on for security reasons. Contributed by Chris96
- Removed non alt related info from fancy alts output (make_info_blob).
- Added optional parameter to show_alt function to allow returning of results without creating a chat_blob.
- Added option to enable a detailed whois view instead of the old Alts window. Enabled by default.
- Added options to display links and options in detailed whois view.
- Added make_chatcommand to Bot.php to allow for easy creation of chat command links. Moved from ShortCutsGUI.
- Fixed a bug in IRC relay where we would unset the wrong cronjob upon disabling IRC relay.
- Fixed a bug in the tablename cache causing excessive queries.
- Added a trigger check to see if we needed to check the database in Logon_Notifies to avoid uneccecary database queries.
- Disabled AutoMessage module by default as it is not needed for most people and only adds uneccecary database queries.
- Moved lastseen update from core/Roster.php to core/OnlineDB.php to keep online tracking in one core module.
- Roster update is now only run on startup if more than 6 hours passed since the last successfull update.
- Make sure we ignore output from the bot itself.
- Ignoring bot output from pgroup and gmsg channels now, no need to handle bot output as input again.
- Added global FormatString for gmdate() calls throughout the bot as setting.
- Added info about existing last_seen entries to !is output.
- Moved cronjobs of BanManager and Blacklist modules from 1min to 5min intervals.
- Added option to disable logon spam entirely.
- Caching all queries for alts and mains.
-------------
Version 0.3.4
-------------
Important:
===============================================================================
- Important note for module developers
Due to character id's now being 2^31 in size and how the bot deals with this, you must remember to use the int_to_string and string_to_int whenever
you want to work with the "real" character id's. Internally the bot will happily churn on using overflowed integers that goes negative.
Remember also to convert any "real" character id's back to an overflowed integer before passing something back to the bot to handle internally.
Database entries will be stored with the overflowed integer value, NOT the "real" character id's.
- This version adds tablename prefix support:
- Add new configuration entries to MySQL.conf
- You MUST manually alter the tablenames before starting this version or start with an empty database.
Alternatively you can set the prefix to be blank.
- ALL MySQL queries must be updated in custom modules to make use of table prefixes.
Table names should now be referenced as: #___name where #___ will automatically be replaced with
the correct prefix by the bot during runtime.
- Bot.php, MySQL.php and AOCHAT.php have been moved into the subdirectory Sources.
Please take care to remove the old files in the root directory after upgrading if installing to
the same directory.
- main.php has been renamed Main.php.
- start.php has been renamed StartBot.php.
- start.bat has been renamed StartDebugBot.bat.
- StartBot.bat has been added and will allow the bot to automatically reconnect if disconnected or crashed.
- Rooster_GUILD.php and Rooster_RAID.php have been renamed to Roster.php and is now a core module.
Be sure to disable/remove the old Rooster_* modules.
- _Colors.php renamed to Colors.inc, _TeamsClass.php renamed to Teams.inc.
- The function $this -> bot -> get_site has been completely rewritten
with inspiration by ShadowGod's AOXML class and php.net comments:
- The likelyhood of get_site causing the bot to hang should be eliminated completely now.
The timeout has been reduced to 20 seconds total and can be overridden using additional parameters.
- The function will now return full error messages allowing plugins that use it to return
more sensible errors to the end users (Whois plugin is a good example)
- The return data has changed from a string to an array. See Bot.php headers for details.
- The bot now has a built in whois function with cache, the function is $this -> bot -> whois -> lookup,
written mainly by Alreadythere.
See core/WhoisCache.php headers for more information.
- Que.php has been renamed to Queue.php and all its functions and variables has been renamed accordingly.
- The directories custom/modules/, custom/core/ and custom/help will now also be read by the bot on startup allowing
separation between original and custom modules for the bot along with help files.
- News.php has gotten settings that are configurable by the new settings module
- MassMsg.php has gotten a setting that is configurable by the new settings module
- Alts.php has gotten new (optional) fancy output
===============================================================================
- Bot now consistantly uses long opening tags in all files.
- Fixed a crash in AlienAttack_GUILD module triggered if the bot had not witnessed any city events.
Reported by Dabaron @ BeBot Forum.
- Fix a bug causing the wrong faction to be written to the database for tower war outcomes.
Reported by Dabaron @ BeBot Forum.
- Better error logging for php enabled. Writes errors to ./log/php_errors.txt
- Added more events to AlienAttack_GUILD module from Xenixa.
- Fixed a bug in AlienAttack_GUILD module where it would never set $this -> type = "repeat";
Also decreased the interval at which the bot complain about the cloaking device still being disabled.
- Multiple modules updated to make use of the new whois cache.
- Blacklist module will now allow you to remove characters from blacklist that has been deleted or renamed.
- LogonNotify_GUILD.php is now enabled by default.
- Only display commands that the user has access to in help.
Idea by MatHack @ BeBot Forum.
- Added Angels AOChat hack to fix the "not expecting login" issues without the need for aokex.
- Backport latest AOChat library (excluding the new queue) making it php 4 compatible.
- Bot will now correctly connect to Rimor (RK3) without the need to alter the source.
- We now take steps to ensure that we do not keep the username and password in memory after we have connected.
- Fix multiple crashes in points module.
- All file headers have been updated.
- Added Credits file containing aknowledgements.
- Updated About module.
- The server load module will now work correctly on Testserver (RK0) and Die Neue Welt (RK3)
- Fixed a bug in the TowerAttack module leading to a MySQL error if the bot fails to lookup a player.
- Fixed a bug where a guild member would remain on the Online list if they where online when they where removed from the guild (/org leave).
- Added a workaround for BotHelp overflowing the max blob character count on bots with large number of commands enabled.
- Fix a bug in the Bid module causing bot to crash if someone with no raid_points entry tries to bid.
- Increase default max_blobsize to 12000.
- Added new core command send_permission_denied($to, $command, $type) to send command permission denied errors to users.
- Synched Level information with Helpbot. Graciously provided by Vhab
- Added the bot functions int_to_string and string_to_int to convert between int and string and converting overflowed integers to unsigned integer string values
and vice versa.
- Fix an issue with !calc throwing errors if $result == 0.
- Org Roster update also updates whois cache data.
- Whois lookups automaticaly fall back to Auno if anarchy-online.com lookup fails.
- Team administration module works again and now also removes players that leave correctly.
- Updated History module.
Updated Modules:
- Updated Time module, see:
http://bebot.link/wiki/doku.php?id=time_module - Updated Items module
New Modules:
- Added settings managment and interface:
http://bebot.link/wiki/doku.php?id=settings-------------
Version 0.3.3
-------------
- Fixed a MySQL error in Admins.php.
- Fixed directory traversal security issue in the HELP module.
Thanx to Somebotty @ irc.funcom.com for discovery and notification.
- PHP split into a separate branch to conserve bandwith and make download sizes more manageable.
- The log function have been changed so that if the second parameter is "Security" the event is logged
to security.txt in the log directory and an alert is sendt to guildchat or private group.
New modules:
- Replaced old Items.php with new module by Vhab.
-------------
Version 0.3.2
-------------
- Really, really fix the "bot doesnt listen to org chat" bug.
- "Admin" should no longer erronously send error message when no parameter is given and admin list is displayed.
- Added Akarah's "Online" fancy format. Can be toggeled using the command: admin mode fancy/basic
- IRC relay updated to display new AO Mainframe URL for item links.
- Fixed a bug making !victory record the wrong loosing side.
- Renamed _ClassName.php to _ExampleModule.php and updated some examples.
- Bot should now work "out of the box" on windows provided you have MySQL setup.
- Eliminate another potential BeBot <-> BeBot spam loop.
- Removed Raids module as it is now merged into the News module.
- Fix issue with IRC module causing bot to refuse to startup if no server has been set.
- Fix the LogonNotify_GUILD module to actually send proper prefixed commands.
- Revamped how MySQL errors are handeled. Most notably the bot will now make a decent
attempt at reconnecting to the database every 30 seconds or so when the database connection is lost.
(The reconnect is only an issue for non local database servers)
Output limiting has also been put in place to prevent more than 10 errors in 30 seconds from
being displayed to prevent console/log floods.
- Raid_single renamed to Raid.
- New raid commands:
raid add <name> - Adds a player to raid, regardless of lock status.
raid command <message> - Creates easy to read text in pgroup
c <message> - Alias for raid command.
New modules:
- Replaced GuildRelay module with Xenixa's modified GuildRelay module.
Also incorporates Craized's Notify module.
- Replaced the News module with the updated news module by Xenixa
Database changes:
- "Admin" module now adds the description coloumn if missing.
-------------
Version 0.3.1
-------------
- Fixed a bug in Tier2 module. NT's should now qualify for the correct Wills.
- Raidleader is now a hardcoded access level with id 3.
NB: If you had custom access levels added, you may need to correct the list as
raidleader will be forcibly entered as entry with id 3, replacing any old entry with the same ID.
- admin module works properly again. Reported by Akarah
- Various typos and spelling errors fixed.
- "TowerAttack" module updated to handle new tower attack messages. - Xenixa
- Ensured that the TowerAttack module wont break when Funcom gets around to tokenize the rest of the tower attack messages.
AOChat will still be required to carry out the actual convertion before it will work when it happens however.
- Added cronjobs for: 1, 5, 10 and 30 seconds and 3, 6 and 18 hours. - Xenixa
- Added alias "Cloak" for "City" in the AlienAttack_GUILD module and updated how the information is displayed. - Akarah
- Fixed a bug in cut_size in Bot.php - Wolfbiter
- Bot no longer enables guild relay on startup if guild relay is disabled.
-------------
Version 0.3.0
-------------
- New version number convention. Major.Minor.Patchlevel, where even
Minor numbers denote stable releases and odd numbers denote development releases.
- Added setting in Bot.conf to allow guild relay to activate upon login.
- Bot now ignores tells with messages indicating they are from another BeBot asking
to send "/tell <botname> <prefix>help".
This makes it less likely to end up in a tell loop with another bot.
- The command admin with no arguments now provides a list of all admins.
- The "online" command now shows Ailien levels, AFK status and SuperAdmin/Admin/Raidleader status.
- Logon/off notices are now relayed over the guild relay (This is still partly broken though)
- Levels module updated with new pvp ranges.
- The "news" command now displays the time and date of the last updated news item without having
to open the chat blob.
- The Points module has been updated to allow the two following commands:
points <name> - Display the points of a single member
points top25 - Display the top25 points
- Fixed a bug allowing someone to crash the bot using "invite"
New modules:
- Added Khalem's LogonNotify module which sends Online, News and Raids to guildmembers logging in.
- Added Foxferal' History module.
- Added Foxferal's Blackist module.
- Added Foxferal's Raids module.
- Added Craized's AFK module.
- Added Alreadythere's custom rights management module.
You can now control who can access what commands using the "commands" command.
Please note however that some modules might impose their own access restrictions
in addition.
- Added Blondengy's IRC module.
- Added Derroylo's Pocketboss and Symbiants module.
- Added Zacix's Teams module.
- Added Sabar's Tier2 raid module.
Database changes:
- admin_groups have a new field named: description VARCHAR(80)
- news have a new field named: time INT NOT NULL
Value of id needs to be moved to time, and a new id assigned.