On usermode

From Scriptwiki
Revision as of 21:21, 21 January 2006 by Doomie (talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

The on USERMODE event triggers triggers when you change your usermode.

on <level>:USERMODE:<commands>


Read access levels to get more info about the <level> field.

Note that $1- refers to the changed usermode.

Example

on *:USERMODE: {
 echo -a Changed usermode: $1-
}

This event would trigger when you get the confirmation of a usermode changing and echo's it to the active window.


To check if you e.g. have set +x is more complicated as $1- could e.g. be "-w+x", so you have to loop through $1-.

on *:USERMODE: {
 ; set looping variable and %m as variable holding whether the current mode we are looking at
 ; was set or unset
 var %i = 1, %m
 ; begin to loop through $1-
 while (%i <= $len($1-)) {
  ; check if the current char is "-" and set %m to it (all modes will be unset after "-")
  if ($mid($1-,%i,1) == -) { %m = - }
  ; check if the current char is "+" and set %m to it (all modes will be set after "+")
  if ($mid($1-,%i,1) == +) { %m = + }
  ; if the char we are looking at is "x"
  if ($mid($1-,%i,1) == x) { 
   ; we need to check whether %m is "+" (so x is set, not unset) and echo it
   if (%m == +) { echo -a Mode +x was just set. }
  }
}

See Also

To react on channelmode changes, take a look at the On Mode event.