From: Joshua B. <jb...@wa...> - 2003-09-30 02:42:51
|
I messed around with the /common/*.c files for a few days, and managed to get a basic echo script working. It hopefully illustrates the basics of how this new API works: ------------------------ sub plugin_load { $plugin = shift ; my $data = "" ; Gaim::signal_connect(Gaim::Conversations::handle, "received-im-msg", $plugin, \&echo, $data); } sub echo { $account = $_[0];#not sure what this is good for $sender = $_[1]; $text = $_[2]; $flag = $_[3]; #not sure what this is good for #Various debug prints to show what has been passed in Gaim::debug_info ( "\naccount: ", $account); Gaim::debug_info ( "\nsender: ", $sender); Gaim::debug_info ( "\ntext: ", $text); Gaim::debug_info ( "\nflag: ", $flag); @im_array = Gaim::ims(); #get the array of IM's for ($i = 0; $i <= $#im_array; $i++) { if ( Gaim::Conversation::get_name( Gaim::Conversation::IM::get_conversation ( $im_array[$i] ) ) eq $sender ) #find the correct IM { Gaim::Conversation::IM::send($im_array[$i],$text); #echo text back to correct IM } } } -------------------------------- Note: The "displayed-im-msg" is the event that really should be used for echoing (use the above code to see why). However, it doesn't seem to pass the sender name back to the callback, contrary to what the api implies... -Joshua- |