Difference between revisions of "On usermode"

From Scriptwiki
Jump to: navigation, search
 
m
 
(One intermediate revision by one other user not shown)
Line 30: Line 30:
 
     if (%m == +) { echo -a Mode +x was just set. }
 
     if (%m == +) { echo -a Mode +x was just set. }
 
   }
 
   }
 +
  [[inc]] %i
 
  }
 
  }
  
 
== See Also ==
 
== See Also ==
To react on channelmode changes, take a look at the [[On_mode|On Mode event]].
+
* [[On_mode|On Mode event]] to react on channelmode changes.
  
 
[[Category:Events]]
 
[[Category:Events]]

Latest revision as of 10:00, 2 July 2007

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. }
  }
  inc %i
}

See Also