Commit e84fae99 authored by nanahira's avatar nanahira

fix reconn deck verify

parent a621b36b
Pipeline #43328 passed with stages
in 4 minutes and 52 seconds
...@@ -5,7 +5,7 @@ import { ...@@ -5,7 +5,7 @@ import {
import { ChatColor } from 'ygopro-msg-encode'; import { ChatColor } from 'ygopro-msg-encode';
import { Context } from '../../app'; import { Context } from '../../app';
import { RoomCheckDeck } from '../../room'; import { RoomCheckDeck } from '../../room';
import { isSrvproTournamentDeckEqual } from '../../utility/deck-compare'; import { isUpdateDeckPayloadEqual } from '../../utility/deck-compare';
import { LockDeckExpectedDeckCheck } from './lock-deck-check'; import { LockDeckExpectedDeckCheck } from './lock-deck-check';
class SrvproDeckBadError extends YGOProLFListError { class SrvproDeckBadError extends YGOProLFListError {
...@@ -47,7 +47,7 @@ export class LockDeckService { ...@@ -47,7 +47,7 @@ export class LockDeckService {
} }
const deckName = expectedDeck.name || ''; const deckName = expectedDeck.name || '';
if (isSrvproTournamentDeckEqual(msg.deck, expectedDeck)) { if (isUpdateDeckPayloadEqual(msg.deck, expectedDeck)) {
await client.sendChat( await client.sendChat(
`#{deck_correct_part1}${deckName}#{deck_correct_part2}`, `#{deck_correct_part1}${deckName}#{deck_correct_part2}`,
ChatColor.BABYBLUE, ChatColor.BABYBLUE,
......
...@@ -8,25 +8,6 @@ import YGOProDeck from 'ygopro-deck-encode'; ...@@ -8,25 +8,6 @@ import YGOProDeck from 'ygopro-deck-encode';
export function isUpdateDeckPayloadEqual( export function isUpdateDeckPayloadEqual(
deck1: YGOProDeck, deck1: YGOProDeck,
deck2: YGOProDeck, deck2: YGOProDeck,
): boolean {
const uint8Array1 = deck1.toUpdateDeckPayload();
const uint8Array2 = deck2.toUpdateDeckPayload();
// 将 Uint8Array 转换为 Buffer 再比较
const buffer1 = Buffer.from(uint8Array1);
const buffer2 = Buffer.from(uint8Array2);
return buffer1.equals(buffer2);
}
/**
* srvpro 锦标赛模式的对比方式:
* 1. 用 UPDATE_DECK payload 形态归一化(main+extra 统一到 payload 语义)
* 2. 忽略顺序进行比较
*/
export function isSrvproTournamentDeckEqual(
deck1: YGOProDeck,
deck2: YGOProDeck,
): boolean { ): boolean {
const normalizedDeck1 = YGOProDeck.fromUpdateDeckPayload( const normalizedDeck1 = YGOProDeck.fromUpdateDeckPayload(
deck1.toUpdateDeckPayload(), deck1.toUpdateDeckPayload(),
......
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