86 lines
2.1 KiB
TypeScript
86 lines
2.1 KiB
TypeScript
import {Song, PlayingSong, QueuedSong} from "./dataTypes";
|
|
|
|
export type StuenMessages = ListenerLeft | ListenerList | ListenerJoined | SendChatMessage | SearchSong | SearchSongResult | Join | QueueSong | CurrentQueue | CurrentSong | UnqueueSong | ReorderSong;
|
|
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: QueuedSong[]) {
|
|
super('CurrentQueue');
|
|
}
|
|
}
|
|
|
|
export class CurrentSong extends StuenMessage {
|
|
constructor(public song: PlayingSong | null) {
|
|
super('CurrentSong');
|
|
}
|
|
}
|
|
|
|
export class UnqueueSong extends StuenMessage {
|
|
constructor(public position: number | null, public all: boolean | undefined = false) {
|
|
super('UnqueueSong');
|
|
}
|
|
}
|
|
export class ReorderSong extends StuenMessage {
|
|
constructor(public positionToMove: number, public placePosition: number) {
|
|
super('ReorderSong');
|
|
}
|
|
}
|