--- deliantra/server/ext/board.ext 2006/12/15 19:29:18 1.1 +++ 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."); } @@ -75,10 +73,10 @@ 1 }; -cf::register_attachment board => +cf::object::attachment board => on_apply => sub { my ($npc, $who) = @_; - $who->reply ($npc, "Hello, i'm a talking board, 'say help' to get help"); + $who->reply ($npc, "Hello, I'm a talking board, 'say help' to get help"); do_list ($npc->name, $who, $npc); cf::override; }, @@ -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;