您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Non bot leaderboard
// ==UserScript== // @name Bottless Leaderboard // @namespace See all the Non bots in your server // @version 1.0 // @description Non bot leaderboard // @author 𝓝𝑒ⓦ 𝓙ⓐ¢𝓀🕹️ // @match *://agar.io/* // @license MIT // @icon https://i.imgur.com/BlocGBz.png // @grant none // ==/UserScript== (function() { 'use strict'; let popupWindow = null; let nicksGlobal = []; let nameCountsGlobal = {}; let flaggedNicks = JSON.parse(localStorage.getItem("agario_enemies")) || []; let alarmSoundUrl = localStorage.getItem("alarm_sound_url") || "https://www.myinstants.com/media/sounds/wwe-stone-cold-steve-austin-titantron-hd-full-mp3cut.mp3"; let enableSound = JSON.parse(localStorage.getItem("enable_sound")) || true; let lastPlayTime = 0; function createSettingsDiv(parent) { let settingsDiv = document.createElement("div"); settingsDiv.style.padding = "20px"; settingsDiv.style.background = "linear-gradient(to right, darkblue, black)"; settingsDiv.style.border = "1px solid black"; settingsDiv.style.color = "white"; let soundControl = document.createElement("div"); soundControl.innerHTML = ` <label class="switch"> <input type="checkbox" id="soundCheckbox" ${enableSound ? "checked" : ""}> <span class="slider round"></span> </label> <span id="soundStatus">${enableSound ? "Sound" : "Sound "}</span>`; soundControl.style.marginBottom = "10px"; settingsDiv.appendChild(soundControl); let soundLabel = document.createElement("label"); soundLabel.textContent = "Alarm sound URL:"; settingsDiv.appendChild(soundLabel); let soundInput = document.createElement("input"); soundInput.type = "text"; soundInput.value = alarmSoundUrl; soundInput.style.display = "block"; soundInput.style.marginTop = "5px"; soundInput.style.width = "90%"; settingsDiv.appendChild(soundInput); let inputLabel = document.createElement("label"); inputLabel.textContent = "Enter enemies (comma separated):"; inputLabel.style.marginTop = "10px"; settingsDiv.appendChild(inputLabel); let input = document.createElement("input"); input.type = "text"; input.style.display = "block"; input.style.marginTop = "5px"; input.style.width = "90%"; settingsDiv.appendChild(input); let addButton = document.createElement("button"); addButton.textContent = "Add"; addButton.style.display = "block"; addButton.style.marginTop = "10px"; addButton.style.backgroundColor = "green"; addButton.style.color = "white"; addButton.style.border = "none"; addButton.style.padding = "5px 10px"; addButton.style.cursor = "pointer"; addButton.style.transition = "background-color 0.3s, transform 0.1s"; addButton.addEventListener("mouseover", function() { addButton.style.backgroundColor = "darkgreen"; }); addButton.addEventListener("mouseout", function() { addButton.style.backgroundColor = "green"; }); addButton.addEventListener("mousedown", function() { addButton.style.transform = "translateY(2px)"; }); addButton.addEventListener("mouseup", function() { addButton.style.transform = "translateY(0)"; }); settingsDiv.appendChild(addButton); let currentEnemiesLabel = document.createElement("label"); currentEnemiesLabel.textContent = "Current Enemies:"; currentEnemiesLabel.style.display = "block"; currentEnemiesLabel.style.marginTop = "10px"; settingsDiv.appendChild(currentEnemiesLabel); let currentEnemiesDiv = document.createElement("div"); currentEnemiesDiv.style.display = "flex"; currentEnemiesDiv.style.flexWrap = "wrap"; currentEnemiesDiv.style.gap = "10px"; currentEnemiesDiv.style.marginTop = "5px"; currentEnemiesDiv.style.padding = "5px"; currentEnemiesDiv.style.background = "linear-gradient(to right, darkblue, black)"; settingsDiv.appendChild(currentEnemiesDiv); function updateEnemiesDiv() { currentEnemiesDiv.innerHTML = ""; flaggedNicks.forEach((nick, index) => { let nickDiv = document.createElement("div"); nickDiv.style.display = "flex"; nickDiv.style.alignItems = "center"; nickDiv.style.backgroundColor = "rgba(0, 0, 0, 0.8)"; nickDiv.style.padding = "5px 10px"; nickDiv.style.border = "1px solid white"; nickDiv.style.borderRadius = "1px"; nickDiv.style.color = "white"; let nickText = document.createElement("span"); nickText.textContent = nick; nickDiv.appendChild(nickText); let removeButton = document.createElement("button"); removeButton.textContent = "X"; removeButton.style.marginLeft = "10px"; removeButton.style.backgroundColor = "red"; removeButton.style.color = "white"; removeButton.style.border = "none"; removeButton.style.borderRadius = "50%"; removeButton.style.cursor = "pointer"; removeButton.style.transition = "background-color 0.3s, transform 0.1s"; removeButton.addEventListener("mousedown", function() { removeButton.style.transform = "translateY(2px)"; }); removeButton.addEventListener("mouseup", function() { removeButton.style.transform = "translateY(0)"; }); removeButton.addEventListener("click", function() { flaggedNicks.splice(index, 1); localStorage.setItem("agario_enemies", JSON.stringify(flaggedNicks)); updateEnemiesDiv(); }); nickDiv.appendChild(removeButton); currentEnemiesDiv.appendChild(nickDiv); }); } updateEnemiesDiv(); addButton.addEventListener("click", function() { let newNicks = input.value.split(",").map(nick => nick.trim()).filter(nick => nick); flaggedNicks = flaggedNicks.concat(newNicks); localStorage.setItem("agario_enemies", JSON.stringify(flaggedNicks)); input.value = ""; updateEnemiesDiv(); }); let saveButton = document.createElement("button"); saveButton.textContent = "Save"; saveButton.style.display = "block"; saveButton.style.marginTop = "10px"; saveButton.style.backgroundColor = "green"; saveButton.style.color = "white"; saveButton.style.border = "none"; saveButton.style.padding = "5px 10px"; saveButton.style.cursor = "pointer"; saveButton.style.transition = "background-color 0.3s, transform 0.1s"; saveButton.addEventListener("mouseover", function() { saveButton.style.backgroundColor = "darkgreen"; }); saveButton.addEventListener("mouseout", function() { saveButton.style.backgroundColor = "green"; }); saveButton.addEventListener("mousedown", function() { saveButton.style.transform = "translateY(2px)"; }); saveButton.addEventListener("mouseup", function() { saveButton.style.transform = "translateY(0)"; }); settingsDiv.appendChild(saveButton); parent.appendChild(settingsDiv); saveButton.addEventListener("click", function() { alarmSoundUrl = soundInput.value.trim(); enableSound = soundControl.querySelector("#soundCheckbox").checked; localStorage.setItem("alarm_sound_url", alarmSoundUrl); localStorage.setItem("enable_sound", JSON.stringify(enableSound)); document.getElementById("soundStatus").textContent = enableSound ? "Sound On" : "Sound Off"; toastr.success("Settings saved!"); }); soundControl.querySelector("#soundCheckbox").addEventListener("change", function() { enableSound = this.checked; document.getElementById("soundStatus").textContent = enableSound ? "Sound On" : "Sound Off"; }); let leaderboardDiv = document.createElement("div"); leaderboardDiv.id = "leaderboardDiv"; leaderboardDiv.style.marginTop = "20px"; settingsDiv.appendChild(leaderboardDiv); let style = document.createElement("style"); style.type = "text/css"; style.innerHTML = ` .switch { position: relative; display: inline-block; width: 60px; height: 34px; } .switch input { opacity: 0; width: 0; height: 0; } .slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: red; transition: .4s; } .slider:before { position: absolute; content: ""; height: 26px; width: 26px; left: 4px; bottom: 4px; background-color: white; transition: .4s; } input:checked + .slider { background-color: lightgreen; } input:checked + .slider:before { transform: translateX(26px); } .slider.round { border-radius: 34px; } .slider.round:before { border-radius: 50%; } `; parent.appendChild(style); } function createTable(nicks, nameCounts) { const table = document.createElement("table"); table.style.fontSize = "15px"; table.style.borderCollapse = "collapse"; table.style.margin = "0 auto"; table.style.color = "white"; let header = document.createElement("th"); header.colSpan = "3"; header.textContent = "NON BOT LIST"; header.style.textAlign = "center"; header.style.padding = "15px"; table.appendChild(header); let row = null; nicks.forEach((nick, index) => { if (index % 3 === 0) { row = document.createElement("tr"); table.appendChild(row); } let count = nameCounts[nick]; let cell = document.createElement("td"); if (count > 1) { cell.textContent = `${nick} (${count})`; cell.style.color = "red"; cell.style.fontWeight = "bold"; } else { cell.textContent = nick; } cell.style.padding = "15px"; cell.style.textAlign = "center"; row.appendChild(cell); }); if (!popupWindow || popupWindow.closed) { popupWindow = window.open("", "", "width=600,height=600"); createSettingsDiv(popupWindow.document.body); } let leaderboardDiv = popupWindow.document.getElementById("leaderboardDiv"); leaderboardDiv.innerHTML = ""; leaderboardDiv.style.backgroundColor = "black"; leaderboardDiv.appendChild(table); nicksGlobal = nicks; nameCountsGlobal = nameCounts; let saveButton = document.createElement("button"); saveButton.textContent = "Save to CSV"; saveButton.onclick = saveToCSV; saveButton.style.backgroundColor = "blue"; saveButton.style.color = "white"; saveButton.style.marginTop = "3px"; saveButton.style.width = "100%"; leaderboardDiv.appendChild(saveButton); } function playSound(url) { if (enableSound) { const audio = new Audio(url); audio.loop = false; audio.play(); } } function extractNicks() { const nameCounts = {}; if ( typeof leaderboard !== "undefined" && leaderboard.hasOwnProperty("leaderboard") ) { let nicks = leaderboard.leaderboard.map((obj) => obj.nick); nicks.forEach((nick) => { nameCounts[nick] = (nameCounts[nick] || 0) + 1; }); nicks = [...new Set(nicks)]; createTable(nicks, nameCounts); let foundFlaggedNicks = nicks.filter((nick) => flaggedNicks.includes(nick) && nick.trim() !== "" ); let currentTime = Date.now(); if (foundFlaggedNicks.length > 0 && enableSound && (currentTime - lastPlayTime >= 10000)) { if (popupWindow && !popupWindow.closed) { let alertDiv = popupWindow.document.createElement("div"); alertDiv.textContent = "Flagged nicks detected: " + foundFlaggedNicks.join(", "); alertDiv.style.color = "red"; popupWindow.document .getElementById("leaderboardDiv") .prepend(alertDiv); playSound(alarmSoundUrl); lastPlayTime = currentTime; } } } } function saveToCSV() { let csvContent = "\uFEFF"; // UTF-8 BOM csvContent += "nick,count\n"; nicksGlobal.forEach((nick) => { csvContent += `"${nick}",${nameCountsGlobal[nick]}\n`; }); let date = new Date(); let timestamp = date.getFullYear() + "-" + ("0" + (date.getMonth() + 1)).slice(-2) + "-" + ("0" + date.getDate()).slice(-2) + "_" + ("0" + date.getHours()).slice(-2) + "-" + ("0" + date.getMinutes()).slice(-2) + "-" + ("0" + date.getSeconds()).slice(-2); let encodedUri = encodeURI("data:text/csv;charset=utf-8," + csvContent); let link = document.createElement("a"); link.setAttribute("href", encodedUri); link.setAttribute("download", "nicks_" + timestamp + ".csv"); link.click(); } function createStartButton() { let button = document.createElement("button"); button.textContent = "LB #'s"; button.style.color = "white"; button.style.fontWeight = "bold"; button.className = "input-button"; button.style.textShadow = "1px 1px 1px black"; document.body.appendChild(button); let style = document.createElement("style"); style.type = "text/css"; style.innerHTML = ` @keyframes borderChange { 0% { border-color: #00008B; } /* Dark Blue */ 20% { border-color: #000000; } /* Black */ 40% { border-color: rgba(106,50,198,0.75); } /* Dark Violet */ 60% { border-color: #00008B; } /* Dark Blue */ 80% { border-color: #000000; } /* Black */ 100% { border-color: #00008B; } /* Dark Blue */ } .input-button { border: 5px solid #00008B; /* Initial border color Dark Blue */ animation: borderChange 4s infinite; border-style: outset; border-color: rgba(0, 0, 139, 1); /* Dark Blue */ background: linear-gradient(180deg, rgba(9,9,121,0.75) 0%, rgba(80,6,167,0.75) 50%, rgba(2,0,36,0.75) 100%); } `; document.getElementsByTagName("head")[0].appendChild(style); let isRunning = false; let intervalId = null; button.onclick = function () { if (!isRunning) { button.style.backgroundColor = "rgba(106,50,198,0.75)"; intervalId = setInterval(extractNicks, 1500); isRunning = true; toastr.info("Leaderboard Values Started 🟢", { className: "toast-custom-bg", }); } else { button.style.backgroundColor = "rgba(55,55,197,0.75)"; clearInterval(intervalId); isRunning = false; toastr.info("Leaderboard Values Stopped 🔴", { className: "toast-custom-bg", }); } }; const targetDiv = document.querySelector(".fcols.grow.hinherit"); if (targetDiv) { targetDiv.appendChild(button); } } // Call createStartButton after a delay of 5000 milliseconds setTimeout(function() { createStartButton(); }, 5000); })();