this repo has no description
1import mc from 'minecraft-protocol'; 2 3const PROXY_PORT = 25565; 4const TARGET_HOST = 'localhost'; 5const TARGET_PORT = 25566; 6 7const SPOOFED_USERNAME = 'admin'; 8const SPOOFED_UUID = '36881d51-7477-3eb6-91a1-dfc11065590d'; 9 10const server = mc.createServer({ 11 'online-mode': false, 12 port: PROXY_PORT, 13 keepAlive: false, 14 version: '1.20.4' 15}); 16 17console.log(`Minecraft proxy listening on port ${PROXY_PORT}`); 18console.log(`Forwarding to ${TARGET_HOST}:${TARGET_PORT}`); 19 20server.on('login', (client) => { 21 console.log('\n=== NEW CLIENT CONNECTION ==='); 22 console.log(`Original Player: ${client.username}`); 23 console.log(`Original UUID: ${client.uuid}`); 24 console.log(`IP: ${client.socket.remoteAddress}`); 25 console.log(`Spoofing as: ${SPOOFED_USERNAME} (${SPOOFED_UUID})`); 26 27 const target = mc.createClient({ 28 host: TARGET_HOST, 29 port: TARGET_PORT, 30 username: SPOOFED_USERNAME, 31 keepAlive: false, 32 version: '1.20.4', 33 auth: 'offline' 34 }); 35 36 target.on('connect', () => { 37 console.log(`Connected to target server for ${client.username}`); 38 }); 39 40 target.on('error', (err) => { 41 console.error(`Target error for ${client.username}:`, err.message); 42 client.end('Connection to server failed'); 43 }); 44 45 client.on('packet', (data, meta) => { 46 if (meta.name.includes('auth') || 47 meta.name.includes('login') || 48 meta.name.includes('encryption') || 49 meta.name.includes('session')) { 50 console.log('\n--- AUTH PACKET (Client -> Server) ---'); 51 console.log(`Packet: ${meta.name}`); 52 console.log(`State: ${meta.state}`); 53 console.log('Data:', JSON.stringify(data, null, 2)); 54 console.log('--------------------------------------'); 55 } 56 57 if (target.state === mc.states.PLAY && meta.state === mc.states.PLAY) { 58 target.write(meta.name, data); 59 } 60 }); 61 62 target.on('packet', (data, meta) => { 63 if (meta.name.includes('auth') || 64 meta.name.includes('login') || 65 meta.name.includes('encryption') || 66 meta.name.includes('session') || 67 meta.name.includes('compress')) { 68 console.log('\n--- AUTH PACKET (Server -> Client) ---'); 69 console.log(`Packet: ${meta.name}`); 70 console.log(`State: ${meta.state}`); 71 console.log('Data:', JSON.stringify(data, null, 2)); 72 console.log('--------------------------------------'); 73 } 74 75 if (client.state === mc.states.PLAY && meta.state === mc.states.PLAY) { 76 client.write(meta.name, data); 77 } 78 }); 79 80 client.on('end', () => { 81 console.log(`Client ${client.username} disconnected`); 82 target.end(); 83 }); 84 85 target.on('end', () => { 86 console.log(`Target server disconnected for ${client.username}`); 87 client.end('Server connection closed'); 88 }); 89}); 90 91server.on('error', (err) => { 92 console.error('Server error:', err); 93}); 94 95server.on('listening', () => { 96 console.log('Server ready for connections'); 97});