Registered usersRegistration of users in KVIrc
The "registered user database" is basically a set of users with associated irc-masks and properties.
It is used to recognize users on IRC and associate properties to them.
This works more or less like the IRC ban list, K-Line list, or invite list.
A registered user database entry is identified by an unique name.
It may be the nickname of the user that you want to match, or the real name (if you know it) or any other string (even with spaces). The name is an "internal identifier" for the user entry: each name maps to a single entry and each entry has a single name.
Each entry has a set of registration irc-masks: these masks are used to recognize the user on irc.
The masks have the common IRC mask format: <nick>!<user>@<host>
The masks may contain '*' and '?' wildcards that match any portion of text.
Are examples of valid registration masks.
The masks with wildcards can actually match more than a single user.
For example the mask *!root@*.host.com will match all the users having root as username and coming from the host.com domain.
For this reason putting wildcards in nicknames could become a problem if not used carefully (but may also be used to achieve interesting tricks).
If you don't use wildcards in nicknames you are sure that in a single irc connection , a mask will always refer to a single user.
You will commonly use the following format:
In this way you can be 95% sure that the mask will really match the correct user.
Example of registration and lookups
Assume that you want to registere a friend of yours: Derek Riggs.|
Derek often uses "Eddie" as his nickname "stranger" as username and has a dial-up connection that makes his IP address appear as <variable-number>.somewhere.in.time.org.
You will add an entry with name "Derek Riggs" and a registration mask like the following: Eddie!stranger@*.somewhere.in.time.org.
If the IRC servers keep adding strange characters (prefixes) at the beginning of his username you may use Eddie!*stranger@*.somewhere.in.time.org.
If Eddie also often connects from the wasted.years.org domain and gets 'eddie' as username there, you might add a second registration mask as follows: Eddie!*eddie@*.wasted.years.org.
An alternative could be use only one mask with *.org as domain and allow any username (Eddie!*@*.org) but this could become dangerous since it could match the users that you don't want to.
On the other hand, if you dislike the users with the nickname Eddie that come from .org and you're implementing an auto-kick system, the correct mask to register is "Eddie!*@*.org".
KVirc ties to be smart , and always find the most correct match for an user: If you have two masks registered: Pragma!*xor@*.myisp.it and *!*@*.myisp.it, kvirc will match Pragmafirstname.lastname@example.org with the first one even if the second one matches too; the firs one is a best match.
A registered user has an (eventually empty) set of properties defined by name/value pairs. (In versions prior to 3.0.0 flags were used instead, but revealed to be insufficient).
KVirc recognizes some of these proprietes and associates semantic actions to it; other properties are left for scripting extension. Property names are case insensitive.
One of the recognized properties is the "notify" property. When an user is found to have this property set to a special value KVIrc will attempt to track the user presence on IRC. Another one is the avatar property. Its value should be the name of the "default" avatar image file for the specified user.
The "ignore" property should be set to "1" (or "true") for users that have to be ignored (:D).
The interface to the database
The reguser module is the interface to the "registered users database".
It provides a set of commands for adding and removing masks and manipulating properties.