Basic
by blue-elf (belf@mircscripter.com)

Changes/additions/notes:

23 April 2002

1. Fixed "/raw not connected to server" error when opening a new status window while
   one window isn't connected.
2. Fixed "* /filter: unable to open 'dcc.log' (line 248, recent.mrc)" bug when trying
   to open the DCC history for the first time.
3. Fixed version reply being sent twice (?).
4. Fixed MTS theme prefix not being evaluated when showing "IAL for #channel is updated".
5. Fixed images not being removed when unloading MTS themes.
6. Made some changes to the way themes are loaded. When listing themes, Basic still
   grabs the subdirectories and considers them as the themes. But it grabs the first
   matching .mts file inside those subdirectories when you try to load or preview them.
   Meaning, a directory can be:
   
   c:\mirc\themes\blah\bleh.mts

   The "blah" will be listed as the theme in the Display dialog, but when loading and
   previewing, the "bleh.mts" will be the actual file that will be used.
7. Fixed dialogs not being resizable in Win9x.
8. Fixed "** Error: /_antiidlectcp is an unknown command" showing up when CTCP'ing yourself.
9. Fixed join displays not showing timestamp if it is on (in Basic display).
10. Highlighting item in Basic's display menu options now show a checkmark if enabled.
11. Fixed "* /if: invalid format" error on notify when using Basic theme.
12. Readded Away options in channel popups.
13. Fixed all the bugs in Perform On Start - when connecting to the servers, when saving
    servers, or opening the dialog, etc.
14. Fixed /match attempting to match -w when hitting cancel from Scans -> Match in channel popups.
15. Readded Log options in query/chat windows.
16. Added /v /voice /dv commands, for voice and devoice commands.
17. Fixed /mop missing +v users.
18. Fixed /kb and /k cache commands not performing all the commands you typed.
19. Fixed /back changing your nick to something else.
20. Fixed networks autojoin and moved the autojoin files under sys\networks\ subdir.
21. Added /t and /topic. Usage: /topic [#channel] [topic]
22. Made some changes to the way Basic replies to CTCP replies. Since mIRC is intelligent, there is
    no way to halt the CTCP request displays without halting the whole CTCP event. This means
    that if you want to reply to specific CTCP requests, you will have to set the replies in the
    main Basic options. NOTE: Basic still replies to VERSION, PING, and TIME properly even if you
    haven't made any custom replies for them. Your custom replies will override the default replies.
23. /cycle now uses internal mIRC /hop command. This should prevent the channels from being cleared
    when you cycle it.
24. The "*** Retrieving #channel info.." echo should now follow the display settings.
25. DCC requests from users who have been /adcc'd are now automatically accepted.
26. /mbans now unbans only those bans that are still banned. It will remove the banmasks from
    the cache if that ban has been unbanned.
27. Fixed "* /titlebar: invalid window" bug in certain circumstances.
28. Added volume controls (modified from eIRC's Mixer).
29. Fixed part message brackets in basic display not showing the colors properly.
30. Fixed /relay commands!!!
31. Fixed /whowas display in Basic theme.
32. Fixed Open Log for chats.
33. Added /country.
34. Added /q (same as /query).
35. If someone is in query and they quit IRC, the quit event is displayed in the query window.
36. Nick changes are now also shown in query windows if there is one open for that nick.
37. Due to an /aop /protect bug in mIRC 6.01, the userlists now use scripted auto-op, auto-voice
    and protect events. Protect events only protects users from being banned and invites them if
    they are kicked.
38. Added /addtopic alias. Appends a topic to the existing topic.
39. Added /feedback.
40. Changed the way ON DNS event works. $dns() is broken in mirc 6.01, so I reverted back to
    using $raddress/$address/$iaddress and so on. This should fix the "bug" that doesn't
    show the results of a DNS lookup if the DNS window is open and the address doesn't resolve.
41. Renamed /connect to /conn so that opers can use the /connect command as usual.
42. In /whois replies, raw 378 is now shown (nick is connecting from *@127.0.0.1) for Basic display.
43. Fixed "<@+nickname> text" display.
44. Fixed modes showing up twice in on join.
45. Major FIX to mode +u always being set on join if the automodes are empty. What happened was, there
    was this local %modes variable being set to something, and the result was $null, mIRC somehow
    treated that as a literal value.. and that's why it's always trying to set a "$nu" ..
46. (Re)Added recent sent files and make them show up in the nicklist/query popups.
47. For Basic theme, when a /notice is sent to @+#channel, the notice is now displayed correctly
    in that channel. It was being displayed in the status window.
48. When attempting to change to a nick that is being used by someone else, Basic will now
    tell you their common channels if any, and if there's none, the nick you want to use will be
    /whois'd immediately.
49. Added /update :)
50. The nicklist popups can now do multiple op/voice/deop/devoice.

30 March 2002

1. Added /sc (shows the names of active channel or given channel).
2. Added kick/kickban cache. If you type /k or /kb in a channel and you're not opped,
   the command is remembered and when you are opped, the /k and /kb will be performed.
   If you get ops after more than 20 seconds, the commands will not be performed.
   (idea by qwerty, all scripting done by me for this one)
3. X, ChanServ, NickServ, MemoServ bots for undernet and dalnet are now exempted from
   channel protections.
4. Added /banstat - views the bans of a channel.
5. Fixed /away showing normal mirc action in Basic theme.
6. Added /adcc -r <nick>. Removes the nick from the authorized DCC list.
7. Fixed timestamp bug in MTS themes.
8. Fixed being unable to load cnick colors that use numbers above 15.
9. Added /match command. Searches for matching addresses in active channel.
10. Can now type /+modes in a channel. For example, typing: /+tn in a channel sets the
    active channel modes to +tn.
11. Added /about.
12. Added -Am to /font command. -A changes the fonts for ALL windows, -m for all message
    windows. For example: /font -Ad 12 Fixedsys
13. If the manifest file isn't found (in WinXP only), Basic will now exit only and not
    restart mIRC (to prevent mirc.ini from being corrupted).
14. /pa now accepts part messages.
15. Added /google.
16. /bhelp is now fully functional.

22 March 2002

1. Fixed MTS previews a LOT. From the colors to the screwy prefixes. This fix should also
   have fixed the usual MTS display problems.
2. Fixed timestamp not being disabled when loading an MTS theme over another MTS theme.
3. When previewing an MTS theme and an error is encountered, the progress bar is now closed.
4. Can now type the directory in the dir editbox for the MTS theme.
5. The progress bar window now pauses for 100ms before it closes.
6. The theme dir is now remembered by the Display dialog.
7. Fixed MTS not being reloaded when you restart mIRC.
8. Fixed Status Windows not closing when the option is checked.
9. The Query option in the nicklists popup have been moved right below the nick.
10. Fixed "No such nick" still attempting to display a whois in Basic classic theme.
11. Made some changes to the nick alignment in Basic's private messages display.
12. Added open log option.
13. Added autohiding of windows.
14. Added XDCC List/Help/Get in the nicklist popups. Also added /xget /xlist /xhelp
15. Fixed CTCP requests being hidden if the custom CTCP replies are enabled.
16. Added "Use chat font" for request filter window. If checked, the window will follow the fonts
    used by the query windows the next time it is opened.
17. Dedicated Notice Window now works properly with MTS themes and Basic themes.
18. Widened the tab spaces for Request Filter window so that the address
    and message don't get mixed up easily.
19. Fixed titlebar not showing the proper text when exiting mIRC.
20. Fixed fonts for query windows in Basic theme not using the correct font when doing a /query.
21. /dns now follows the current theme.
22. Fixed DNS results and DNS calc time showing up in different windows. Also improved the DNS
    results window a bit and added a popup for it.
23. Changed the add network dialog in the Network Settings. It now has a dropdown list that grabs
    the networks or groups from the servers.ini.

17 March 2002

1. Fixed MTS theme scripts being unloaded when re-loading the same theme file.
2. Fixed preview not restoring the RGB settings.
3. Added preview cache for MTS themes only (because Basic and mIRC can have so many settings).
4. Added progress bar for MTS previews because they can be really slow.
5. More fixing done with the Display settings, esp when switching from MTS to Basic.
6. Fixed Basic display showing the text twice in a channel text event if the highlighting is enabled.
7. Added CTCP userlists! I totally forgot about it. Works a bit like the old Basic.

   /CTCP nick PASS <password>
   This sets a password, which lets you use other commands, like INVITE.

   /CTCP nick PASS <password> <newpass>
   This is how you change your password.
   
   /CTCP nick IDENT <password> [hostmask]
   Allows users to add their current hostmask or [hostmask] to your userlist.
   
   /CTCP nick <OP|VOICE|INVITE|UNBAN> <#channel1,#channel2..|*> <password>
   Ops/Voices/Invites/Unbans the person who requests it in <#channel1,#channel2..|*> - use * for all channels.

   /CTCP nick HELP [topic]
   Shows help for [topic] or all topics.

   If you're new to Basic userlists, here's how it works. When you do an /adduser, there are certain flags
   such as ovIiu (see /bhelp /adduser). So a person with a +o flag can request ops from you in the channels
   and in the network, specified in your userlist. The rest are the same.

   Note: for CTCP IDENT, the user who requests it must have their NICK and their PASSWORD entry in any of
   the userlist entries. But Basic will only search for a matching nick and password for userlist entries
   of the network where the request happened. If "dev_" was added with a certain hostmask in DALNet, when
   "dev_" requests for an IDENT for a different hostmask, it'll only work if he requested it on DALNet.

   And also, if a user requests a CTCP IDENT but does not provide a hostmask, Basic will take his fulladdress
   and convert it to the default mask that is set in the userlist options. If there is no default mask,
   the fulladdress is added with a mask 3 type or '*!*ident@*.host.com'.

8. Added /UNUSER

   Syntax: /UNUSER <hostmask> [network] [channels]

   Removes a hostmask from a network and channel if the network (or channel) is specified,
   the user is removed for that network or channel only.

   If just the hostmask is given, then all matching hostmasks in all networks will be removed from the userlist.
   The 2nd parameter is *always* assumed as a network.

   To remove a user from a specific network and channel, both (net and chan) have to be specified.

9. For the userlists, the entries are now added to mIRC's auto-op, auto-voice, and protect list if the
   user is given 'ovp' flags. Since mIRC isn't fully-network compliant, when removing a user,
   make sure you're doing it in the same network as when you added them. If not, Basic will just remove
   the user from all auto-op/auto-voice/protect lists. This is because, mIRC's /aop /avoice and /protect
   commands do not allow you to specify networks.

10. Added script maintenance /scm option. It's simple but I like it.
11. Fixed bug that freezes Basic when "Close Status Window" option is checked.
12. The email and url for the theme info in MTS Display Setting are now clickable.
13. Added /connect and Connect dialog (try the Server -> New Connection/Current Connection -> Specify).
14. Help section works partially now. Also added /bhelp.
15. Modified the way the file checking is done on start. The mirc.exe had problems when being copied and pasted
    into a new folder. Somehow, the mirc.ini gets corrupt and the files don't get loaded. If this breaks as well,
    I will have to create an installer.

10 March 2002

1. Modified the status popups a bit. Not very noticeable, mostly to do with Recent items and servers list.
2. MTS preview now also follows the RGB colors, but mIRC will change the colors momentarily as well. That's
   the fastest solution I can come up with right now.
3. Added Default settings for the channel protections.
4. Added some hidden system checks on start. (Check for DLL's, dirs, etc)

9 March 2002

1. Made a small change in the colorbox in the Display Settings. It should look the same
   regardless of your background color.
2. Added /join alias. It will now tell you if the channel you are attempting to join is one
   of the channels in the "retry" list, i.e. when you can't join a channel, Basic allows you to
   reattempt to rejoin it.
3. Fixed /rejoin not allowing you to rejoin +l channels. Now it checks if the number of users
   will exceed the channel limit if you leave and rejoin it.
4. Fixed away sound not being shown in the script options.. duh. Basic remembers it, it's just that
   it doesn't get displayed. Sorry :/
5. Fixed MTS bug that shows server notices and raw numerics from another server to the active window..
6. Added option to minimize the clone scan window.
7. Added option to show "IAL for #channel is updated" in main script options, under IRC category. This will
   also tell you if a channel's IAL will be updated or not, right after you join a channel.
8. Added Windows in the Script Options dialog. Allows you to open certain dialogs and windows in the desktop.
9. Added option to close Status Windows on disconnect.
10. Speeded up the userlist updating after clicking the Ok button of the userlist dialog. Should be
    100x faster than the older routine.
11. Fixed progressbar not disappearing when removing all networks in the Network settings dialog.

7 March 2002

1. I think I finally fixed the Display settings for good. Please test again :/
2. Added simple mIRC options in the Display settings dialog.
3. Added /clonewin alias. It's nice :) Will be upgraded after the first major re-release of Basic.
4. Custom CTCP replies now work fully. I'll be adding an option to enable/disable a specific
   CTCP reply also after the first major re-release.
5. The Dedicated Notice Window should now work well with themes.


3 March 2002

1. DCC History window and /whowin window now remembers the size of the window
   and the header widths when they were last used. Wasn't too hard to do ;)
2. Fixed theme bug not allowing you to type anything even if a theme has been unloaded.
3. The display settings should work now.
4. Added option to flash mIRC and play sound when receiving new msgs if you are away.
5. Added /query for themes.
6. Added custom CTCP replies.

27 Feb 2002

1. Redid DCC History window. You can now right-click on the items.
   Also added dclick options to either view the folder or the file selected.
2. Backup dialog now works. Also added /backup command.
3. Added /ascii alias. Shows ascii value of every character in a
   given string.
4. Added display dialog settings. Cannot load theme for now. It's still unfinished.

Don't recall the date

1. Changed behavior of away logging and request filter. If you are away and
   request filter is on, the only messages that will make it to the away window
   will be the ones from those who are in the exempted "request filter" list.
2. Added /rejoin command. Sort of a delayed /hop or /cycle.
   
   /rejoin 14 #mIRC
   - this rejoins #mIRC after 14 seconds.

3. Added /resend command. Resends failed sends.

   /resend 1          = will resend the 1st failed send
   /resend -f *mirc*  = will resend all files that matches *mirc*
   /resend -n *nick*  = will resend all entries that matches nickname
   /resend -d         = opens the resend dialog
   /resend            = without any parameters, it echos the entries.

19 Feb 2002

1. Added "Add to servers.ini" option in status popups.
2. Fixed Edit button in Perform on Start dialog not working.
3. Added -g switch to /ca. It clears all windows in all connections.
4. Upgraded whowin :-) Suggestions on making this better? I can't minimize
   the dialog (via popups) if it's MDI mode because of the way mIRC works :(
5. Added themes (still 80% done). You can download themes from the themes
   section of www.mircscripts.org. I only tested Basic with syntax.mts.
   Please test it with other themes as well. To install a new theme,
   extract the theme files in its own subdirectory. So if I have tunnelvision theme,
   that means, there should be a directory called c:\mirc\themes\tunnelvision\
   and all the tunnelvision files are in that directory. Make sure they aren't
   mixed up.

Don't recall the date

 1. If Basic doesn't find a mirc.exe.manifest file on start, it will
    create one and restart itself.
 2. Fixed DCC history sorting problem. :-)
 3. Fixed Userlist sorting problem as well.
 4. Improved /inflate command.

	/inflate -acdqs@
	  a = all
	  c = channel
	  d = chat
	  q = query
	  @ = custom windows
	  s = status

    This resizes windows to fit exactly in the MDI area. If the windows
    are desktopped, they will be maximized.
 5. Added $_realname in the "Real Name" in mIRC options.

Feb 13 2002

 1. Added "Query" item to WhoWin window popup.
 2. Fixed word list not being saved.
 3. Added CTCP Time in nicklist/chat popups.
 4. Renamed ADCC to Allow in popups.
 5. Can now edit the Request Filter auto-reply.
 6. Added /_away alias. It sets you away but asks for a reason first.
    If no reason is given, it will use the default away message.
 7. Added autojoin in Network Settings dialog.
 8. Added mass commands in channel popups.
 9. Added Perform on start and removed startup items (you can specify files to run
    with perform on start).
10. Improved /whowin sorting using /filter routines. Very fast :-)
    Also rearranged and beautified the popups for the who window.
11. Added DCC history dialog and removed the old DCC History window ;-)
    There's a small problem with this. I'm using a DLL called MDX. And it seems
    to screw up the /filter command which I use for sorting the items. The bug
    can be reproduced like this:
   
    Select an item from the list, then attempt to sort by clicking any of the
    headers. You'll notice that the selected line is always in the last or the
    first line. I'll try to find a fix for this later.

12. Now using MDX for tabbed lists such as userlist, network settings, etc.
13. Can now change the auto-reply message for requests filter.
14. Added autonick regain in main IRC options.
15. Some of the menubar items now appear in the channel popups if the channels
    are desktop windows.

eof