fix type in broadcast
[spider.git] / perl / Thingy.pm
index 308e80c3d67c3dd13e72576c09f7bceead959887..c1f010c11e3a7c2790759a87acac08187e83fc6e 100644 (file)
@@ -74,7 +74,9 @@ sub send
        # before send (and line generation) things
        # function must return true to make the send happen
        $sub = "before_send_$class";
-       return unless $thing->can($sub) && $thing->$sub($dxchan);
+       if ($thing->can($sub)) {
+               return $thing->$sub($dxchan);
+       }
        
        # generate the protocol line which may (or not) be cached
        my $ref;
@@ -102,6 +104,10 @@ sub broadcast
        foreach my $dxchan (DXChannel::get_all()) {
                next if $dxchan == $main::me;
                next if grep $dxchan == $_, @_;
+               next if $dxchan->{call} eq $thing->{origin};
+               next if $thing->{user} && !$dxchan->is_user && $dxchan->{call} eq $thing->{user};
+               
+               dbg("Thingy::broadcast: sending to $dxchan->{call}") if isdbg('thing');
                $thing->send($dxchan); 
        }
 }