--- deliantra/server/ext/board.ext 2007/01/06 02:41:38 1.3 +++ deliantra/server/ext/board.ext 2008/09/22 06:30:31 1.7 @@ -3,11 +3,11 @@ sub do_help { my ($board, $who, $npc) = @_; $who->reply ($npc, - "Help for $board\n" - ."List of commands:\n\n" - ."- list\n" - ."- write \n" - ."- remove \n" + "Help for $board\n\n" + . "List of commands:\n\n" + . " - list\n" + . " - write \n" + . " - remove \n" ); } @@ -25,13 +25,11 @@ sub do_list { my ($board, $who, $npc) = @_; my $cont = CFBoard::get ($board); - if (@{$cont || []}) { - $who->reply ($npc, "$board content:"); - my $idx = 0; - for (@$cont) { - $who->reply ($npc, "<$idx> $_->[0]: $_->[1]"); - $idx++; - } + if (@$cont) { + my $msg = "$board content:\n\n"; + $msg .= "<$_> $cont->[$_][0]: $cont->[$_][1]\r" + for 0 .. $#$cont; + $who->reply ($npc, $msg); } else { $who->reply ($npc, "$board is empty."); } @@ -89,7 +87,7 @@ use POSIX qw/strftime/; use CFDB; -my $BOARDDB = cf::db_get "board"; +my $BOARDDB = Compress::LZF::sthaw cf::db_get board => "data"; sub get { my ($board) = @_; @@ -107,7 +105,7 @@ my ($board, $idx) = @_; my $entry = splice @{ $BOARDDB->{"msg_$board"} ||= [] }, $idx, 1; - cf::db_dirty; + cf::db_put board => data => Compress::LZF::sfreeze_cr $BOARDDB; $entry } @@ -115,7 +113,7 @@ my ($board) = @_; delete $BOARDDB->{"msg_$board"}; - cf::db_dirty; + cf::db_put board => data => Compress::LZF::sfreeze_cr $BOARDDB; } sub put_entry { @@ -123,7 +121,7 @@ my $entries = $BOARDDB->{"msg_$board"} ||= []; push @$entries, [$from, $message]; - cf::db_dirty; + cf::db_put board => data => Compress::LZF::sfreeze_cr $BOARDDB; } 1;