Pārlūkot izejas kodu

channel: Alert of given modes (+o/+q) on join

tags/v0.7.0
Daniel Oaks 7 gadus atpakaļ
vecāks
revīzija
580385392a
1 mainītis faili ar 6 papildinājumiem un 0 dzēšanām
  1. 6
    0
      irc/channel.go

+ 6
- 0
irc/channel.go Parādīt failu

@@ -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) {

Notiek ielāde…
Atcelt
Saglabāt