Write a Chat Ping Counter
JavaScript (ES6), 245 210 bytes
a=&gt;(p={},a.map(b=&gt;p[b[0]]=0),(a.map(b=&gt;b[1].match(/@[a-z]{3,}|^:\d+/gi)||[]).map(c=&gt;c.map(d=&gt;(z=(d[0]=='@'?(y=Object.keys(p).filter(e=&gt;e.startsWith(d.slice(1)))).length&lt;2?y:0:a[d.slice(1)[0]]))&amp;&amp;p[z[0]]++))),p)

Uses an object to create a unique list of names alongside pings. Then it looks through the messages for matches to either ping condition. If a name, it looks through the list of names to find if there is only one match, and then increments. If a reply, it simply references that index in the message array and pulls the name to be incremented. Finally, it returns the object.