From dd2f3be806e0e2c5ec74046358d1c544a4bb383d Mon Sep 17 00:00:00 2001 From: fruitiex Date: Tue, 18 Aug 2009 19:08:40 +0000 Subject: [PATCH] two rcon2irc plugins by Mattias git-svn-id: svn://svn.icculus.org/nexuiz/trunk@7463 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- server/rcon2irc/fastest_lap.pl | 25 +++++++++++++++++++++++++ server/rcon2irc/irc_nick_change.pl | 11 +++++++++++ 2 files changed, 36 insertions(+) create mode 100644 server/rcon2irc/fastest_lap.pl create mode 100644 server/rcon2irc/irc_nick_change.pl diff --git a/server/rcon2irc/fastest_lap.pl b/server/rcon2irc/fastest_lap.pl new file mode 100644 index 000000000..c8a272fe3 --- /dev/null +++ b/server/rcon2irc/fastest_lap.pl @@ -0,0 +1,25 @@ +sub out($$@); +use POSIX qw(ceil floor); + # chat: Nexuiz server -> IRC channel, fastest record in nexrun and ctf + [ dp => q{:recordset:(\d+):(.*)} => sub { + my ($id, $record) = @_; + my $recordnick = $id ? $store{"playernick_byid_$id"} : "(console)"; + my $minutes = $record/60; + my $seconds = $record%60; + my $ms = int(($record - floor($record))*1000000); + my $time; + if($seconds < 1) { + $time = "\003040:0.$ms"; + } elsif($minutes < 1) { + $time = "\003040:$seconds.$ms"; + } else { + $time = "\00304$minutes:$seconds.$ms"; + } + my $mapname = $store{"map"}; + if ($mapname =~ m/^ctf_/) { + out irc => 0, "PRIVMSG $config{irc_channel} :* \00304$recordnick\017 set the \00304all-time fastest flag capture \00304record\017 with $time ($mapname)"; + } else { + out irc => 0, "PRIVMSG $config{irc_channel} :* \00304$recordnick\017 set the \00304all-time fastest lap \00304record\017 with $time ($mapname)"; + } + return 0; + } ], diff --git a/server/rcon2irc/irc_nick_change.pl b/server/rcon2irc/irc_nick_change.pl new file mode 100644 index 000000000..0ac0d59f2 --- /dev/null +++ b/server/rcon2irc/irc_nick_change.pl @@ -0,0 +1,11 @@ +sub out($$@); + # chat: IRC channel -> Nexuiz server, nick change + [ irc => q{:([^! ]*)![^ ]* (?i:NICK) :(.*)} => sub { + my ($nick, $newnick) = @_; + $nick = color_dpfix $nick; + # allow the nickname to contain colors in DP format! Therefore, NO color_irc2dp on the nickname! + $newnick = color_irc2dp $newnick; + $newnick =~ s/(["\\])/\\$1/g; + out dp => 0, "rcon2irc_say_as \"* $nick on IRC\" \"is now known as $newnick\""; + return 0; + } ], -- 2.39.2