您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
zombsio chat filter
当前为
- // ==UserScript==
- // @name Zombs.io chat filter + blocking names
- // @namespace http://tampermonkey.net/
- // @version 1.1
- // @description zombsio chat filter
- // @author Apex
- // @match *://zombs.io/
- // @grant none
- // ==/UserScript==
- const getId = ID => {
- return document.getElementById(ID);
- }
- const getElement = ELEMENT => {
- return document.getElementsByClassName(ELEMENT);
- }
- if (localStorage.getItem("blockedNames") == null) {
- localStorage.setItem("blockedNames", "[]");
- }
- getElement("hud-settings-grid")[0].innerHTML += `<center><h3>Chat filter</h3>\n<button class="btn btn-green" style="width: 99%;" id="chatFilter" filter="all">All</button>\n<input type="text" class="btn" id="nameToBlock" style="width: 99%; margin-top: 1%;" maxlength=35 placeholder="Name of person you want to block/unblock..."></input>\n<button class="btn btn-red" id="blockName" style="width: 45%; margin-top: 1%;">Block</button><button class="btn btn-green" id="unblockName" style="margin-top: 1%; margin-left: 1%; width: 45%;">Unblock</button>\n<button class="btn btn-green" id="showBlocked" style="width:99%; margin-top: 1%;">Show Blocked Names</button></center>\n<div style="margin-top: 1%;" id="blockNamesList"></div>`;
- let filterButton = getId("chatFilter");
- filterButton.onclick = () => {
- let f = filterButton.getAttribute("filter");
- let newF = "all";
- if (f == "all") {
- newF = "party";
- } else if (f == "party") {
- newF = "none";
- } else if (f == "none") {
- newF = "all";
- }
- filterButton.setAttribute("filter", newF);
- switch (newF) {
- case "all":
- filterButton.setAttribute("class", "btn btn-green");
- filterButton.textContent = "All";
- break;
- case "party":
- filterButton.setAttribute("class", "btn btn-gold");
- filterButton.textContent = "Party";
- break;
- case "none":
- filterButton.setAttribute("class", "btn btn-red");
- filterButton.textContent = "None";
- break;
- }
- }
- let blockButton = getId("blockName");
- blockButton.onclick = () => {
- let blocked = JSON.parse(localStorage.getItem("blockedNames"));
- let nameToBlock = getId("nameToBlock").value;
- if (blocked.includes(nameToBlock)) return;
- blocked.push(nameToBlock);
- localStorage.setItem("blockedNames", JSON.stringify(blocked));
- }
- let unblockButton = getId("unblockName");
- unblockButton.onclick = () => {
- let blocked = JSON.parse(localStorage.getItem("blockedNames"));
- let nameToUnblock = getId("nameToBlock").value;
- if (blocked.indexOf(nameToUnblock) == -1) return;
- blocked.splice(blocked.indexOf(nameToUnblock), 1);
- localStorage.setItem("blockedNames", JSON.stringify(blocked));
- }
- let showBlockedButton = getId("showBlocked");
- showBlockedButton.onclick = () => {
- let blocked = JSON.parse(localStorage.getItem("blockedNames"));
- let str = "<h3>";
- str += blocked.join(", ");
- str += "</h3>";
- getId("blockNamesList").innerHTML = str;
- }
- Game.currentGame.network.emitter.removeListener("PACKET_RPC", Game.currentGame.network.emitter._events.PACKET_RPC[1]);
- let onMessageReceived = (msg => {
- let filter = filterButton.getAttribute("filter");
- switch (filter) {
- case "party":
- {
- let party = Game.currentGame.ui.playerPartyMembers;
- let uids = [];
- for (let member of party) {
- uids.push(member.playerUid);
- }
- if (!uids.includes(msg.uid)) return;
- }
- break;
- case "none":
- return;
- break;
- }
- let blockedNames = JSON.parse(localStorage.getItem("blockedNames"));
- let a = Game.currentGame.ui.getComponent("Chat"),
- b = msg.displayName.replace(/<(?:.|\n)*?>/gm, ''),
- c = msg.message.replace(/<(?:.|\n)*?>/gm, ''),
- d = a.ui.createElement(`<div class="hud-chat-message"><strong>${b}</strong>: ${c}</div>`);
- if (blockedNames.includes(b)) return;
- a.messagesElem.appendChild(d);
- a.messagesElem.scrollTop = a.messagesElem.scrollHeight;
- })
- Game.currentGame.network.addRpcHandler("ReceiveChatMessage", onMessageReceived);