CVS log for darkstar/modules/nickmgr.dsm |
![]() |
Request diff between arbitrary revisions
Officially moving to EPIC5! * Fixed $getdsets(), $getfsets(), $loadedmods() and $mods() with EPIC5. * tabkey.dsm now works without /xdebug dword in EPIC5. * Updated darkstar.irc to require EPIC5 instead of EPIC4.
* Always delete the 'nickmgr' timer in nickmgr.add_timer before creating a new timer.
Prevent nickmgr.nickchange from sending more than one request at a time to a server.
Make sure to $encode() any server refnums that are used as /ASSIGN variable names. It was brought to my attention by larne that it is possible for one of the server functions to return a negative refnum and '-' is not allowed in variable names.
Remove $serverrefs() and replace all calls to it with calls to $myservers().
* Mention the server's name instead of its refnum when changing nicks. * Add missing semi-colon in the 319 hook (WHOIS_CHANNELS[_WRAP]).
DarkStar 0.3pre4 * Change the format of module headers. * Add support for loading modules with the PF loader. * Convert all scripts to the PF loader format. * Add support for multi-server msg windows. * Set CURRENT_WINDOW_LEVEL to ALL in darkstar.irc. This should prevent output that doesn't belong in a msg window from being sent to one. Hopefully it won't cause any problems for people with different setups than my own.
* Make sure that new windows created by auto-query belong to the correct server refnum. Reported by larne. * Fix some cases of double expansion that were introduced in recent commits.
* Make sure nickmgr.hook doesn't do anything if /DSET NICKMGR is OFF.
* Add a $numlines() function. * Add a /PURGEARRAY command. * Rewrite /LESS so that it uses $numlines() to correctly pause between each full screen of output. * Rewrite the memo.list alias to use _less.split_array and _less.output. * Remove some unnecessary stuff from various module cleanup queues.
DarkStar 0.3pre2 * Make AUTO_CREATE_WINDOWS use /WINDOW NEW_HIDE instead of /WINDOW NEW HIDE. This should significantly improve things over slow connections. * Set HOLD_SLIDER to 0 before usign /WINDOW HOLD_MODE to prevent output from scrolling the modlist and theme list off the screen while they are waiting for user input. Yay, this finally works. :-) * Make the dynamic shortcut aliases created by window.dsm use /WINDOW REFNUM_OR_SWAP instead of /WINDOW SWAP, allowing them to work for non-hidden windows. * Have the oper and window modules load their save files themselves in the beginning of the STARTUP section, and stop using /DEFER there. * Make sure to specify the window refnum in the window_create hook in window.dsc so that it will work correctly on windows created with NEW_HIDE. * Add a nickmgr.add_timer alias and pass "-win -1" to /TIMER. This will hopefully prevent those "Window [n] doesnt exist any more. Punting." warnings. * Change default value of LOAD_PROMPT to ON.
* Include the server name in the match field of all hooks added by the /ADDTOPIC and /ETOPIC commands. * Have the 332 and topic hooks, that are responsible for topic formatting, attempt to remove any 333 hooks that may be leftover from /ADDTOPIC or /ETOPIC. These leftover hooks are the result of some ircds (ircnet) not always sending the 333 numeric along with 332. This is an ugly hack so I hope it doesn't cause any problems. Reported by desaster. * Change the arguments passed to the TOPIC* formats. * Update all themes for the above change. * Use /WINDOW HOLD_MODE instead of /SET SUPPRESS_SERVER_MOTD (no longer exists) to prevent the module list or theme list from being scrolled off the screen when first loaded. Unfortunately this doesn't quite work 100% of the time. * Fix the default value for OPERVIEW_ARGS and MSG_WINDOW_ARGS. * Fix $getfsets() * Load set.dsc before any of the other core scripts. This will allow all of them to add config/format variables. * Move the DOUBLE_STATUS stuff out of theme.dsm and into a new core script named window.dsc. * Move the PgUp/PgDn key bindings out of darkstar.irc and into window.dsc. Also, move the ^X key binding to channel.dsm. * Get rid of module.load_saved_settings. Modules that want to access their saved settings during load time can use /DEFER to cause the commands to be run after the module finishes loading.
Okay, this is the big commit towards 0.3. This is not a release, but a very
early, alpha quality pre-release. A lot has changed so it's likely that I
will miss something here.
WARNING: This commit WILL break most themes and possibly some modules.
* Move the theme system out of the core. Theme support is now provided
by theme.dsm.
* Remove status.dsc and let all the statbar stuff be handled by themes.
* Add a separate help system for modules (/MHELP).
* Rename loader.dsc to modules.dsc.
* The module loader has had a complete overhaul. Many of the internal
structures and commands have changed and so has the UI, including:
- The *_VERBOSE config variables have been removed, along with
AUTO_LOAD_PROMPT (replaced by LOAD_PROMPT).
- New interface to the auto-load list: /AUTOLOAD
* Complete rewrite of save.dsc.
* config.dsc has been renamed to set.dsc and has also had an overhaul.
Of particular note is that the config.add and format.add aliases have
been deprecated and the new addconfig/addformat aliases should be used
instead. The internal structures have changed significantly here, too.
* Add CrazyEddy's command queueing system (/QCMD, /FQCMD, /Q1CMD, /FQ1CMD)
from the 'commandqueues' script distributed with EPIC4.
* Rename $bool_to_num() and $bool_to_onoff() to $bool2num() and $bool2word().
* Add a $chanvoice() function donated by |Rain|.
* Add a $getitems() function.
* Add two new set related fucntions: $getdsets() and $getfsets()
* Add a $visiblewins() function to return a list of currently visible window
refnums.
* All of the standard formats, like JOIN, PART, MSG, PUBLIC, etc. have been
moved into a single module named formats.dsm. This includes what was the
names module.
* The theme module is now responsible for allowing themes to set double on/off
for normal, non-fixed windows (msgwin/operview are fixed). This is done
using a new config var named DOUBLE_STATUS.
* Cleanup the msgwin/operview code and remove (almost) all references to one
from the other. They should now coexist peacefully without any knowledge of
each other.
* Update all themes regarding the recent changes. All of the previous theme
files have been removed and replaced by two files: core and formats.
* /MASSMODE and /TBAN will now try to get the max number of modes MODES (005).
* /WALL (type 2) now tries to get the max targets from MAXTARGETS (005).
* Add an easier interface to changing the nickmgr nick list: /NICKMGR
* Clear the UPDATES file.
* Only run nickmgr.scan at startup if NICK_MANAGER_SCAN_INTERVAL is >= 60.
* We shouldn't append "!*@*" to the end of unknown ban targets. Let the client handle this. * Increase the delay for the initial nick scan in the STARTUP section. This is to allow all modules to finish loading before running the scan. Apparently, the module loader or another module that is loading interferes with the $is_on() function.
The nickmgr.scan and nickmgr.nickchange aliases should make absolutely sure they are connected to the specified server before taking any action.
Oops, "else" isn't a real command and can't begin a line unless the previous newline character is escaped.
functions.dsc: * $is_on() should just exit right away if no nick argument is found. * Convert several functions to function_return instead of /RETURN. window.dsm: * Add support for automatically creating/destroying windows on join/part. This includes 3 new config variables: JOIN_NEW_WINDOW, JOIN_NEW_WINDOW_ARGS, and PART_KILL_WINDOW. * Create an alias called window.msgwin.fix and move most of the code from window.msgwin.create into it. This should alias should reset all the msg window properties to the correct values. * Call window.msgwin.fix from the window_create and window_kill hooks. * Minor formatting changes for readability. * Update help page. oper.dsm: * Similar changes to those made in window.dsm for the msg window but relating to the operview window. * Add /ON hooks for window_create and window_kill that will call the oper.operview.fix alias. nickmgr.dsm: * Restart the /TIMER for nickmgr.scan whenever NICK_MANAGER_SCAN_INTERVAL changes. * Keep track of active scans for each server in an attempt to prevent nickmgr.scan from flooding the server with ISON requests when it gets lagged (and consequently flooding it with /NICK requests when the replies come back all at once). It is difficult to adequately test this, so I hope it works. :-) Both the operview and msg windows are now much more resilient to changes in other windows, although the use of them together at the same time can still cause problems.
/XEVAL didn't support the use of -- to stop option processing until around commit_id 596 so it's not a good idea to prefix commands with // when using it.
* Remove keepnick from the auto-load list and add nickmgr. * Add a /nickscan alias (just a shortcut to nickmgr.scan). * Update help pages.
Remove the keepnick module and add the all new nickmgr module! Woot! See you in Hell keepnick! ;-)
| CVS Admin |
Powered by ViewCVS 0.9.2 |