您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds a draggable window to send custom packets with notification balloons.
// ==UserScript== // @name MCIO Custom Packets & Console // @namespace http://tampermonkey.net/ // @version 1.6 // @description Adds a draggable window to send custom packets with notification balloons. // @author Earth1283 // @match *://mine-craft.io/* // @grant GM_xmlhttpRequest // @grant GM_addStyle // ==/UserScript== // For the "CONSOLE" option // You can run `GAME.events.emit('gamePlay')` to join a game. (function() { 'use strict'; // --- Styling --- GM_addStyle(` #packetSenderWindow { position: fixed; top: 50px; left: 50px; background-color: #282c34; border: 1px solid #61dafb; padding: 15px; z-index: 1000; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; width: 350px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5); border-radius: 8px; color: #fff; } #packetSenderWindow .header { background-color: #3d4351; padding: 10px; margin-bottom: 10px; cursor: move; border-radius: 5px; text-align: center; font-weight: bold; } #packetSenderWindow textarea, #packetSenderWindow select { width: 100%; padding: 8px; margin-bottom: 10px; box-sizing: border-box; border: 1px solid #666; background-color: #333; color: #eee; border-radius: 4px; } #packetSenderWindow button { padding: 10px 15px; background-color: #61dafb; color: #282c34; border: none; cursor: pointer; border-radius: 5px; font-weight: bold; transition: background-color 0.3s ease; } #packetSenderWindow button:hover { background-color: #4fa3d1; } #packetSenderWindow select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, #eee 50%), linear-gradient(135deg, #eee 50%, transparent 50%); background-position: calc(100% - 15px) calc(1em + 2px), calc(100% - 10px) calc(1em + 2px); background-size: 5px 5px, 5px 5px; background-repeat: no-repeat; padding-right: 30px; } .packet-balloon { position: fixed; top: 10px; right: 10px; background-color: #333; color: #eee; padding: 10px 15px; border-radius: 5px; margin-bottom: 10px; z-index: 1001; transition: opacity 0.3s ease; cursor: pointer; } .packet-balloon.success { background-color: #4CAF50; color: white; } .packet-balloon.error { background-color: #f44336; color: white; } `); // --- Create Window --- const windowDiv = document.createElement('div'); windowDiv.id = 'packetSenderWindow'; windowDiv.innerHTML = ` <div class="header">Packet Sender</div> <select id="packetMethod"> <option value="GET">GET</option> <option value="POST">POST</option> <option value="PUT">PUT</option> <option value="DELETE">DELETE</option> <option value="CONSOLE">CONSOLE</option> </select> <textarea id="packetData" placeholder="Packet Data (JSON, etc.) or Console Command"></textarea> <button id="sendPacketButton">Send Packet/Command</button> `; document.body.appendChild(windowDiv); // --- Drag Functionality --- let isDragging = false; let offsetX, offsetY; const header = windowDiv.querySelector('.header'); header.addEventListener('mousedown', (e) => { isDragging = true; offsetX = e.clientX - windowDiv.offsetLeft; offsetY = e.clientY - windowDiv.offsetTop; document.addEventListener('mousemove', drag); document.addEventListener('mouseup', () => { isDragging = false; document.removeEventListener('mousemove', drag); }); }); function drag(e) { if (!isDragging) return; windowDiv.style.left = (e.clientX - offsetX) + 'px'; windowDiv.style.top = (e.clientY - offsetY) + 'px'; } // --- Send Packet/Command Functionality --- const sendButton = document.getElementById('sendPacketButton'); sendButton.addEventListener('click', () => { const method = document.getElementById('packetMethod').value; const data = document.getElementById('packetData').value; const url = window.location.href; // Use current page URL if (method === 'CONSOLE') { try { const script = document.createElement('script'); script.textContent = data; document.head.appendChild(script); script.remove(); // Clean up the injected script createBalloon('✅ Console command executed!', 'success'); } catch (error) { console.error('Console command error:', error); createBalloon('❌ Console command failed.', 'error'); } } else { GM_xmlhttpRequest({ method: method, url: url, data: data, onload: (response) => { console.log('Packet Response:', response); createBalloon('🚀 Packet sent!', 'success'); }, onerror: (error) => { console.error('Packet Error:', error); createBalloon('🚨 Packet send failed.', 'error'); } }); } }); // --- Balloon Functionality --- function createBalloon(message, type) { const balloon = document.createElement('div'); balloon.classList.add('packet-balloon', type); balloon.textContent = message; document.body.appendChild(balloon); let timeoutId = setTimeout(() => { balloon.style.opacity = '0'; setTimeout(() => balloon.remove(), 300); }, 5000); balloon.addEventListener('mouseover', () => clearTimeout(timeoutId)); balloon.addEventListener('mouseout', () => { timeoutId = setTimeout(() => { balloon.style.opacity = '0'; setTimeout(() => balloon.remove(), 300); }, 5000); }); balloon.addEventListener('click', () => { clearTimeout(timeoutId); balloon.style.opacity = '0'; setTimeout(() => balloon.remove(), 300); }); } })();