func extraUserForEvent(event types.Event) *ct.UserId { if event.GetEventType() == types.EventTypeMembership { membership := event.GetContent().(*types.MembershipEventContent).Membership isInvited := membership == types.MembershipInvited isKnocking := membership == types.MembershipKnocking isBanned := membership == types.MembershipBanned if isInvited || isKnocking || isBanned { state, ok := event.(*types.State) if !ok { log.Println("membership event was not a state event:", event) return nil } user, err := ct.ParseUserId(state.StateKey) if err != nil { log.Println("failed to parse user id state key:", state.StateKey) return nil } return &user } } return nil }