common/messageTypes.ts
Torben Pi Jensen f8104ffbfe Queue message
2023-11-05 20:55:43 +01:00

69 lines
1.5 KiB
TypeScript

import {Song} from "./dataTypes";
export type StuenMessages = ListenerLeft | ListenerList | ListenerJoined | SendChatMessage | SearchSong | SearchSongResult | Join | QueueSong | CurrentQueue;
export abstract class StuenMessage {
constructor(public type: string) {}
}
export class Join extends StuenMessage {
constructor(public name: string) {
super('Join');
}
}
export class ListenerJoined extends StuenMessage {
constructor(public name: string) {
super('ListenerJoined');
}
}
export class ListenerLeft extends StuenMessage {
constructor(public name: string) {
super('ListenerLeft');
}
}
export class ListenerList extends StuenMessage {
constructor(public names: string[]) {
super('ListenerList');
}
}
export class SendChatMessage extends StuenMessage {
constructor(public message: string) {
super('SendChatMessage');
}
}
export class ChatMessage extends StuenMessage {
constructor(public name: string, public message: string) {
super('ChatMessage');
}
}
export class SearchSong extends StuenMessage {
constructor(public query: string) {
super('SearchSong');
}
}
export class SearchSongResult extends StuenMessage {
constructor(public result: Song[]) {
super('SearchSongResult');
}
}
export class QueueSong extends StuenMessage {
constructor(public song: Song) {
super('QueueSong');
}
}
export class CurrentQueue extends StuenMessage {
constructor(public songs: Song[]) {
super('CurrentQueue');
}
}