func (cn *Connector) CloseAll() {
	for _, con := range cn.connections {
		con.Close()
	}
}
CloseAll closes all open connections
package connector
import (
	"time"
	rcon "github.com/galexrt/go-rcon"
	cache "github.com/patrickmn/go-cache"
)
type Connector struct {
	connections map[string]*Connection
}
func NewConnector() *Connector {
	return &Connector{
		connections: make(map[string]*Connection),
	}
}
func (cn *Connector) GetConnections() (map[string]*Connection, error) {
	return cn.connections, nil
}
func (cn *Connector) NewConnection(name string, opts *ConnectionOptions) error {
	if _, ok := cn.connections[opts.Addr]; ok {
		return nil
	}
	con, err := rcon.Connect(opts.Addr,
		&rcon.ConnectOptions{
			RCONPassword: opts.RCONPassword,
			Timeout:      opts.ConnectTimeout,
		})
	if err != nil {
		return err
	}
	cn.connections[opts.Addr] = &Connection{
		Name:  name,
		con:   con,
		cache: *cache.New(opts.CacheExpiration, opts.CacheCleanupInterval),
		opts: map[string]string{
			"Address":      opts.Addr,
			"RCONPassword": opts.RCONPassword,
			"Timeout":      opts.ConnectTimeout.String(),
		},
		created: time.Now().Add(opts.ConnectTimeout),
	}
	return nil
}