---------------------------------
             UPDATES
---------------------------------
        netbots.tcl v4.09
    botnet script for eggdrop
      by slennox,  1/4/2002
---------------------------------
Visit http://www.egghelp.org/ for
    contact info and support.
---------------------------------

This file lists all significant updates to the script and components in each new version.


INDEX
 Settings Updates
 Script Updates


SETTINGS UPDATES

If you're not redoing your config with the latest example netset.tcl, use this to check whether you need to add/remove/change settings in your existing netset.tcl file. It's recommended that you also copy over the bottom section of the example netset.tcl to remove old functions when upgrading.

v4.09
- No changes.

v4.05
- The 'ms_mservers' setting in mainserver.tcl section is now set in the same style as 'ms_servers' (i.e. list with braces).

v4.00
- Changed 'nb_nudisable' to 'nb_netupdate'. It is necessary to read components.txt for more info.
- The 'nb_ctrlbots' and 'nb_group' settings must now be separated by commas instead of spaces, e.g. "bot1,bot2,botN" instead of "bot1 bot2 botN".
- Removed 'nb_autopass'.
- Added 'rp_efficient' in repeat.tcl section.


SCRIPT UPDATES

v4.09 (1/4/2002)

Core updates:
- Fixed netdump which was sending user's handle to the server instead of the specified text.
- Removed deletion of nb_chattr proc from the bottom section of netset.tcl. This should be the end of nb_chattr errors.
- Improved update check. Removed unnecessary sendnote check, added check for valid recipients, and runs every other day instead of daily.

repeat.tcl updates:
- Fixed bot not kicking after multiple repeat flood detection if rp_warning was enabled.
- Wasn't properly handling 0:0 settings (to disable detection). Shifted lots of things around to fix.
- Now checks if ban is already in the list before trying to add it (reduces sharebot +b-b floods).
- Swapped around nb_killutimers which were in the wrong place.

UPGRADE NOTES: If updating from v4.00 or later, you can use a normal netupdate as described in netbots.txt. If updating from v3.80 or earlier, follow the upgrade procedure from v4.00 below.


v4.05 (3/9/2001)

Core updates:
- Rearranged a few things at the start of the script.
- Added global-revenge-mode in nb_chanset.
- Added malformed data check in nb_gotcmd to prevent possible errors.
- Removed 'initial' argument from nb_randomise proc (note that this may produce errors in old third-party netbots components). Should be using concat instead.
- Added a plural thingy in netpass.

aidle.tcl updates:
- Fixed possibility of a "random limit must be greater than zero" error if ai_msgbots is enabled but there are no other bots on the channel to msg.

mainserver.tcl:
- Changed the ms_mservers setting to a list format (same as ms_servers), and they're now randomised (also like ms_servers).

sentinel.tcl updates:
- Fixed incorrect variable name which caused an error if sl_masktype was set to 2.

UPGRADE NOTES: If updating from v4.00, you can use a normal netupdate as described in netbots.txt. If updating from an v3.80 or earlier, follow the upgrade procedure from v4.00 below.


v4.00 (22/8/2001)

Core updates:
- Enhanced netupdate now downloads files from the hub/distribution bot only if different from those it already has (smart update feature).
- Changed nb_nudisable to a more flexible nb_netupdate setting (see components.txt for details on the new setting).
- Changed most netbot commands to send things in lists instead of strings in both core and component scripts, which breaks compatibility with older versions of netbots.tcl and my own components, but nb_sendcmd works exactly the same way so older third-party components should still work fine.
- Removed some unnecessarily declared global variables in procs and did some other small cleanups.
- Major changes to the way netpass words, it now uses a 'password table' instead of a single botnet-wide password (which was less secure), and the command syntax has also changed.
- Removed nb_autopass feature which, with the new netpass, would cause too many failed links due to incorrect password (may implement a more advanced version of this feature in the future to avoid this).
- Made nb_plural more flexible (command syntax has changed too).
- The '-info' argument in .components and .netinfo sounded funny, changed it to '-more'.
- More unbinded procs are now deleted for efficiency.
- Changed use of 'split' in timers to the less ugly 'list' in core and component scripts - let's see if this breaks anything.
- netupdate -file now accepts wildcards and multiple files.
- netupdate no longer rehashes bots automatically after -file updates.
- nb_ctrlbots and nb_group must now be separated by commas instead of spaces (consistency allows for simultaneous nb_group compatibility with nb_set and nb_ctrlbots standard mode).

aidle.tcl updates:
- Bot no longer sends msgs to itself when ai_msgbots is enabled.
- Moved validchan and botonchan checks so that you can send msgs to non-existent channels, which will reset idle-time on most networks.

botnetop.tcl updates:
- Removed some not-completely-necessary matchattrs in bop_askbot to improve efficiency.
- Small improvements in botname variable checking.

mass.tcl updates:
- Fixed variable in mass deop proc which caused netbots to be deopped if nb_flag was set to 'all'.

repeat.tcl updates:
- Integrated more accurate (but less efficient) repeat detection which can be optionally enabled by setting rp_efficient to 0.
- Added rp_warning feature which replaces kicks with warning messages.

sentinel.tcl updates:
- Fixed 'allbans' error which could occur when sl_wideban is disabled.
- Added sl_masktype option, currently offering three different ban/ignore mask types.
- Merged unsets in sl_unsetarray
- Added sl_detectquits to enable detection of quits as part of the join-part flood detection (currently disabled and undocumented - not sure how many networks it would be of any use on since there's usually no distinguising between user and server-invoked netsplit quits).

superbitch.tcl updates:
- sb_checkop now pays attention to the sb_chans setting.


UPGRADE PROCEDURE:
netbots.tcl v4.xx is not compatible with the netbots.tcl v3.xx series. If you wish to use netupdate to upgrade your botnet from v3.xx to v4.xx, you will need to follow the procedure below carefully. If upgrading from v2.xx, skip the following section and follow the update procedure for v2.xx users at the bottom of this file.

1. You will not be able to rehash the hub bot (or other file distribution bot) straight after uploading the v4.xx files to it. This is because as soon as v4.xx is loaded on the bot, it will no longer be compatible with v3.xx netupdate, and the update would fail (after which you may need to update every bot manually).

2. Add the new settings for v4.xx to your existing netset.tcl or start afresh with the example netset.tcl file (the latter is recommended if you're upgrading from v3.72 or older). If using your existing netset.tcl, copy the section at the bottom of the example netset.tcl that begins with '# The following lines remove redundant functions' and everything below to your own netset.tcl.

3. Upload netset.tcl, netbots.tcl, and all required component scripts to your netbots directory on the hub bot (or other file distribution bot). DO NOT REHASH OR RESTART IT YET.

4. Make sure all the bots you want to update from v3.xx to v4.xx are linked. Any that aren't linked now may need to be updated manually later on.

5. On the hub bot, type '.netupdate'. The new v4.xx netset.tcl, netbots.tcl and component files will be transferred to the other netbots.

6. If you receive any 'error found when loading' errors after the netbots resource the scripts, do not panic. You may have made a mistake in your netset.tcl, but the bots will have aborted the load and will still be running the v3.xx netupdate code (even though the updated bot may say it is running v4.xx). Correct the error in netset.tcl and try steps 3 - 5 again.

7. When all bots are successfully updated, rehash the hub bot.

8. You can now remove the section at the bottom of your netset.tcl that begins with '# The following lines remove redundant functions'.


UPGRADE PROCEDURE FOR netbots.tcl v2.xx USERS:
Because of major changes to the structure of the script, it's strongly recommended that you read netbots.txt again - it contains new info about the component structure and other changes.

As netbot communications have changed, all bots should be updated. You will need to FTP to each bot's shell and manually update to this version. The upgrade procedure is as follows:

1. Edit the settings in netset.tcl to your liking.
2. FTP to the bot's shell, switch to the bot's directory and create a new directory named 'netbots'.
3. Upload netbots.tcl, netset.tcl, and any additional component scripts you want to use into this directory. On the hub or other file distribution bot, you should upload *all* component scripts (aidle.tcl, botnetop.tcl, etc.). Other bots only require the components they'll be using.
4. Open the bot's config file and change the source to netbots/netbots.tcl (e.g. change 'source scripts/netset.tcl' to 'source netbots/netbots.tcl').
5. Rehash the bot. If you're updating from a version older than 2.40 and experience problems, shut down and restart the bot.
6. You can now delete your old netbots.tcl and netset.tcl files.
7. Follow steps 2 - 6 for each additional bot.

Note that you may see errors (e.g. nb_gotcmd error) on some bots on the botnet during installation. This is normal until all bots have been updated to v3.00/v4.00.

If you experience errors or stange behaviour after the upgrade, shut down and restart each bot.
