X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=data%2Frbot%2Fplugins%2Fnickrecover.rb;h=f0277cdf512363cce81a88645792f7f313cd0c03;hb=3ace72d5642284665fce2c33c99dfeb1b931b2c6;hp=02def493f77c94e2ad7134d6d8683c521455aadb;hpb=fd168425f0da4527204fd8a97f45b39db34c122f;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/data/rbot/plugins/nickrecover.rb b/data/rbot/plugins/nickrecover.rb index 02def493..f0277cdf 100644 --- a/data/rbot/plugins/nickrecover.rb +++ b/data/rbot/plugins/nickrecover.rb @@ -11,7 +11,7 @@ # in case it couldn't be achieved. class NickRecoverPlugin < Plugin - + Config.register Config::IntegerValue.new('irc.nick_retry', :default => 60, :valiedate => Proc.new { |v| v >= 0 }, :on_change => Proc.new do |bot, v| @@ -52,17 +52,25 @@ class NickRecoverPlugin < Plugin end def stop_recovery - @bot.timer.remove(@recovery) if @recovery + begin + @bot.timer.remove(@recovery) if @recovery + ensure + @recovery = nil + end end def start_recovery(time=self.poll_time) if @recovery - @bot.timer.reschedule(@recovery, poll_time) - else - @recovery = @bot.timer.add(time) do - has_nick? ? stop_recovery : recover + begin + @bot.timer.reschedule(@recovery, poll_time) + return + rescue + @recovery=nil end end + @recovery = @bot.timer.add(time) do + has_nick? ? stop_recovery : recover + end end def initialize