def start
      return if @started

      @bot.loggers.debug "[timer] Starting timer #{self}"

      @shots = @orig_shots

      @thread_group.add Thread.new {
        while @shots > 0 do
          sleep @interval
          if threaded?
            Thread.new do
              rescue_exception do
                @block.call
              end
            end
          else
            rescue_exception do
              @block.call
            end
          end

          @shots -= 1
        end
      }

      @started = true
    end
def start
      return if @started

      @bot.loggers.debug "[timer] Starting timer #{self}"

      @shots = @orig_shots

      @thread_group.add Thread.new {
        while @shots > 0 do
          sleep @interval
          if threaded?
            Thread.new do
              rescue_exception do
                @block.call
              end
            end
          else
            rescue_exception do
              @block.call
            end
          end

          @shots -= 1
        end
      }

      @started = true
    end
Start the timer

 @return [void]