Files
Magic-Garden-Bot/capture_script.js
2025-12-09 23:21:09 +00:00

68 lines
2.6 KiB
JavaScript

(function () {
console.clear();
console.log("%c Starting Magic Garden Traffic Capture... ", "background: #222; color: #bada55; font-size: 20px");
// storage for logs
window.capturedTraffic = [];
// Hook WebSocket Constructor to catch NEW connections (Best for full session capture)
const OriginalWebSocket = window.WebSocket;
window.WebSocket = function (...args) {
console.log("%c WS CONNECTING: " + args[0], "color: yellow");
const socket = new OriginalWebSocket(...args);
// Hook incoming messages
socket.addEventListener('message', (event) => {
const payload = {
type: 'INCOMING',
timestamp: Date.now(),
data: event.data
};
window.capturedTraffic.push(payload);
// Optional: Log to console to see it live (can be spammy)
// console.log('%c < IN', 'color: green', event.data);
});
// Hook outgoing messages
const originalSend = socket.send;
socket.send = function (data) {
const payload = {
type: 'OUTGOING',
timestamp: Date.now(),
data: data
};
window.capturedTraffic.push(payload);
console.log('%c > OUT', 'color: cyan', data);
originalSend.apply(this, arguments);
};
return socket;
};
// Copy prototype to ensure instanceof checks pass
window.WebSocket.prototype = OriginalWebSocket.prototype;
Object.keys(OriginalWebSocket).forEach(key => {
window.WebSocket[key] = OriginalWebSocket[key];
});
// Helper to download the logs
window.downloadTraffic = function () {
const json = JSON.stringify(window.capturedTraffic, null, 2);
const blob = new Blob([json], { type: 'application/json' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = `magic_garden_traffic_${Date.now()}.json`;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
console.log(`%c Downloaded ${window.capturedTraffic.length} packets.`, "color: #bada55");
};
console.log("%c INSTRUCTIONS:", "font-weight: bold; font-size: 14px");
console.log("1. The script is now active.");
console.log("2. IMPORTANT: Refresh the page now to capture the initial connection handshake.");
console.log("3. Play the game (move, farm, sell).");
console.log("4. When done, type %c window.downloadTraffic() %c in the console to save the log file.", "background: #eee; color: black; padding: 2px", "");
})();