Ah, I already wrote it. =D This extension: <a href="https://chrome.google.com/webstore/detail/custom-javascript-for-web/poakhlngfciodnhlhhgnaaelnpjljija" rel="nofollow">https://chrome.google.com/webstore/detail/custom-javascript-for-web/poakhlngfciodnhlhhgnaaelnpjljija</a> This code: const sendChatMsg = _.debounce((msg) => {
$('#textchat-input textarea').val(msg);
$('#textchat-input .btn').click();
},300,true);
const onAddToChat = _.debounce((mutations) => {
let send = false;
mutations.forEach(m=>{
if(m.addedNodes){
m.addedNodes.forEach(n=>{
if(n.childNodes){
n.childNodes.forEach(c=>{
if(/^\s*TIMESTAMP\s*$/.test(c.data)){
send = true;
}
});
}
});
}
});
if(send){
let d = new Date();
sendChatMsg(`/w gm *Timestamp:* ${d.toLocaleTimeString()}`);
}
},300, true);
const tsObserver = new MutationObserver(onAddToChat);
setTimeout(()=>tsObserver.observe($('#textchat .content')[0], {childList: true}), 10000);
This command in chat: /w "Mike W." TIMESTAMP (or whatever your player name in in the game) will result in whispering a timestamp to you and the GM: