X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=room.go;h=ccd7ae923992be8eab4cc72f15510bd66b8f003b;hb=87ba38e7f7aa8c5542bb13c255912a9e1a0f7931;hp=87b35f60b18a69e1f785b4ace86cb693335a252e;hpb=216a9dc05efb227bf793e18ec10fcc978f782d21;p=goircd.git diff --git a/room.go b/room.go index 87b35f6..ccd7ae9 100644 --- a/room.go +++ b/room.go @@ -36,16 +36,17 @@ func RoomNameValid(name string) bool { } type Room struct { + Verbose bool name string topic string key string members map[*Client]bool hostname string - log_sink chan LogEvent - state_sink chan StateEvent + log_sink chan<- LogEvent + state_sink chan<- StateEvent } -func NewRoom(hostname, name string, log_sink chan LogEvent, state_sink chan StateEvent) *Room { +func NewRoom(hostname, name string, log_sink chan<- LogEvent, state_sink chan<- StateEvent) *Room { room := Room{name: name} room.members = make(map[*Client]bool) room.topic = "" @@ -78,14 +79,16 @@ func (room *Room) StateSave() { room.state_sink <- StateEvent{room.name, room.topic, room.key} } -func (room *Room) Processor(events chan ClientEvent) { +func (room *Room) Processor(events <-chan ClientEvent) { var client *Client for event := range events { client = event.client switch event.event_type { case EVENT_NEW: room.members[client] = true - log.Println(client, "joined", room.name) + if room.Verbose { + log.Println(client, "joined", room.name) + } room.SendTopic(client) room.Broadcast(fmt.Sprintf(":%s JOIN %s", client, room.name)) room.log_sink <- LogEvent{room.name, client.nickname, "joined", true}