diff --git a/front/src/Api/Events/IframeEvent.ts b/front/src/Api/Events/IframeEvent.ts index 12a9854e..e56699a7 100644 --- a/front/src/Api/Events/IframeEvent.ts +++ b/front/src/Api/Events/IframeEvent.ts @@ -35,6 +35,7 @@ import type { CameraSetEvent } from "./CameraSetEvent"; import type { CameraFollowPlayerEvent } from "./CameraFollowPlayerEvent"; import { isColorEvent } from "./ColorEvent"; import { isMovePlayerToEventConfig } from "./MovePlayerToEvent"; +import { isMovePlayerToEventAnswer } from "./MovePlayerToEventAnswer"; export interface TypedMessageEvent extends MessageEvent { data: T; @@ -176,7 +177,7 @@ export const iframeQueryMapTypeGuards = { }, movePlayerTo: { query: isMovePlayerToEventConfig, - answer: isPlayerPosition, + answer: isMovePlayerToEventAnswer, }, }; diff --git a/front/src/Api/Events/MovePlayerToEventAnswer.ts b/front/src/Api/Events/MovePlayerToEventAnswer.ts new file mode 100644 index 00000000..67d2f9ae --- /dev/null +++ b/front/src/Api/Events/MovePlayerToEventAnswer.ts @@ -0,0 +1,11 @@ +import * as tg from "generic-type-guard"; + +export const isMovePlayerToEventAnswer = new tg.IsInterface() + .withProperties({ + x: tg.isNumber, + y: tg.isNumber, + cancelled: tg.isBoolean, + }) + .get(); + +export type MovePlayerToEventAnswer = tg.GuardedType; diff --git a/maps/tests/MovePlayer/script.php b/maps/tests/MovePlayer/script.php index 9676c914..74a57dfe 100644 --- a/maps/tests/MovePlayer/script.php +++ b/maps/tests/MovePlayer/script.php @@ -16,10 +16,19 @@ randomChainedMovementButton.addEventListener('click', async () => { try { WA.player.moveTo(100, 100, 10).then((result) => { + if (result.cancelled) { + return; + } console.log(result); WA.player.moveTo(500, 100, 20).then((result) => { + if (result.cancelled) { + return; + } console.log(result); WA.player.moveTo(500, 500, 10).then((result) => { + if (result.cancelled) { + return; + } console.log(result); }); });