IV.
Advanced Chatting 1.
Modes and their meanings During the course of your chatting you may notice some messages like this:
* Bob sets mode: +o Jim Or something along those lines. What this means is that Bob is setting modes...in other words, configuring the channel or its users. In this case, he has made Jim an op. Before we go father, here is a list of modes and their meanings:
o -- Channel Op*
h -- Halfop*
v -- Voice*
q -- Owner*
a -- Admin*
b -- Banned*
m -- Moderated Channel (Only Voices and above may talk)
n -- Block External Messages (You can only send messages to the channel if you are in it)
t -- Only Halfops and Above may change the topic (Self-explanatory)
p -- Private Channel (Now exactly the same as +s in most IRCds)
s -- Secret Channel (Basically keeps people from finding the channel's name...does just what you would think)
i -- Invite-Only (You must be invited with the /invite command to join the channel)
l -- Limit to certain number of users* (Only X users may be in the channel at a time)
k -- Password-Protected* (You must supply a password to join. You join a +k channel using /join #channel password)
The modes with *'s require a target, meaning that they are applied to a specific thing on the channel or, in the case of k and l, accept certain parameters. The other modes are settings that apply to the entire channel. With the exception of Admin and Owner, which are unique to UnrealIRCd, all of these modes are universally supported. Many IRCds support more modes which are not listed here, you will have to look at the documentation for those IRCds to find them.
Now, it's pretty easy to see what someone's doing when you get a message like this:
* Bob sets mode: +m In this case, Bob is simply setting the channel to Moderated. But mode strings can get pretty complicated. Take a look at this:
* Bob sets mode: +ilomb-h 12 Jim *!*@verizon.net Joe What happens in a case like this is you read the list of modes from left to right and look for targets...so here's a breakdown of what just happened:
+i - the i mode does not need a target. This sets the channel to invite only.
+l - the l mode does need a target. So we look at the first target specified, which in this case is 12. Therefore, this sets the channel limited to 12 users.
+o - the o mode also requires a target. Since this is the second target-requiring mode, we look at the next second supplied, which is Jim. So, this part of the string sets Jim to Op status.
+m - the m mode does not require a target. This sets the channel to moderated status.
+b - the b mode requires a target. Since it is the third target-requiring mode of this string, we look at the third target supplied, which is *!*@verizon.net. So this part of the mode bans all users with an address @verizon.net
-h - the h mode requires a target. So we look at the last target specified, which is Joe. So Joe is losing his HalfOp status.
2.
Random Knowledge[/]
There are a few things in IRC that are useful to know, however they really don't belong under any section here. So I've decided to give them the mention they deserve by sticking them here.
Address Formats
IRC addresses are unique strings by which an individual on an IRC server may be identified. They are highly preferable for long-term identifications as opposed to nicknames because, while it is easy for a user to change their nickname, addresses are harder to change (but there are ways to do it). Addresses are formatted as nick!user@host. There are also things called hostmasks, which simply omit the nickname from the address and thus are formatted user@host. The most common reason to identify someone by an address as opposed to a nickname is for a ban. 90% of the time that addresses are used, they will accept wildcard strings. There is a tutorial in this site by me which has some information on using wildcards if you are not familiar with them.
Net Splits
A net split is when one or more servers are disconnected from a network, usually so that they can be rerouted. They typically last a few minutes. Recall that an IRC network is a group of IRC servers that exchange information with one another. Therefore, when this communication link is broken, people that are on servers that were split from your server will appear to disconnect. Here is a network diagram; let each letter represent a server on the network and assume that the net split occurs on the *
A---B-*-D---F
| |
C E
In this case, users on the left half of the network (servers A, B, and C) would be able to communicate with each other, and users on the right half of the network (servers D, E, and F) would also be able to communicate with each other, but users on the right half would not be able to communicate with users on the left half (and vice versa) until the split was corrected and the link between servers D and B was re-established.
Often you will receive global notices when a net split is about to occur.
A few advanced commands /whois -- Returns various information about a user on a network.
/whowas -- Returns a list of previous users for a specific nickname which is not currently in use.
/userhost -- Returns a person's userhost. Since this same information is also given in a normal /whois, this is usually used in scripts
/info -- Same as a /whois, but returns the information in a prettier GUI.
/ctcp <nick> PING -- PINGs a user. Often useful to test how much lag a user is experiencing.
/ctcp <nick> VERSION -- This will usually tell you what client and version the user is using. Most often used to identify bots or check if a person's client supports certain features.
IRCops and Network Staff An IRCop (sometimes called an oper) is a user with special server- or network-wide privileges. They are part of the network's administration, and their job is to keep the network running smoothly and keep the users happy. If you have any problems or questions concerning IRC or a specific server, these are often the best people to ask, because they are typically very knowledgeable about IRC in general. They usually have the ability to act as if they were opped/ownered on any channel (this ability is known as OperOverride), even if nobody has set them as such. They can also perform a /kill, which forcibly disconnects a user from the network, as well as G:Line and AKILL, which are essentially the same and are used to ban a user from connecting to the entire network. They have other abilities as well, but for the most part this is all you'll hear talked about.
Generally, IRCops do not help with channel affairs. This means if your channel is taken over, there is usually little that IRCops can do to help you. If this happens, you should still try to find an oper to help you, but know that the probability of them being willing to recover it for you is low, unless you know them personally and they know for sure that the channel is rightfully yours. It is also highly unethical for an IRCop to use op-restricted commands (such as setting modes, kicking and banning, etc) in channels where they have not been opped (by someone other than themselves, obviously). If you hear someone referring to an "O:Line" or "Operblock", they are referring to the lines of the configuration file that give someone oper priveliges. There are several types of IRCops you might encounter; in loose order of least to most "power" (for lack of a better term), they are: Helpop (very few oper capabilities), Local Oper (limited capabilites, and only able to affect a single server), Server Admin/Co-Admin (full control over a single server; often have limited network-wide control as well), Global Oper (general control over the entire network), Services Admin and/or Services Root Admin (higher control over the entire network; also have full access to services), Network Admin (full control over the entire network). Keep in mind that oper's priveliges are very specific and therefore order in this list may not always be accurate.
You can identify an IRCop by doing a /whois on the user.
3.
Starting a Channel So, you want to start your own channel? The first thing you'll need to do is decide on a name for your channel. It must be unique on the network; you cannot start a channel with a name identical to one that already exists. Once you've decided on a name, simply join that channel name. If it is a unique channel and not already registered to somebody, you should be alone in that channel and opped. By strict definition, you have now created a channel. However, if you want your channel to last very long or grow very big, you'll need to do more than just this. Remember that as soon as the last user on a channel /parts that channel, as far as the server is concerned, that channel no longer exists. Once this happens anyone is free to /join your channel and "create" it again, thus gaining op status and essentially taking it over. Many networks have a service to allow you to register a channel, which, among other things, prevents this from happening. However, a few networks do not offer these services. If that is your case, read below for how to maintain a channel under this condition.
On networks WITH services... Most networks that offer services use XServ-style services. In that case, you will first need to register your nickname by using a command like this
/msg NickServ REGISTER <password> <e-mail>. It is recommended here that you use an actual e-mail address, as many networks will require you to confirm the registration via e-mail. Also remember that the password you choose will be case-sensitive. If you get the "NickServ no such nick/channel" error when using this command then either your network does not offer services or uses the Q/L type rather than XServ.
After you have registered your nickname, you will need to be sure that you are opped on the channel you wish to register. Now type
/msg ChanServ REGISTER <channel> <password> <description>. You should probably choose a different password from your NickServ password. Also note that you must specify a description.
Your nickname and channel should now be registered. Your nickserv registration insures that nobody impersonates you to gain control of your channel. You will now need to log in with NickServ first, followed by ChanServ every time you connect in order to gain full contol over your channel. Typically, you do this through the use of the
/msg NickServ IDENTIFY <password> and
/msg ChanServ IDENTIFY <channel> <password> commands, respectively.
A few networks offer another variation on services, such as Q and L. In this case, there are usually requirements for registering a channel, like you must have a certain number of users in it first, or you must have an administrator approve your channel. Typically, these networks have either partially automated or completely non-automated methods of registering a channel, and you should check their website or ask in a network channel (#help is always a good one to try if you don't know the place to ask)
On networks WITHOUT services...You have a few options for keeping control of your channel. The first and easiest is to simply leave mIRC running as much as possible and always be in that channel. If you need to exit mIRC to restart your computer or something, make sure you only do so if there is someone else on the channel that you trust and who has an @ to "hold the fort". If you choose this option, I suggest you use the option in mIRC to "Minimize mIRC to System Tray" so that you can get the window out of your way when you're not currently chatting.
Another option is to use a bot. This is typically done by download a program such as
http://www.mircscripts.com/cgi-bin/file.php?id=219 that will run in the background and controls your channel for you. The advantage to this option is that you don't have to keep an mIRC window open all the time, and you can also program the bot to act a lot like ChanServ or something and perform a lot of automated tasks, and all it requires is basic knowledge to do this.
There are also a few bots coded for mIRC that will behave like WinBot. It's all about personal preference which bot you choose.
4.
Channel Administration and Associated commands So now that you've got a channel to administer, it's time to learn how to do that.
We'll start of with a list of basic, universal commands that are useful in controlling a channel. These commands will work on any IRC network.
/kick <#channel> <nick> [reason] This simply kicks the specified user out of the channel. Reason is optional.
/mode <#channel> <+|-modestring> [params] If you're used to seeing mode changes then this command should seem fairly basic to you. [params] is what I've previously referred to as targets. So if you wanted to op Joe, deop Bob, and ban the address *!*@idiots.com on the channel #noidiots, you would use the command /mode #noidiots +ob-o Joe *!*@idiots.com Bob. See how each modechar (a modechar is the letter associated with a certain mode) maps on to its respective target?
If this is too complicated it is also, of course acceptable to use multiple mode commands setting one mode each, though this requires more typing and effort. Ex.
/mode #noidiots +o Joe
/mode #noidiots +b *!*@idiots.com
/mode #noidiots -o Bob
/ban [-kuN] <#channel> <nick> [type] [reason] This complicated-looking command is really quite simple. The -k switch you can specify at the beginning will cause mIRC to not only ban the person's address, but kick them simultaneously. If you specify the -uN switch, then the ban will automatically be unset after N seconds. Don't worry, mIRC will automatically look up the address for the specified nickname; there's no need to enter an address directly into the /ban command. Type is optional and is the numeric "type" of the ban, the most common and practical generally being 2. For a list of all the types, use the /help $mask command in mIRC. If you don't understand this parameter, just don't specify it. Reason is the reason that will be used in the kick message, and is only valid if you specified the -k switch (since you cannot specify a reason for a ban).
Examples:
/ban -ku60 #noidiots Bob I don't like you -- Will kick and ban Bob from #noidiots. The kick reason will be "I don't like you" and the ban will be unset after 60 seconds.
/ban #noidiots Bob -- This simply places a ban on Bob's address. Note that it does NOT kick him out of the channel.
/ban -k #noidiots Bob 9 Change your nickname -- This places a kick/ban on Bob's address, formatted as type 9. Note that type 9 should almost never be used in a ban command as it is *easily* evadeable.
--THIS SECTION TO BE CONTINUED--
Hope this tutorial has been useful in educating new users to the world of IRC!! Any suggestions or feedback is welcomed!