func RegisterPassiveCommand(command string, cmdFunc func(cmd *PassiveCmd) (string, error)) {
	passiveCommands[command] = cmdFunc
}
RegisterPassiveCommand adds a new passive command to the bot.
The command should be registered in the Init() func of your package
Passive commands receives all the text posted to a channel without any parsing
command: String used to identify the command, for internal use only (ex: logs)
cmdFunc: Function which will be executed. It will received the raw message, channel and nick
package bot
import (
	"fmt"
	"log"
	"sync"
)
type Cmd struct {
	Raw     string    
	Channel string    
	Nick    string    
	Message string    
	Command string    
	FullArg string    
	Args    []string  
}
type PassiveCmd struct {
	Raw     string  
	Channel string  
	Nick    string  
}
type customCommand struct {
	Version     int
	Cmd         string
	CmdFuncV1   activeCmdFuncV1
	CmdFuncV2   activeCmdFuncV2
	Description string
	ExampleArgs string
}
type incomingMessage struct {
	Channel        string
	Text           string
	SenderNick     string
	BotCurrentNick string
}
type CmdResult struct {
	Channel string  
	Message string  
}
const (
	v1 = iota
	v2
)
const (
	commandNotAvailable   = "Command %v not available."
	noCommandsAvailable   = "No commands available."
	errorExecutingCommand = "Error executing %s: %s"
)
type passiveCmdFunc func(cmd *PassiveCmd) (string, error)
type activeCmdFuncV1 func(cmd *Cmd) (string, error)
type activeCmdFuncV2 func(cmd *Cmd) (CmdResult, error)
var (
	commands        = make(map[string]*customCommand)
	passiveCommands = make(map[string]passiveCmdFunc)
)
func RegisterCommand(command, description, exampleArgs string, cmdFunc activeCmdFuncV1) {
	commands[command] = &customCommand{
		Version:     v1,
		Cmd:         command,
		CmdFuncV1:   cmdFunc,
		Description: description,
		ExampleArgs: exampleArgs,
	}
}
func RegisterCommandV2(command, description, exampleArgs string, cmdFunc activeCmdFuncV2) {
	commands[command] = &customCommand{
		Version:     v2,
		Cmd:         command,
		CmdFuncV2:   cmdFunc,
		Description: description,
		ExampleArgs: exampleArgs,
	}
}