// ==UserScript== // @name Notification Enhancer // @namespace http://tampermonkey.net/ // @version 1.1 // @description Notification enhancer script // @author Realwdpcker // @match https://pixelplace.io/* // @grant none // @license MIT // @downloadURL none // ==/UserScript== (function () { 'use strict'; const warningSound = new Audio('https://cdn.uppbeat.io/audio-files/a34d50ecafdf61ec63b0f3d2f41f9998/18d864b70347c0e38362eb8af60aec76/a29e3c935133c0fdd759e7a61725fbc5/STREAMING-positive-notification-digital-ding-gamemaster-audio-1-00-01.mp3'); const successSound = new Audio('https://cdn.uppbeat.io/audio-files/a34d50ecafdf61ec63b0f3d2f41f9998/b9ca7d21360f106c0fe9ea3cb80000ea/7a14a9faba4c1884bb8eb46ad3f1fa9e/STREAMING-positive-notification-digital-beep-double-gamemaster-audio-1-00-02.mp3'); const errorSound = new Audio('https://cdn.uppbeat.io/audio-files/06ae18f31ba6d2a5dd6b6f941ae28d0a/d3e6f01a2b686bb9d88df304bb54e46c/7bf25893b999d81e63f376f8b0d634d4/STREAMING-ui-access-denied-jam-fx-1-00-01.mp3'); warningSound.volume = 0.5; successSound.volume = 0.5; errorSound.volume = 0.5; const menu = document.createElement('div'); menu.id = 'notificationVolumeMenu'; menu.style.cssText = ` position: fixed; top: 100px; right: 20px; background: #222222; color: white; padding: 5px; font-family: Consolas, sans-serif; z-index: 99999; border: 2.5px solid rgb(0, 226, 255); display: none; `; menu.innerHTML = ` Warning:
Success:
Error: `; document.body.appendChild(menu); const style = document.createElement('style'); style.textContent = ` #notificationVolumeMenu input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; background: #ffffff; cursor: pointer; } #notificationVolumeMenu input[type="range"]::-webkit-slider-runnable-track { background: #444; border-radius: 0px; } `; document.head.appendChild(style); document.getElementById('warningVolume').addEventListener('input', e => { warningSound.volume = parseFloat(e.target.value); }); document.getElementById('successVolume').addEventListener('input', e => { successSound.volume = parseFloat(e.target.value); }); document.getElementById('errorVolume').addEventListener('input', e => { errorSound.volume = parseFloat(e.target.value); }); document.addEventListener('keydown', function (e) { if (e instanceof KeyboardEvent && e.altKey && e.key.toLowerCase() === 'm') { const isVisible = menu.style.display === 'block'; menu.style.display = isVisible ? 'none' : 'block'; } }); const observer = new MutationObserver((mutations) => { for (const mutation of mutations) { for (const node of mutation.addedNodes) { if (node.nodeType === Node.ELEMENT_NODE) { const el = node; if (el.matches('.box.warning')) { warningSound.currentTime = 0; warningSound.play(); } else if (el.matches('.box.success')) { successSound.currentTime = 0; successSound.play(); } else if (el.matches('.box.error')) { errorSound.currentTime = 0; errorSound.play(); } } } } }); const waitForContainer = setInterval(() => { const container = document.querySelector('#notification'); if (container) { clearInterval(waitForContainer); observer.observe(container, { childList: true, subtree: true }); } }, 500); })();