As many of you have noticed we've just upgraded our main channel service, Q, to a new version.
This is a fairly major upgrade (the new Q has been rewritten from scratch) but it does replicate all the previous features of Q and add some new ones. There may be very minor teething troubles but we hope to have those resolved pretty soon :) All of your old channel, access flags and other settings have been migrated from the old Q so there's nothing to worry about.
One of the major changes this upgrade brings is that L has been replaced with Q as well. All channels that had L now have been 'upgraded' to Q automatically. L will no longer be on QuakeNet. A list of some of the new features are as follows:
The new Q is a rewrite from scratch, so all the messages the bot uses have been rewritten. This means most responses will be slightly different even when commands are otherwise the same. One general change in this area is that many commands now send confirmation after making a change, e.g. if you use CHANLEV to alter someone's flags it will show what their flags are after the change for confirmation.
You can now configure Q to either send you NOTICEs or PRIVMSGs. This is done using the new USERFLAGS command:
/MSG Q USERFLAGS +n - sets to NOTICE (default)
/MSG Q USERFLAGS -n - sets to PRIVMSG
New flags Some new flags have been added to users (CHANLEV):
+k KNOWN - This is a new level of access below VOICE (+v). It doesn't entitle you to getting op/voice on the channel, but it identifies you as a known user. This allows you to set personal flags, and use the INVITE command. It is also used in conjunction with the +k chanflag (see below).
+g GIVE VOICE - Similar to L, this combines with +v to give you autovoice when you join the channel. Note that +av will no longer do this (and in fact is no longer allowed, see below).
+p PROTECT - This protects your op or voice on the channel (i.e. restores it if it is lost for any reason). It has the same effect as +p CHANFLAG, but on a per-user basis.
+d DEOP - This is a "punishment" flag that prevents the user ever getting ops.
+q QUIET - This is a "punishment" flag that prevents the user ever getting voice.
Personal flags are a new category of chanlev flag. Accessed via CHANLEV as normal, these can only be set and cleared on yourself and cannot be seen from others. Note that you will need at least known (+k) access to set these on a channel. The personal flags are:
+w HIDE WELCOME - you can set this if you get bored of being spammed with the welcome message every time you join the channel
+j AUTOINVITE - if you set this, Q will invite you to the channel when you AUTH.
CHANLEV operation changes
Q is now strict about not allowing non-sensical combinations of flags. For example, you can't be banned (+b) if you are a master - since masters can just remove +b. You can't have autoop (+a) without op, and you can't have autoop and autovoice at the same time. Also, the new PROTECT (+p) flag includes autoop/voice functionality so you can't have +a/+g set if you are +p.
Like L, you can remove any of your own flags (except +b, +d or +q).
A new command GIVEOWNER has been added for the purposes of giving +n to other users. This is no longer possible via a normal CHANLEV command (although CHANLEV still allows for owner removal). The GIVEOWNER command needs to be run twice - the second time using a code provided the first time. This should make accidentally giving away +n a lot harder.
Channel ban features
Q now has a few new functions related to bans, these are:
You can configure Q to kick banned users off the channel automatically. This is controlled by the +e chanflag.
You can configure Q to auto-remove channel bans after a certain time. This is controlled by the new BANTIMER command.
You can now set "Q bans" with an expiry time, using the new TEMPBAN command. For clarity, the old BAN command has been renamed to PERMBAN (but BAN still works for now).
Channel mode feature
You can configure Q to enforce, or prohibit, any combination of modes on the channel (including limits and keys). This is done via the new CHANMODE feature - CHANMODE +mode will enforce that mode on the channel, and -mode will prevent it being set. Note that because both + and - modes are allowed, you have to specify the complete list of modes whenever you change it. This replaces the SETINVITE feature of L, and the +k and +l chanflags and associated KEY and LIMIT commands from Q. Auth history feature
A new feature to track auths to your account has been added. Accessed via the AUTHHISTORY command, it shows you the last 10 logins to your account with the hostmask (and disconnect times). The old AUTHHISTORY command from Q is now called CHANOPHISTORY.
The list of available channel flags has been overhauled, and the following flag settings are now available:
+a, +g, +p (AUTOOP, AUTOVOICE, PROTECT) These have exactly the same effect as giving the chanlev flag to every eligible user. So you can turn autoopping on and off for the whole channel in one place - although the chanlev flags can still be used as well (either being set is enough).
+c, +f, +t, +b, +p, +w (AUTOLIMIT, FORCETOPIC, TOPICSAVE, BITCH, PROTECT, WELCOME) function the same as the old Q
+e (ENFORCE BANS) - see above
+v (VOICE ALL) - This chanflag will cause Q to voice everyone who joins the channel, unless they have +q chanlev flag set.
+k (KNOWN ONLY) - This chanflag will cause Q to kick anyone who isn't known (+k or above) out of the channel. Useful for extra security for private channels. It will ban users if they aren't prevented from rejoining by +i.
Note that +k and +l have been removed, replaced by CHANMODE as described above.
You can now get some statistics including maximum size and total number of joins on your channel. Statistics are maintained from the time each channel is created, but "resettable" statistics are also kept that can be reset. Use the CHANSTAT command to view these statistics, or reset them.
Channel user list
It's now possible to get a list of all the users on the channel, who they are authed as and what flags they have on Q. In order to get the list you need to be known on the channel and be on it. Use the USERS command to see the list.
And that's it! We hope you like the additional features the new Q provides, and the upgrade of all channels to Q from L. Have fun!