nmdc-ircfrontend/rosella.go
2013-08-24 07:48:28 +01:00

64 lines
983 B
Go

package main
import "net"
type Server struct {
eventChan chan Event
running bool
name string
clientMap map[string]*Client //Map of nicks → clients
channelMap map[string]*Channel //Map of channel names → channels
operatorMap map[string]string //Map of usernames → SHA1 hashed passwords
}
type Client struct {
server *Server
connection net.Conn
signalChan chan int
outputChan chan string
nick string
registered bool
connected bool
operator bool
channelMap map[string]*Channel
}
type Event struct {
client *Client
input string
}
type Channel struct {
name string
topic string
clientMap map[string]*Client
}
const (
signalStop int = iota
)
const (
rplWelcome int = iota
rplJoin
rplPart
rplTopic
rplNoTopic
rplNames
rplNickChange
rplKill
rplMsg
rplList
rplOper
errMoreArgs
errNoNick
errInvalidNick
errNickInUse
errAlreadyReg
errNoSuchNick
errUnknownCommand
errNotReg
errPassword
errNoPriv
)