From WikiChip
Editing mirc/on event

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

This page supports semantic in-text annotations (e.g. "[[Is specified as::World Heritage Site]]") to build structured and queryable content provided by Semantic MediaWiki. For a comprehensive description on how to use annotations or the #ask parser function, please have a look at the getting started, in-text annotation, or inline queries help pages.

Latest revision Your text
Line 1: Line 1:
{{mirc title|On Events}}
+
{{mIRC Guide}}
 
'''Triggers''' or more commonly '''On Events''' are blocks of code that gets executed when a certain event occurs. This is how most channel bots, scripts, and games work. All events, with the exceptions of custom ones, get automatically called. (We will talk about custom events later on)  
 
'''Triggers''' or more commonly '''On Events''' are blocks of code that gets executed when a certain event occurs. This is how most channel bots, scripts, and games work. All events, with the exceptions of custom ones, get automatically called. (We will talk about custom events later on)  
  
Line 15: Line 15:
 
We should probably mention that the colon (":") is an important part of the event line. It effectively divides the different sections of the event into parts. As a result, certain parameters that accept input like text cannot include that character in them. We will touch on that a little later in this tutorial.
 
We should probably mention that the colon (":") is an important part of the event line. It effectively divides the different sections of the event into parts. As a result, certain parameters that accept input like text cannot include that character in them. We will touch on that a little later in this tutorial.
  
At this point I feel the need to talk more about how events work with respect to multiple script files. When some kind of an action take place, like a user entering a channel or a user quitting, mIRC will scan each file for a matching event. When a matching event is found, the code gets executed, and mIRC moves on searching of a matching event in the next file. As a result, you cannot have two identical events in the same file, only the first one will get executed. It means the order of definition of your event does matter, compared to aliases:
+
At this point I feel the need to talk more about how events work with respect to multiple script files. When some kind of an action take place, like a user entering a channel or a user quitting, mIRC will scan each file for a matching event. When a matching event is found, the code gets executed, and mIRC moves on searching of a matching event in the next file. As a result, you cannot have two identical events in the same file, only the first one will get executed.
  
<syntaxhighlight lang="mIRC">
+
== Level ==
;this event triggers whenever someone says anything (the *) on the channel #help
+
{{main|Access levels - mIRC}}
on *:text:*:#help:{
+
All events have a level parameter. The level parameter indicates which user access level can trigger this specific event. It is important understand that mIRC's access levels are NOT related to access levels that are controls by IRC services like Anope's Services (ChanServ/NickServ).
 
 
}
 
;this one triggers when someone says !help on the channel #help
 
on *:text:!help:#help:{
 
 
 
}
 
</syntaxhighlight>With that order, when someone says !help, since the first event triggers for any text, it will triggers for !help, meaning the second event will never trigger, so this configuration doesn't make sense. However the other way around does:
 
 
 
<syntaxhighlight lang="mIRC">
 
on *:text:!help:#help:{
 
 
 
}
 
on *:text:*:#help:{
 
 
 
}
 
</syntaxhighlight>Now when someone says !help, it will trigger the first event, as we expect, while the other event will still trigger for any other text.
 
 
 
 
 
'''Note''': These events are empty for the sake of the example
 
 
 
== Levels ==
 
All events have an {{mIRC|access levels|access level}} parameter. The access level parameter indicates which user access level can trigger this specific event. It is important to understand that mIRC's access levels are NOT related to access levels that are controls by IRC services like Anope's Services (ChanServ/NickServ).
 
  
 
== Built-In Events ==
 
== Built-In Events ==
 +
{{main|List of on events - mIRC}}
 +
Built-In events are events that get executed whenever certain action took place in mIRC. For example, when a user joins a channel, you can write a script that will utilize the on join event which will voice the user.
  
{{mIRC|on events|Built-In events}} are events that get executed whenever certain action took place in mIRC. For example, when a user joins a channel, you can write a script that will utilize the on join event which will voice the user.
+
When an event gets executed, a number of additional identifiers become accessible. Some of the most common identifiers are (whenever applicable):
 
 
When an event gets executed, a number of additional identifiers become accessible, we call them {{mIRC|local identifiers}}. Some of the most common identifiers are (whenever applicable):
 
  
 
* '''$nick''' - The nickname of the user that triggered the event
 
* '''$nick''' - The nickname of the user that triggered the event
Line 53: Line 31:
 
* '''$target''' - The name of where the event took place. (This can be a window, a query, or a channel name)
 
* '''$target''' - The name of where the event took place. (This can be a window, a query, or a channel name)
 
* '''$wildsite''' - The address of the user who triggered an event (in *!*@host format)
 
* '''$wildsite''' - The address of the user who triggered an event (in *!*@host format)
 +
 +
'''Note:''' This is not an exhaustive list
  
 
=== On Join ===
 
=== On Join ===
Line 98: Line 78:
  
 
==== Wildcard text pattern ====
 
==== Wildcard text pattern ====
The matchtext can contain {{mirc|wildcard}} characters:  
+
The matchtext can contain wild characters:  
 
* * - matches any text
 
* * - matches any text
 
* ? - matches any single letter
 
* ? - matches any single letter
Line 106: Line 86:
 
* !test - the matchtext will only match if the ONLY word is "!test"
 
* !test - the matchtext will only match if the ONLY word is "!test"
 
* !test* - the matchtext will match if the text starts with "!test"
 
* !test* - the matchtext will match if the text starts with "!test"
* *!test - the matchtext will match if the text ends with "!test"
+
* *!test - the matchtext will match if the text ends with the word "!test"
 
* *!test* - the matchtext will match any text that has "!test" in it (anywhere)
 
* *!test* - the matchtext will match any text that has "!test" in it (anywhere)
  
 
==== The basic text pattern ====
 
==== The basic text pattern ====
The most basic on text event is the normal {{mirc|wildcard}} pattern:
+
The most basic on text event is the normal wildcard pattern:
  
 
<syntaxhighlight lang="mIRC">on *:text:!help:#:{
 
<syntaxhighlight lang="mIRC">on *:text:!help:#:{
Line 141: Line 121:
 
}</syntaxhighlight>
 
}</syntaxhighlight>
  
If the entire match text pattern contains a SINGLE variable, the $() is not required.  
+
If the entire match text patter contains a SINGLE variable, the $() is not required.  
  
 
Example:
 
Example:
Line 178: Line 158:
 
<syntaxhighlight lang="mIRC">on *:signal:<eventName>:<command></syntaxhighlight>
 
<syntaxhighlight lang="mIRC">on *:signal:<eventName>:<command></syntaxhighlight>
  
A custom signal event can be called using the {{mIRC|/signal}} command:
+
A custom signal event can be called using the signal command:
  
 
<syntaxhighlight lang="mIRC">/signal [-n] <eventName> [parameters]</syntaxhighlight>
 
<syntaxhighlight lang="mIRC">/signal [-n] <eventName> [parameters]</syntaxhighlight>
  
== See also ==
+
[[Category:mIRC]]
* [[List of on events - mIRC|List of on events]]
 
 
 
[[Category:mIRC|on event]]
 

Please note that all contributions to WikiChip may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see WikiChip:Copyrights for details). Do not submit copyrighted work without permission!

Cancel | Editing help (opens in new window)