Загрузка...

Minecraft-Protocol node.js

Thread in Node.js created by Tw1x_Team Nov 6, 2023. 181 view

  1. Tw1x_Team
    Tw1x_Team Topic starter Nov 6, 2023 Banned 0 Dec 29, 2022
    у меня есть вот такой вот node.js код:
    JS
    function StartVirtualServer(ip, port, ver, client2, proxyClient2, proxyServer2) {
    const msg = { translate: 'chat.type.announcement', "with": ['§cCreating virtual server...'] };
    client2.write("chat", { message: JSON.stringify(msg), position: 0, sender: '0' });
    const proxyServer = createServer({
    host: "127.0.0.1",
    port: 25566,
    version: ver,
    "online-mode": false,
    keepAlive: false,
    })
    const msg2 = { translate: 'chat.type.announcement', "with": ['§cSucessfuly created virtual server at localhost:25566'] };
    client2.write("chat", { message: JSON.stringify(msg2), position: 0, sender: '0' });

    proxyServer.on("login", (client) => {
    const proxyClient = createClient({
    username: client2.username,
    auth: "offline",
    host: ip,
    port: port,
    keepAlive: true,
    version: ver,
    hideErrors: true,
    });
    nickname = client2.username
    const packets = [];
    let userClient;

    client2.on("packet", (data, meta) => {
    if (meta.name === "keep_alive") return;
    if (!client || meta.state !== states.PLAY || client.state !== states.PLAY) return;

    proxyClient.write(meta.name, data);
    });

    // Добавляем обработку пакетов "player_position" и "player_position_and_look" и передаем их на proxyClient
    client2.on("packet", (data, meta) => {
    if (meta.name === "keep_alive") return;
    if (!client || meta.state !== states.PLAY || client.state !== states.PLAY) return;
    });

    client2.on('position_look', (data, meta) => {
    client.write("position_look", data)
    });

    client2.on('position', (data, meta) => {
    client.write("position", data)
    });

    client2.on('look', (data, meta) => {
    client.write("look", data)
    });

    proxyClient2.on("packet", (data, meta) => {
    const packetName = meta.name;
    if (packetName === "keep_alive") {
    return;
    }
    const excludedPackets = ["keep_alive", "success", "custom_payload", "encryption_begin", "compress", "open_window", "close_window", "player_chat", "profileless_chat"];
    if (!excludedPackets.includes(packetName)) {
    packets.push([meta, data]);
    }

    if (!userClient || meta.state !== states.PLAY || userClient.state !== states.PLAY) {
    return;
    }

    userClient.write(packetName, data);

    if (packetName === "set_compression") {
    userClient.compressionThreshold = data.threshold;
    }

    });

    proxyClient2.on("end", () => {
    if (userClient) {
    redirectpacket(ip, port, ver, client, proxyClient, proxyServer);
    }
    });

    proxyClient2.on("error", (error) => {
    if (userClient) {
    console.error("Client error:", error);
    userClient.end(error);
    }
    });

    userClient = client;

    packets.forEach((p) => {
    const meta = p[0];
    const data = p[1];
    proxyClient.write(meta.name, data);
    });

    // Добавляем обработку пакета "Look" и передаем его на proxyClient
    client2.on("packet", (data, meta) => {
    if (meta.name === "keep_alive") return;
    if (!client || meta.state !== states.PLAY || client.state !== states.PLAY) return;

    proxyClient.write(meta.name, data);
    });

    client.on("error", (error) => {
    if (client) {
    console.error(error);
    }
    });
    });

    }
    в нем у меня когда я запускаю эту функцию указывая ip,port,ver,client2,proxyclient2,proxyServer2 у меня запускается майнкрафт сервер при заходе на который у меня создается клиент который перенаправляет меня на ip:port в нем я отслеживаю все position, position_look, look с client2 и передаю их в client но почему то при любом движение на client2 меня автоматический кикает в майнкрафте по причине Internal Exception: io.netty.handler.codec.DecoderException: java.lang.IndexOutOfBoundsException: readerIndex(1) + lenght(1) exceeds writerEndex(1): PooledUnsafeDirectByteBuf(ridx: 1, widx: 1, cap: 1) и в консоль выдает ошибку
    Disconnecting client because error Error: write ECONNABORTED
    at afterWriteDispatched (node:internal/stream_base_commons:160:15)
    at writeGeneric (node:internal/stream_base_commons:151:3)
    at Socket._writeGeneric (node:net:962:11)
    at Socket._write (node:net:974:8)
    at writeOrBuffer (node:internal/streams/writable:392:12)
    at _write (node:internal/streams/writable:333:10)
    at Writable.write (node:internal/streams/writable:337:10)
    at Framer.ondata (C:\Users\User\Desktop\UNCHEATPROKJECT\node_modules\readable-stream\lib\internal\streams\readable.js:662:22)
    at Framer.emit (node:events:517:28)
    at addChunk (C:\Users\User\Desktop\UNCHEATPROKJECT\node_modules\readable-stream\lib\internal\streams\readable.js:278:12) {
    errno: -4079,
    code: 'ECONNABORTED',
    syscall: 'write'
    }
    Error: write ECONNABORTED
    at afterWriteDispatched (node:internal/stream_base_commons:160:15)
    at writeGeneric (node:internal/stream_base_commons:151:3)
    at Socket._writeGeneric (node:net:962:11)
    at Socket._write (node:net:974:8)
    at writeOrBuffer (node:internal/streams/writable:392:12)
    at _write (node:internal/streams/writable:333:10)
    at Writable.write (node:internal/streams/writable:337:10)
    at Framer.ondata (C:\Users\User\Desktop\UNCHEATPROKJECT\node_modules\readable-stream\lib\internal\streams\readable.js:662:22)
    at Framer.emit (node:events:517:28)
    at addChunk (C:\Users\User\Desktop\UNCHEATPROKJECT\node_modules\readable-stream\lib\internal\streams\readable.js:278:12) {
    errno: -4079,
    code: 'ECONNABORTED',
    syscall: 'write'
    }
     
  2. Президент
    Президент Nov 9, 2023 Banned 1428 Oct 11, 2023
     
Loading...
Top