Fixing bug where only one chat listener can be added.

This commit is contained in:
David Négrier 2021-06-21 13:47:07 +02:00
parent 620bd1ab2c
commit 6101548d89

View file

@ -2,13 +2,15 @@ import type { ChatEvent } from '../Events/ChatEvent'
import { isUserInputChatEvent, UserInputChatEvent } from '../Events/UserInputChatEvent' import { isUserInputChatEvent, UserInputChatEvent } from '../Events/UserInputChatEvent'
import { IframeApiContribution, sendToWorkadventure } from './IframeApiContribution' import { IframeApiContribution, sendToWorkadventure } from './IframeApiContribution'
import { apiCallback } from "./registeredCallbacks"; import { apiCallback } from "./registeredCallbacks";
import {Subject} from "rxjs";
const chatStream = new Subject<string>();
class WorkadventureChatCommands extends IframeApiContribution<WorkadventureChatCommands> { class WorkadventureChatCommands extends IframeApiContribution<WorkadventureChatCommands> {
chatMessageCallback?: (event: string) => void
callbacks = [apiCallback({ callbacks = [apiCallback({
callback: (event: UserInputChatEvent) => { callback: (event: UserInputChatEvent) => {
this.chatMessageCallback?.(event.message) chatStream.next(event.message);
}, },
type: "userInputChat", type: "userInputChat",
typeChecker: isUserInputChatEvent typeChecker: isUserInputChatEvent
@ -29,7 +31,7 @@ class WorkadventureChatCommands extends IframeApiContribution<WorkadventureChatC
* Listen to messages sent by the local user, in the chat. * Listen to messages sent by the local user, in the chat.
*/ */
onChatMessage(callback: (message: string) => void) { onChatMessage(callback: (message: string) => void) {
this.chatMessageCallback = callback chatStream.subscribe(callback);
} }
} }