in reply to Adding A Channel Greet Message When A User Joins A Channel

consider using a privmsg to the person instead of a public tell. Keep a hash of $seenusers{"$nickname"} with the value being a epoch time. you know if the hash entry exists that you have said hi to this user before, and what time you have said hi, so you can calculate "hey I only want to say hi to users every 30 minutes and I have not said hi to this user for 4 hours and I am seeing him join the channel again ... must say hi"


-Waswas
  • Comment on Re: Adding A Channel Greet Message When A User Joins A Channel

Replies are listed 'Best First'.
Re: Re: Adding A Channel Greet Message When A User Joins A Channel
by PilotinControl (Pilgrim) on Feb 16, 2004 at 21:28 UTC
    Right, It is suppose to be private.. but I'm stuck in the code part....and adding time to it is a bit more advanced. If you can send me the appropriate code that would be a help. Thanks!
      Well, what I would do is use a prebuilt module such as Net::IRC or better yet, POE::Component::IRC to handle the service setup and event model. After that I would place my code in the on_join event, and do something like the following psudo code:
      if ( exists $seenusers{"$nick"} ) { # I have seen the user my $epochnow = time(); #check to see if enough time has gone by to say hello again. +.. say_hello("$nick") if ($seenuser{"$nick"} - $epchnow >= $HiT +imeDly ); # if that fails then we have said hello recently, don't do +again... } else { #First time $nick has been seen... say_hello("$nick"); } sub say_hello { my ($nick) = @_; privmsg($nick, "hey there bud, welcome to $channel...\n"); $seenusers=time(); }
      Now you will want to write it whithout using globals, and put more tests in there, and make a cleanup loop to clean the hash as the time to live is past so you dont get a huge hash after time. thats all up to you, that is just psudo code -- you will have to write your own app.


      -Waswas
        Yes, that would work nicely if it were a bot, however if you see the sample code this is not a bot it uses IO::Socket and it connects as a service...in reality its a ircd services server. Just stuck on sending a greeting to the user enterting a channel the rest I get..LOL one of them days I guess.