/* Unused Listen for messages from the page. If the message was from the page script, show an alert. window.addEventListener("message", function(event) { if (event.source == window && event.data.direction && event.data.direction == "from-page-script") { alert("Content script received message: \"" + event.data.message + "\""); } }); */ function handleMoonslicer(message) { var result = message.querySelector('div.sheet-result') var rx = /">([0-9]+)<\/span>/ var h0str = result.children[0].children[0].children[0].getAttribute("title"); var h1str = result.children[2].children[0].children[0].getAttribute("title"); var hit0 = Number(h0str.match(rx)[1]); var hit1 = Number(h1str.match(rx)[1]); var input_area = document.getElementById('textchat-input'); var textarea = input_area.querySelector("textarea"); var submit_button = input_area.querySelector("button.btn"); console.log('Hit0: ' + hit0 + ' Hit1: ' + hit1); var old_text = textarea.value; if (hit0 == 20 || hit1 == 20) { textarea.value = "&{template:desc} {{desc=20! +[[1d6]] ice}}"; submit_button.click(); } if (hit0 == 19 || hit1 == 19) { textarea.value = "&{template:desc} {{desc=19! +[[1d4]] ice}}"; submit_button.click(); } if (hit0 == 2 || hit1 == 2) { textarea.value = "&{template:desc} {{desc=2! [[floor(1d4/2)]] ice to self}}"; submit_button.click(); } if (hit0 == 1 || hit1 == 1) { textarea.value = "&{template:desc} {{desc=1! [[1d6]] ice to self}}"; submit_button.click(); } textarea.value = old_text; } /* Send a message to the page script. */ function newMessageHandler(event) { var message = event.target; if (message.classList.contains('you')) { var labelElem = message.querySelector('div.sheet-rolltemplate-atk div.sheet-label'); var label = labelElem.querySelector('span a'); if (label && label.innerHTML == 'Moonslicer') { handleMoonslicer(message); }; }; } /* Add messagePageScript() as a listener to click events on the "from-content-script" element. */ var textchat = document.getElementById("textchat"); var content = textchat.getElementsByClassName("content")[0]; content.addEventListener("DOMNodeInserted", newMessageHandler);