@@ -102,28 +102,34 @@ module.exports = async function (parsed, context) {
102102 } ;
103103
104104 const hiList = await userCommands ( 'hilite' ) ( { redis : ignoreClient } , e . __drcNetwork ) ;
105+ const anmsNoBrackets = allowedSpeakersMentionString ( [ '' , '' ] ) ;
105106
106- if ( hiList && Array . isArray ( hiList ) && hiList . some ( x => e . message . match ( new RegExp ( `\\b( ${ x } )\\b` , 'i' ) ) ) ) {
107+ if ( hiList && Array . isArray ( hiList ) && hiList . some ( x => e . message . match ( new RegExp ( x , 'i' ) ) ) ) {
107108 if ( config . user . markHilites ) {
108109 for ( const x of hiList ) {
109110 e . message = e . message . replace ( new RegExp ( `\b(${ x } )\b` , 'i' ) , '**_$1_**' ) ;
110111 }
111112 }
112113
113- e . message += ' ' + allowedSpeakersMentionString ( ) ;
114+ e . message += ' ' + anmsNoBrackets ;
114115 await persistMsgWithAutoCapture ( 'hilite' ) ;
115116 }
116117
117118 const netNick = config . irc . registered [ e . __drcNetwork ] . user . nick ;
118119 let mentionIdx = e . message . search ( new RegExp ( netNick , 'i' ) ) ;
119- if ( mentionIdx !== - 1 ) {
120+ if ( mentionIdx !== - 1 && e . message . indexOf ( anmsNoBrackets ) === - 1 ) {
120121 if ( config . app . allowedSpeakersHighlightType === 'bracket' ) {
121122 mentionIdx += netNick . length ;
122123 e . message = e . message . substring ( 0 , mentionIdx ) +
123124 allowedSpeakersMentionString ( ) +
124125 e . message . substring ( mentionIdx ) ;
125126 } else if ( config . app . allowedSpeakersHighlightType === 'replace' ) {
126- e . message = e . message . replace ( netNick , allowedSpeakersMentionString ( [ '' , '' ] ) ) ;
127+ const orig = e . message ;
128+ e . message = e . message . replace ( netNick , anmsNoBrackets ) ;
129+
130+ if ( orig === e . message ) {
131+ e . message += ` ${ anmsNoBrackets } ` ;
132+ }
127133 }
128134
129135 await persistMsgWithAutoCapture ( 'mention' ) ;
0 commit comments