您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
changing messages of your enemies to any text that you want
// ==UserScript== // @name hwm_forum_ban // @namespace http://tampermonkey.net/ // @version 1.01 // @author Лосось // @description changing messages of your enemies to any text that you want // @match /^https{0,1}:\/\/((www|qrator|my)\.(heroeswm|lordswm)\.(ru|com)|178\.248\.235\.15)\/(forum_messages).php*/ // @include /^https{0,1}:\/\/((www|qrator|my)\.(heroeswm|lordswm)\.(ru|com)|178\.248\.235\.15)\/(forum_messages).php*/ // @license MIT // @grant none // ==/UserScript== (function () { 'use strict'; //init UI elements let fragment = document.createElement('div'); let showScriptBtn = document.createElement('button'); showScriptBtn.innerText = 'Ban List'; let addNewHeroBtn = document.createElement('button'); addNewHeroBtn.innerText = 'Add new hero'; let inputHero = document.createElement('input'); inputHero.placeholder = 'enter hero nickname'; let inputHeroText = document.createElement('input'); inputHeroText.placeholder = 'enter hero text'; let banList = document.createElement('ul'); //init variables and constants let isShowScriptLS = JSON.parse(localStorage.getItem('hwmScriptToogle')); let nicks = JSON.parse(localStorage.getItem('nicks')); let isShowScript = isShowScriptLS; let messages = [...document.querySelectorAll('.message_footer')]; // init saved data if (!isShowScriptLS) { localStorage.setItem('hwmScriptToogle', JSON.stringify(false)); } if (!nicks) { localStorage.setItem('nicks', JSON.stringify([])); location.reload(); } // add event listeners to ui showScriptBtn.addEventListener('click', () => { isShowScript = !isShowScript; localStorage.setItem('hwmScriptToogle', isShowScript); fragment.style.visibility = isShowScript ? 'visible' : 'hidden'; }) addNewHeroBtn.addEventListener('click', () => { if (!inputHero.value.length) { alert('enter a nickname!'); return; }; let newHero = { id: new Date().getTime(), text: inputHeroText.value, nick: inputHero.value, } nicks.push(newHero); localStorage.setItem('nicks', JSON.stringify(nicks)); location.reload(); }) // add styles to ui showScriptBtn.style = 'position: absolute; right: 10px; top: 2px; z-index: 999998' fragment.style = 'background: DarkKhaki; position: absolute; right: 10px; top: 25px; min-height: 100px; min-width: 300px; display: flex; flex-direction: column; z-index: 999999' fragment.style.visibility = isShowScript ? 'visible' : 'hidden'; // parsing posts and making changes for (let i = 0; i < messages.length; i++) { for (let j = 0; j < nicks.length; j++) { if (messages[i].getElementsByTagName('a')[0].innerText.toLowerCase() === nicks[j].nick.toLowerCase() || messages[i].getElementsByTagName('a')[1].innerText.toLowerCase() === nicks[j].nick.toLowerCase()) { messages[i].nextSibling.innerText = nicks[j].text; messages[i].nextSibling.style = 'color: #000000; padding: 5px;font-size: 0.8125em;'; } } } for (let i = 0; i < nicks.length; i++) { let listElement = document.createElement('li'); let bannedNick = document.createElement('span'); let bannedNickText = document.createElement('span'); bannedNick.innerText = nicks[i].nick; bannedNickText.innerText = nicks[i].text; bannedNick.style = 'padding: 5px; background: FloralWhite' bannedNickText.style = 'padding: 5px; background: Gainsboro' let deleteBtn = document.createElement('button'); deleteBtn.style = 'width: 25px; height: 25px; border: none; cursor: pointer; margin-left: 5px; border-radius: 15px;'; deleteBtn.innerText = 'X'; listElement.appendChild(bannedNick) listElement.appendChild(bannedNickText) listElement.appendChild(deleteBtn) deleteBtn.addEventListener('click', () => { nicks = nicks.filter(nick => nick.id !== nicks[i].id); localStorage.setItem('nicks', JSON.stringify(nicks)); location.reload(); }) banList.appendChild(listElement); } fragment.appendChild(inputHero); fragment.appendChild(inputHeroText); fragment.appendChild(addNewHeroBtn); fragment.appendChild(banList); document.body.appendChild(fragment); document.body.appendChild(showScriptBtn); })();