Commit 72362a53 authored by nanahira's avatar nanahira

better error encoding

parent 6b5773ae
Pipeline #43238 failed with stages
in 117 minutes and 40 seconds
......@@ -28,7 +28,7 @@
"ygopro-cdb-encode": "^1.0.2",
"ygopro-deck-encode": "^1.0.15",
"ygopro-lflist-encode": "^1.0.3",
"ygopro-msg-encode": "^1.1.21",
"ygopro-msg-encode": "^1.1.25",
"ygopro-yrp-encode": "^1.0.1",
"yuzuthread": "^1.0.8"
},
......@@ -7296,9 +7296,9 @@
}
},
"node_modules/ygopro-msg-encode": {
"version": "1.1.21",
"resolved": "https://registry.npmjs.org/ygopro-msg-encode/-/ygopro-msg-encode-1.1.21.tgz",
"integrity": "sha512-DBnuevf4tMLs+vcfB0tifbdS4bSNbKnmoGSY+pbbD8cMBExry+TIKbDcplJDHOpiBg0RoUHiEbZ5E8wNJDmkJQ==",
"version": "1.1.25",
"resolved": "https://registry.npmjs.org/ygopro-msg-encode/-/ygopro-msg-encode-1.1.25.tgz",
"integrity": "sha512-0iitV9oCINFCtrXYA1jYp2R6RuU0KXJkvBVamnjtv8HFtS82aPZ1R4D3h3RsLVukPQyqH9hb69vcujt7dYOzrA==",
"license": "MIT",
"dependencies": {
"typed-reflector": "^1.0.14",
......
......@@ -244,17 +244,27 @@ export class OcgcoreWorker {
0,
);
if (consumed < serialized.raw.length) {
const remainingBytes = serialized.raw.slice(consumed);
let trailingEncodeError = '';
try {
const s = YGOProMessages.getInstanceFromPayload(remainingBytes);
if (s) {
trailingEncodeError = `[trailing: ${s.constructor.name} ${JSON.stringify(s)}]`;
}
} catch (e) {
trailingEncodeError =
e instanceof Error ? e.message : String(e);
}
const nextIdentifier = serialized.raw[consumed];
encodeError =
`decoded ${messages.length} message(s) but left trailing bytes: ` +
`total=${serialized.raw.length}, consumed=${consumed}, nextIdentifier=${nextIdentifier ?? 'n/a'}`;
`total=${serialized.raw.length}, consumed=${consumed}, nextIdentifier=${nextIdentifier ?? 'n/a'}, lastMessage=${message.constructor.name}, anotherLastMessage=${messages.length > 1 ? messages[messages.length - 2].constructor.name : 'n/a'}, trailingEncodeError=${trailingEncodeError}`;
}
}
} catch (error) {
message = undefined;
messages = undefined;
encodeError =
error instanceof Error ? error.message : String(error);
encodeError = error instanceof Error ? error.message : String(error);
}
}
......
......@@ -1561,10 +1561,12 @@ export class Room {
acceptResult: () => true,
})
.middleware(YGOProMsgBase, async (message, next) => {
this.logger.debug(
{ msgName: message.constructor.name },
'Received game message',
);
if (!isUpdateMessage(message)) {
this.logger.debug(
{ msgName: message.constructor.name },
'Received game message',
);
}
return next();
})
.middleware(YGOProMsgNewTurn, async (message, next) => {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment