extraction idea

# Conflicts:
#	front/src/Api/ScriptUtils.ts
#	front/src/iframe_api.ts
This commit is contained in:
jonny 2021-05-25 13:47:41 +02:00
parent fe573893a1
commit 1a1ab30574
4 changed files with 122 additions and 15 deletions

View file

@ -0,0 +1,35 @@
import { ChatEvent } from '../Events/ChatEvent'
import { isUserInputChatEvent, UserInputChatEvent } from '../Events/UserInputChatEvent'
import { registerWorkadventureCommand, registerWorkadvntureCallback, sendToWorkadventure } from "./iframe-registration"
let chatMessageCallback: (event: string) => void | undefined
class WorkadvntureChatCommands {
sendChatMessage(message: string, author: string) {
sendToWorkadventure({
type: 'chat',
data: {
'message': message,
'author': author
} as ChatEvent
})
}
/**
* Listen to messages sent by the local user, in the chat.
*/
onChatMessage(callback: (message: string) => void) {
chatMessageCallback = callback
}
}
export const commands = registerWorkadventureCommand(new WorkadvntureChatCommands())
export const callbacks = registerWorkadvntureCallback([{
callback: (event: UserInputChatEvent) => {
chatMessageCallback?.(event.message)
},
type: "userInputChat",
typeChecker: isUserInputChatEvent
}])