|
@@ -277,6 +277,7 @@ func (channel *Channel) Join(client *Client, key string) {
|
277
|
277
|
|
278
|
278
|
client.channels.Add(channel)
|
279
|
279
|
channel.members.Add(client)
|
|
280
|
+ var givenMode *Mode
|
280
|
281
|
if len(channel.members) == 1 {
|
281
|
282
|
client.server.registeredChannelsMutex.Lock()
|
282
|
283
|
defer client.server.registeredChannelsMutex.Unlock()
|
|
@@ -286,10 +287,12 @@ func (channel *Channel) Join(client *Client, key string) {
|
286
|
287
|
if chanReg == nil {
|
287
|
288
|
channel.createdTime = time.Now()
|
288
|
289
|
channel.members[client][ChannelOperator] = true
|
|
290
|
+ givenMode = &ChannelOperator
|
289
|
291
|
} else {
|
290
|
292
|
// we should only do this on registered channels
|
291
|
293
|
if client.account != nil && client.account.Name == chanReg.Founder {
|
292
|
294
|
channel.members[client][ChannelFounder] = true
|
|
295
|
+ givenMode = &ChannelFounder
|
293
|
296
|
}
|
294
|
297
|
channel.topic = chanReg.Topic
|
295
|
298
|
channel.topicSetBy = chanReg.TopicSetBy
|
|
@@ -308,6 +311,9 @@ func (channel *Channel) Join(client *Client, key string) {
|
308
|
311
|
}
|
309
|
312
|
channel.getTopicNoMutex(client) // we already have Lock
|
310
|
313
|
channel.namesNoMutex(client)
|
|
314
|
+ if givenMode != nil {
|
|
315
|
+ client.Send(nil, client.server.name, "MODE", channel.name, fmt.Sprintf("+%v", *givenMode), client.nick)
|
|
316
|
+ }
|
311
|
317
|
}
|
312
|
318
|
|
313
|
319
|
func (channel *Channel) Part(client *Client, message string) {
|