|
@@ -541,25 +541,23 @@ func (channel *Channel) ClientPrefixes(client *Client, isMultiPrefix bool) strin
|
541
|
541
|
}
|
542
|
542
|
}
|
543
|
543
|
|
544
|
|
-func (channel *Channel) ClientModeStrings(client *Client) []string {
|
|
544
|
+func (channel *Channel) ClientModeStrings(client *Client) (result []string) {
|
545
|
545
|
channel.stateMutex.RLock()
|
546
|
546
|
defer channel.stateMutex.RUnlock()
|
547
|
547
|
modes, present := channel.members[client]
|
548
|
|
- if !present {
|
549
|
|
- return []string{}
|
550
|
|
- } else {
|
551
|
|
- return modes.Strings()
|
|
548
|
+ if present {
|
|
549
|
+ for _, mode := range modes.AllModes() {
|
|
550
|
+ result = append(result, mode.String())
|
|
551
|
+ }
|
552
|
552
|
}
|
|
553
|
+ return
|
553
|
554
|
}
|
554
|
555
|
|
555
|
|
-func (channel *Channel) ClientJoinTime(client *Client) *time.Time {
|
|
556
|
+func (channel *Channel) ClientJoinTime(client *Client) time.Time {
|
556
|
557
|
channel.stateMutex.RLock()
|
557
|
558
|
defer channel.stateMutex.RUnlock()
|
558
|
|
- time, present := channel.memberJoinTimes[client]
|
559
|
|
- if present {
|
560
|
|
- return &time
|
561
|
|
- }
|
562
|
|
- return nil
|
|
559
|
+ time := channel.memberJoinTimes[client]
|
|
560
|
+ return time
|
563
|
561
|
}
|
564
|
562
|
|
565
|
563
|
func (channel *Channel) ClientHasPrivsOver(client *Client, target *Client) bool {
|
|
@@ -738,7 +736,7 @@ func (channel *Channel) Join(client *Client, key string, isSajoin bool, rb *Resp
|
738
|
736
|
defer channel.stateMutex.Unlock()
|
739
|
737
|
|
740
|
738
|
channel.members.Add(client)
|
741
|
|
- channel.memberJoinTimes[client] = time.Now()
|
|
739
|
+ channel.memberJoinTimes[client] = time.Now().UTC()
|
742
|
740
|
firstJoin := len(channel.members) == 1
|
743
|
741
|
newChannel := firstJoin && channel.registeredFounder == ""
|
744
|
742
|
if newChannel {
|