110 lines
2.2 KiB
TypeScript
110 lines
2.2 KiB
TypeScript
import {Song, PlayingSong, QueuedSong} from "./dataTypes";
|
|
|
|
export type StuenMessages =
|
|
ListenerLeft
|
|
| ListenerList
|
|
| ListenerJoined
|
|
| SendChatMessage
|
|
| SearchSong
|
|
| SearchSongResult
|
|
| Join
|
|
| QueueSong
|
|
| CurrentQueue
|
|
| CurrentSong
|
|
| UnqueueSong
|
|
| ReorderSong
|
|
| SkipSong;
|
|
|
|
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');
|
|
}
|
|
}
|
|
|
|
export class SkipSong extends StuenMessage {
|
|
constructor() {
|
|
super('SkipSong');
|
|
}
|
|
}
|
|
|