Okay, the update everyone(?) has been waiting for is here! This is a pretty big update, hence the larger version increment to distinguish it more from the previous release. It not only incorporates the promised chat-based voting features, but also addresses a couple of general issues with chat votes (such as expiration), and while combing through the existing TMX /add code to integrate the new voting commands I also discovered and fixed a handful of (minor) bugs in the /add and /y commands. And as if that's not enough, this release also includes a new admin command and several minor improvements.

The new voting plugin is a big and complex one, with many configuration options. To fully understand it, you should really take your time to read through the features list below as well as the comments in the init_votes function, but it was built to be very flexible to meet different admins' needs, and to be easy to use, so the default options should work fine in most cases and there's no need to feel daunted.

* new and sophisticated chat-based voting; by including plugin.rasp_votes.php and setting $feature_votes in rasp.settings.php to true, normal CallVotes are disabled and the following features become available:

# new /helpvote command to display usage info and the actual voting ratios for the new voting commands
# new /endround vote to end a round (only enabled in Rounds/Team modes)
# new /ladder vote to restart the current track immediately when the ladder is down
# new /replay vote to replay the current track after it's done (prepends it to jukebox)
# new /skip vote to skip the current track immediately
# new /kick vote to kick a player
# new /cancel command for a player to cancel his/her own vote (also works with TMX /add votes; admins can /cancel any vote)
# extensive configuration options:

- separate voting ratios per type of vote, so e.g. a kick vote is harder to pass than an endround vote
- option to enable /kick vote (default: on) and enable kicking of admins (default: off); if disabled, /kick also isn't listed in the /helpvote output
- option to perform /ladder restart via quick ChallengeRestart or by prepending track to jukebox and doing NextChallenge
- option to automatically vote for the vote starter, otherwise the old way remains where the starter also has to vote /y
- vote expiration options:
in Rounds/Team modes all votes (except /endround) expire within 3 rounds (default);
in TimeAttack/Laps/Stunts modes all votes expire after approximately 120 seconds / 2 minutes (default);
expiration is necessary, otherwise unpassed votes will linger on until the end of the track, preventing players from starting another vote
- vote reminder options:
in Rounds/Team modes a reminder can be shown after every round until the vote passes or expires;
in TimeAttack/Laps/Stunts modes a reminder can be shown approximately every 30 seconds (default) until the vote passes or expires;
reminders help players not forget about ongoing votes after the last vote message has scrolled out of the chat window
- optional limits to the number of /ladder, /replay & /skip votes per track (default max: 2); if a limit is 0, that particular vote is disabled
- optional limits to when /ladder, /replay & /skip votes are allowed in Rounds and TimeAttack mode:
in Rounds the limit is based on the number of points that the first player already has, compared to the server's points limit;
in TimeAttack the limit is based on the time the track is already running, compared to the server's time limit;
/ladder is disabled after 40%, /replay is disabled before 50%, and /skip is disabled after 70% of those limits (all percentages configurable)
- the rationale behind these optional limits is that it's: annoying to go through the same type of vote more than twice; annoying to go through a ladder restart vote when the track is already a few minutes under way; too early to decide whether to play a track again if when it's not even halfway done; and annoying to go through a skip vote when a track is close to completion
- there's no limit to the number of endround and kick votes per track, because you may need more than a few of them J
- there are no /ladder, /replay & /skip limits in Team, Laps & Stunts modes

# there's no /ban vote command because IMHO only admins should be able to ban
# in determining the required number of votes, spectators are not included; this now also applies to TMX /add votes
# if chat-based voting is enabled, the /server output will show a pointer to /helpvote instead of the CallVote timeout and ratio
# in Rounds/Team modes a running /endround vote is automatically terminated by the EndRound event, i.e. when all players 'Enter' as yet or by an /admin endround/er command
# the vote expiration and reminder options, and the automatic vote for starter option, also work with TMX /add votes
# all votes terminate automatically at the start of a new track
# when a new player connects, an explanatory message that chat-based voting is in effect is shown to that player, or optionally to all players; you can use the latter during an introduction period until most players are familiar with the new voting system
# integrates properly with TMX /add votes whether or not those are enabled, and whether or not chat-based votes are enabled
# voting messages use a new pink color (<vote> in config.xml) that's sufficiently distinct from the colors of all other message types (but /add related messages retain their normal orange color)
# for further understanding of the features and configuration options, study the detailed comments in function init_votes() in plugins.rasp_votes.php

* new admin command: /admin pmlog to display the most recent 30 (default) lines of admin pm's in a pop-up window
* updated /admin cancel to cancel TMX & chat votes too
* added more aliases to /admin nextmap command, for consistency with the /skip vote: /admin skipmap and /admin skip
* long lines in the /chatlog pop-up window are now split up with a continuation symbol (...) at the start of the second and following parts
* if <log_all_chat> is true, non-existent chat commands - lines starting with '/' that cannot be executed - are also logged (but they're not shown in /chatlog)
* (almost) all function calls were updated to remove the deprecated pass-by-reference '&' from parameters
* tweaked various jukebox related messages

Bug fixes in the v0.84 release of ASECO/RASP:

* in the /chatlog output, strip wide font ($w) from nicknames so that the window width isn't stretched out too far by players with long wide nicks and lengthy chat lines
* with a large number of long chat lines in the /chatlog output, it could hang up the TMN client – fixed
* all player tests w.r.t. jukebox/add actions are done against nickname, potentially causing conflicts between players with identical nicknames – fixed by changing those tests to logins
* if a player voted /y in one TMX /add vote, he/she wouldn't be able to vote for another /add vote during the same track – fixed
* if a player tries to /add an existing track, the preceding track in the server's track list would be jukeboxed instead of that requested one – fixed
* if a player tries to /add the same track that was just /add-ed (but not yet loaded), another vote would be started – fixed
* /add doesn't properly insert the track into the jukebox such that it can be dropped again – fixed
* if /add finds the requested track is already present on the server, the temporary track file wouldn't be deleted – fixed
* using '$z' to clear text attributes after track names and player nicknames in various messages would also turn off the default 'shadowed' style for the remainder of those messages – fixed by replacing '$z' with '$g$m'

As always, the download and all further information can be found on my TMN page:

Xymph wrote: * using '$z' to clear text attributes after track names and player nicknames in various messages would also turn off the default 'shadowed' style for the remainder of those messages – fixed by replacing '$z' with '$g$m'

Funny, first thing I thought about when I read your "graphical enhancements" was this $z-Stuff. Then I read further and actually found that one in the fix list.
You're the man!!!

dang came in here to harrass you about chat based voting..
well dont this just blow all my plans.
maybe i can harrass you for juke limits.. 5-10 jukes/adds a day per person.
hmm not as sexy as votes..
Eh I will find somethign to complain about, mark my words. Just not right now
great job and thanks again.

***update.. damn you are quick.. and always leave me with a ton of work to do..
ok one thing i would like to request and they are simple.
/admin removethis
slly made this plugin for me so i can remove a track that we are currently playing from teh rack list rather than try to remmeber to do it after track has been played through the juke..
I actually depend on this command i use it so much.

cow wrote:dang came in here to harrass you about chat based voting..
well dont this just blow all my plans.

Sorry about that.... not.

cow wrote:maybe i can harrass you for juke limits.. 5-10 jukes/adds a day per person.
hmm not as sexy as votes..

Well, can't you use the jukebox credits plugin for that? Personally I don't want to limit users that much, because records hunting and improving server ranks is what many of them want, and that requires jukeboxing tracks they don't have ranked records on yet. So the only thing I'm doing on my own server against some tracks returning very often is to increase the track history to about 10% of the total number of tracks on the server (30 out of about 340, currently).

cow wrote:***update.. damn you are quick.. and always leave me with a ton of work to do..
ok one thing i would like to request and they are simple.
/admin removethis
slly made this plugin for me so i can remove a track that we are currently playing from teh rack list rather than try to remmeber to do it after track has been played through the juke..
I actually depend on this command i use it so much.

Hmm, I saw that one coming, but I'm surprised anyone uses that command so frequently. If you remove tracks that often, soon your server won't have any tracks left. The other reason I didn't implement this yet is because it apparently wouldn't work on Win32 servers according to AM. But if there's a need for this feature on Linux servers, I'll include it in the next release.

<show_recs_before>True</show_recs_before>
Set this to True to have the server display the existing records at the start of a new track, similar to FAST. If False, only the track record is shown as before.
<show_recs_after>True</show_recs_after>
Set this to True to have the server display the (possibly) updated records at the end of a track, similar to FAST. If False, then the old top-5 from v0.7 is shown.

It is only the show_recs_after that is supposed to default back to old rasp behaviour. Lesson learned: RTMF soehest before posting non existings bugs

Nice work you're doing here Xymph! A new version is released everytime I look here :p

I have problems with the /stats and /server commands though. Might be me not knowing how to use them correctly also.
Both commands do nothing when I type them, the /stats should be used with a login I guess, like "/stats qbert" if qbert is the login I want stats on?

<show_recs_before>True</show_recs_before>
Set this to True to have the server display the existing records at the start of a new track, similar to FAST. If False, only the track record is shown as before.
<show_recs_after>True</show_recs_after>
Set this to True to have the server display the (possibly) updated records at the end of a track, similar to FAST. If False, then the old top-5 from v0.7 is shown.

It is only the show_recs_after that is supposed to default back to old rasp behaviour. Lesson learned: RTMF soehest before posting non existings bugs

Glad you figured it out... yes, in old RASP only the #1 record is shown at the start and the top-5 at the end of a track, and that's what is reproduced by setting both flags to False.

El Fuego wrote:PS - that correction you noted; I presume this is already fixed in the files available for download now?

No, in principle I think it's bad practice to fix a version after release, although this was such a minor fix found shortly after the release that I could have made an exception I guess... but I didn't think of it, and now it's too late.

However, I also found that my use of '$g$m' to reset text attributes had problems with nicknames containing italics, so I had to change that to '$z$s' everywhere. Therefore a new release will be out soon with these fixes, and the /admin removethis/erasethis commands (plus whatever else I can fit it).

Qbert wrote:Nice work you're doing here Xymph! A new version is released everytime I look here :p

Thanks.

Qbert wrote:I have problems with the /stats and /server commands though. Might be me not knowing how to use them correctly also.
Both commands do nothing when I type them, the /stats should be used with a login I guess, like "/stats qbert" if qbert is the login I want stats on?

Any idea what I do wrong?

No, /stats doesn't require a parameter and should display the info of the current player. Only admins can give a login parameter to see the stats of another player. And /server doesn't take a parameter at all.

I can't really think of what the problem might be... is there an error/warning in the server log when you run either command?
What resolution is your TMN client running? If very low, the pop-up wouldn't fit on your screen and thus it won't get displayed. But that usually also hangs up your TMN client, and you didn't mentioned that happens, so that seems unlikely.

can I do a future requist that it checks if there is a newe rasp version becase u go like 2 versions a week and that it wil warn you when there is a newer version. like jfreu did but I did delete the function there becase there whas a error so I think this should also can be disabled becase it cases errors when the page it chekes it is down