splidge [Sat, 27 Mar 2010 17:53:14 +0000 (17:53 +0000)]
ACHIEVEMENTS: Big update
Some of these changes are actually included in the previous partial commits.
* Added title system
- First title you unlock is automatically selected
- Q command "title" lists available titles and lets you change preference
- After April 1 is over all titles are automatically removed
* Added timekeeping system
- Nothing works until April 1
- On April 1, all achievements and titles are enabled for everyone
- After April 1, titles are disabled. Achievements are only enabled for
users with +c set. Channel announcements are only enabled for channels
with +h set (couldn't use same flag sadly).
- These flags cannot be set before April 1.
- All commands are flagged appropriately and will automatically disable
and enable according to the above conditions.
* Added channel announcements
- Announcements in all channels that all account users are known in.
- Announcements only happen for achievements worth 30 or more points.
- After April 1 +h must be set in chanflags to see announcements.
- #achievements is exempt from most of these restrictions - any user in
#achievements will have their achievements announced if they are worth
30 or more points.
* Updated external achievements. Achievements added for triviabot and snailbot.
* Added scheduled saving of achievements database. Also saves old file
before saving.
splidge [Mon, 15 Mar 2010 00:17:34 +0000 (00:17 +0000)]
ACHIEVEMENTS: More achievement stuff
* Top 10 list
* Explicit Feat of Strength message for 0-point achievements
* Fixed flag slag/pwny/captain achievements
* Added achievements for channel ops
* Added achievements for using webchat and being voiced in a +m channel
* Various text tweaks
splidge [Sat, 13 Mar 2010 01:00:35 +0000 (01:00 +0000)]
ACHIEVEMENTS: More stuff
* Updated "achievements" command to allow other people's achievements to be
checked.
* Added "compare" command to compare achievements
* Added some Q flag related achievement sets (best flag, channels known on,
channels owned)
* Tweaked some achievement names - more better ideas welcome!
splidge [Thu, 11 Mar 2010 15:30:38 +0000 (15:30 +0000)]
CHANSERV: Added achievements system.
Includes library code to save/load achievement state and spam achievements to
users; infrastructure to allow achievement "scanners" to be added. Also
adds new achcmds module for commands related to achievements and initial
"achievements" command which just logs achievements you have.
3 basic achievements - being on channels, getting kicked and having a low
UID.
splidge [Thu, 3 Dec 2009 17:13:42 +0000 (17:13 +0000)]
NICK: Add "away" functionality.
- New member of nick structure
+ Code to initialize in localuser / nick modules
- Handler for "A" token to update value
+ Code to register it
- Added to control's "WHOIS" command
- Added newsearch term
splidge [Wed, 7 Oct 2009 22:39:04 +0000 (23:39 +0100)]
BANS/CHANNEL: Changed IP parsing to use ircd functions. Adds IPv6 support and fixes
wildcard ban issue. Updated ban matching to new code.
As a side effect of this, removed the _visible versions of the ban match
functions and added a third parameter to nickmatchban() and nickbanned()
instead. Updated existing calls to these functions accordingly.
Added reason parameter to cs_removechannel() and chanservpartchannel()
functions to allow reasons to be supplied when Q leaves a channel. Added
appropriate calls to these functions. Q will now always state the correct
reason when parting a channel (parts due to -j have no reason though).
splidge [Thu, 19 Mar 2009 00:38:35 +0000 (00:38 +0000)]
LOCALUSER: localuserkill() now triggers the HOOK_NICK_KILL trigger.
Fixes authtracker not terminating sessions when users are suspended, and
also corners where one service killing another doesn't properly clean up the
localuser setup.