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 @@ ...@@ -28,7 +28,7 @@
"ygopro-cdb-encode": "^1.0.2", "ygopro-cdb-encode": "^1.0.2",
"ygopro-deck-encode": "^1.0.15", "ygopro-deck-encode": "^1.0.15",
"ygopro-lflist-encode": "^1.0.3", "ygopro-lflist-encode": "^1.0.3",
"ygopro-msg-encode": "^1.1.21", "ygopro-msg-encode": "^1.1.25",
"ygopro-yrp-encode": "^1.0.1", "ygopro-yrp-encode": "^1.0.1",
"yuzuthread": "^1.0.8" "yuzuthread": "^1.0.8"
}, },
...@@ -7296,9 +7296,9 @@ ...@@ -7296,9 +7296,9 @@
} }
}, },
"node_modules/ygopro-msg-encode": { "node_modules/ygopro-msg-encode": {
"version": "1.1.21", "version": "1.1.25",
"resolved": "https://registry.npmjs.org/ygopro-msg-encode/-/ygopro-msg-encode-1.1.21.tgz", "resolved": "https://registry.npmjs.org/ygopro-msg-encode/-/ygopro-msg-encode-1.1.25.tgz",
"integrity": "sha512-DBnuevf4tMLs+vcfB0tifbdS4bSNbKnmoGSY+pbbD8cMBExry+TIKbDcplJDHOpiBg0RoUHiEbZ5E8wNJDmkJQ==", "integrity": "sha512-0iitV9oCINFCtrXYA1jYp2R6RuU0KXJkvBVamnjtv8HFtS82aPZ1R4D3h3RsLVukPQyqH9hb69vcujt7dYOzrA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"typed-reflector": "^1.0.14", "typed-reflector": "^1.0.14",
......
...@@ -244,17 +244,27 @@ export class OcgcoreWorker { ...@@ -244,17 +244,27 @@ export class OcgcoreWorker {
0, 0,
); );
if (consumed < serialized.raw.length) { 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]; const nextIdentifier = serialized.raw[consumed];
encodeError = encodeError =
`decoded ${messages.length} message(s) but left trailing bytes: ` + `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) { } catch (error) {
message = undefined; message = undefined;
messages = undefined; messages = undefined;
encodeError = encodeError = error instanceof Error ? error.message : String(error);
error instanceof Error ? error.message : String(error);
} }
} }
......
...@@ -1561,10 +1561,12 @@ export class Room { ...@@ -1561,10 +1561,12 @@ export class Room {
acceptResult: () => true, acceptResult: () => true,
}) })
.middleware(YGOProMsgBase, async (message, next) => { .middleware(YGOProMsgBase, async (message, next) => {
this.logger.debug( if (!isUpdateMessage(message)) {
{ msgName: message.constructor.name }, this.logger.debug(
'Received game message', { msgName: message.constructor.name },
); 'Received game message',
);
}
return next(); return next();
}) })
.middleware(YGOProMsgNewTurn, async (message, 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