Changeset 159 in code for trunk/upstream.go
- Timestamp:
- Mar 25, 2020, 11:15:26 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/upstream.go
r157 r159 583 583 }) 584 584 } 585 case "KICK": 586 if msg.Prefix == nil { 587 return fmt.Errorf("expected a prefix") 588 } 589 590 var channel, user string 591 if err := parseMessageParams(msg, &channel, &user); err != nil { 592 return err 593 } 594 595 var reason string 596 if len(msg.Params) > 2 { 597 reason = msg.Params[1] 598 } 599 600 if user == uc.nick { 601 uc.logger.Printf("kicked from channel %q by %s", channel, msg.Prefix.Name) 602 delete(uc.channels, channel) 603 } else { 604 ch, err := uc.getChannel(channel) 605 if err != nil { 606 return err 607 } 608 delete(ch.Members, user) 609 } 610 611 uc.forEachDownstream(func(dc *downstreamConn) { 612 params := []string{dc.marshalChannel(uc, channel), dc.marshalNick(uc, user)} 613 if reason != "" { 614 params = append(params, reason) 615 } 616 dc.SendMessage(&irc.Message{ 617 Prefix: dc.marshalUserPrefix(uc, msg.Prefix), 618 Command: "KICK", 619 Params: params, 620 }) 621 }) 585 622 case "QUIT": 586 623 if msg.Prefix == nil {
Note:
See TracChangeset
for help on using the changeset viewer.