code: func (b *Bslack) skipMessageEvent(ev *slack.MessageEvent) bool {
  	switch ev.SubType {
  	case sChannelLeave, sChannelJoin:
  		return b.GetBool(noSendJoinConfig)
  	case sPinnedItem, sUnpinnedItem:
  		return true
  	case sChannelTopic, sChannelPurpose:
  		// Skip the event if our bot/user account changed the topic/purpose
  		if ev.User == b.si.User.ID {
  			return true
  		}
  	}
  
  	// Skip any messages that we made ourselves or from 'slackbot' (see #527).
  	if ev.Username == sSlackBotUser ||
  		(b.rtm != nil && ev.Username == b.si.User.Name) ||
  		(len(ev.Attachments) > 0 && ev.Attachments[0].CallbackID == "matterbridge_"+b.uuid) {
  		return true
  	}
  
  	if ev.SubMessage != nil {
  		// It seems ev.SubMessage.Edited == nil when slack unfurls.
  		// Do not forward these messages. See Github issue #266.
  		if ev.SubMessage.ThreadTimestamp != ev.SubMessage.Timestamp &&
  			ev.SubMessage.Edited == nil {
  			return true
  		}
  		// see hidden subtypes at https://api.slack.com/events/message
  		// these messages are sent when we add a message to a thread #709
  		if ev.SubType == "message_replied" && ev.Hidden {
  			return true
  		}
  	}
  
  	if len(ev.Files) > 0 {
  		return b.filesCached(ev.Files)
  	}
  	return false
  }
docs: // skipMessageEvent skips event that need to be skipped :-)