From e5907dd71653fc80a2c8fa0c42bd94153af0d8aa Mon Sep 17 00:00:00 2001 From: pdbogen Date: Mon, 30 Mar 2009 18:16:23 +0000 Subject: [PATCH] New karma delay model, and the 'say' command. git-svn-id: https://www.cernu.us/~pdbogen/svn/destult2@88 088b83a4-0077-4247-935c-42ec02c2848b --- cmdaccess.yaml | 1 + commands.yaml | 32 ++++++++++++++++++++------------ 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/cmdaccess.yaml b/cmdaccess.yaml index 38b0a79..bc440ba 100644 --- a/cmdaccess.yaml +++ b/cmdaccess.yaml @@ -14,6 +14,7 @@ IGNORE: 2 JOIN: 1 KARMACLEAN: 2 KARMASET: 2 +KARMAUP: 0 MEMOLIST: 2 MEMOMOVE: 2 MEMOWIPE: 2 diff --git a/commands.yaml b/commands.yaml index a31b1c2..97e3aa0 100644 --- a/commands.yaml +++ b/commands.yaml @@ -1692,13 +1692,14 @@ KARMADOWN: |- } } $heap->{ "karmalast" } = {} unless exists( $heap->{ "karmalast" } ); - return if $heap->{ "karmalast" }->{ uc( '-'.$what ) } > time-60; - $heap->{ "karmalast" }->{ uc( '-'.$what ) } = time; - if( !exists( $heap->{ "karma" }->{ uc( $what ) } ) ) { - $heap->{ "karma" }->{ uc( $what ) } = -1; - } else { - $heap->{ "karma" }->{ uc( $what ) }--; + $heap->{ "karma" }->{ uc( $what ) } = 0 unless exists( $heap->{ "karma" }->{ uc( $what ) } ); + my $delay = 60 * abs( $heap->{ "karma" }->{ uc( $what ) } ); + if( $heap->{ "karmalast" }->{ uc( '-'.$what ) } > time-$delay ) { + print( "KARMA: <$who> $what-- IGNORED\n" ); + return; } + $heap->{ "karmalast" }->{ uc( '-'.$what ) } = time; + $heap->{ "karma" }->{ uc( $what ) }--; DumpFile( "karma.yaml", $heap->{ 'karma' } ); print( "KARMA: <$who> $what--\n" ); } @@ -1714,13 +1715,14 @@ KARMAUP: |- } } $heap->{ "karmalast" } = {} unless exists( $heap->{ "karmalast" } ); - return if $heap->{ "karmalast" }->{ uc( '+'.$what ) } > time-60; - $heap->{ "karmalast" }->{ uc( '+'.$what ) } = time; - if( !exists( $heap->{ "karma" }->{ uc( $what ) } ) ) { - $heap->{ "karma" }->{ uc( $what ) } = 1; - } else { - $heap->{ "karma" }->{ uc( $what ) }++; + $heap->{ "karma" }->{ uc( $what ) } = 0 unless exists( $heap->{ "karma" }->{ uc( $what ) } ); + my $delay = 60 * abs( $heap->{ "karma" }->{ uc( $what ) } ); + if( $heap->{ "karmalast" }->{ uc( '+'.$what ) } > time-$delay ) { + print( "KARMA: <$who> $what++ IGNORED\n" ); + return; } + $heap->{ "karmalast" }->{ uc( '+'.$what ) } = time; + $heap->{ "karma" }->{ uc( $what ) }++; DumpFile( "karma.yaml", $heap->{ 'karma' } ); print( "KARMA: <$who> $what++\n" ); } @@ -1826,6 +1828,12 @@ KARMA: |- } } +SAY: |- + sub { + my( $kernel, $heap, $who, $what, $src, $dest, $replypath ) = @_; + $kernel->post( $src, $replypath, $what, $dest ); + } + TITLE: |- sub { use POE::Component::IRC::Common qw( :ALL ); -- 2.11.0