forked from Hri7566/mpp-server-dev2
New types
This commit is contained in:
parent
b938ce9a40
commit
683f14ddbc
|
@ -1 +1,319 @@
|
||||||
|
import { Socket } from "../ws/Socket";
|
||||||
|
|
||||||
declare type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
|
declare type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
|
||||||
|
|
||||||
|
declare type UserFlags = Partial<{
|
||||||
|
freeze_name: number;
|
||||||
|
"no chat rate limit": number;
|
||||||
|
chat_curse_1: number;
|
||||||
|
chat_curse_2: number;
|
||||||
|
override_id: string;
|
||||||
|
volume: number;
|
||||||
|
}>;
|
||||||
|
|
||||||
|
declare interface Tag {
|
||||||
|
text: string;
|
||||||
|
color: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare interface User {
|
||||||
|
_id: string; // user id
|
||||||
|
name: string;
|
||||||
|
color: string;
|
||||||
|
tag?: Tag;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare interface Participant extends User {
|
||||||
|
id: string; // participant id (same as user id on mppclone)
|
||||||
|
}
|
||||||
|
|
||||||
|
declare type ChannelSettings = {
|
||||||
|
color: string;
|
||||||
|
crownsolo: boolean;
|
||||||
|
chat: boolean;
|
||||||
|
visible: boolean;
|
||||||
|
limit: number;
|
||||||
|
} & Partial<{
|
||||||
|
color2: string;
|
||||||
|
lobby: boolean;
|
||||||
|
owner_id: string;
|
||||||
|
"lyrical notes": boolean;
|
||||||
|
"no cussing": boolean;
|
||||||
|
noindex: boolean;
|
||||||
|
}>;
|
||||||
|
|
||||||
|
declare type ChannelSettingValue = Partial<string | number | boolean>;
|
||||||
|
|
||||||
|
declare type NoteLetter = `a` | `b` | `c` | `d` | `e` | `f` | `g`;
|
||||||
|
declare type NoteOctave = -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7;
|
||||||
|
|
||||||
|
declare interface Note {
|
||||||
|
n: `${NoteLetter}${NoteOctave}`;
|
||||||
|
d: number;
|
||||||
|
v: number;
|
||||||
|
s?: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare type Notification = Partial<{
|
||||||
|
duration: number;
|
||||||
|
class: string;
|
||||||
|
id: string;
|
||||||
|
title: string;
|
||||||
|
text: string;
|
||||||
|
html: string;
|
||||||
|
target: string;
|
||||||
|
}>;
|
||||||
|
|
||||||
|
declare type CustomTarget = {
|
||||||
|
global?: boolean;
|
||||||
|
} & (
|
||||||
|
| {
|
||||||
|
mode: "subscribed";
|
||||||
|
}
|
||||||
|
| {
|
||||||
|
mode: "ids";
|
||||||
|
ids: string[];
|
||||||
|
}
|
||||||
|
| {
|
||||||
|
mode: "id";
|
||||||
|
id: string;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
declare interface Crown {
|
||||||
|
userId: string;
|
||||||
|
partcipantId?: string;
|
||||||
|
time: number;
|
||||||
|
startPos: {
|
||||||
|
x: number;
|
||||||
|
y: number;
|
||||||
|
};
|
||||||
|
endPos: {
|
||||||
|
x: number;
|
||||||
|
y: number;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
declare interface ChannelInfo {
|
||||||
|
banned?: boolean;
|
||||||
|
count: number;
|
||||||
|
id: string;
|
||||||
|
_id: string;
|
||||||
|
crown?: Crown;
|
||||||
|
settings: ChannelSettings;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare interface ServerEvents {
|
||||||
|
a: {
|
||||||
|
m: "a";
|
||||||
|
message: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
bye: {
|
||||||
|
m: "bye";
|
||||||
|
};
|
||||||
|
|
||||||
|
ch: {
|
||||||
|
m: "ch";
|
||||||
|
_id: string;
|
||||||
|
set: ChannelSettings;
|
||||||
|
};
|
||||||
|
|
||||||
|
chown: {
|
||||||
|
m: "chown";
|
||||||
|
id?: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
chset: {
|
||||||
|
m: "chset";
|
||||||
|
set: ChannelSettings;
|
||||||
|
};
|
||||||
|
|
||||||
|
custom: {
|
||||||
|
m: "custom";
|
||||||
|
data: any;
|
||||||
|
target: CustomTarget;
|
||||||
|
};
|
||||||
|
|
||||||
|
devices: {
|
||||||
|
m: "devices";
|
||||||
|
list: any[];
|
||||||
|
};
|
||||||
|
|
||||||
|
dm: {
|
||||||
|
m: "dm";
|
||||||
|
message: string;
|
||||||
|
_id: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
hi: {
|
||||||
|
m: "hi";
|
||||||
|
token?: string;
|
||||||
|
login?: { type: string; code: string };
|
||||||
|
code?: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
kickban: {
|
||||||
|
m: "kickban";
|
||||||
|
_id: string;
|
||||||
|
ms: number;
|
||||||
|
};
|
||||||
|
|
||||||
|
m: {
|
||||||
|
m: "m";
|
||||||
|
x?: string | number;
|
||||||
|
y?: string | number;
|
||||||
|
};
|
||||||
|
|
||||||
|
"-custom": {
|
||||||
|
m: "-custom";
|
||||||
|
};
|
||||||
|
|
||||||
|
"-ls": {
|
||||||
|
m: "-ls";
|
||||||
|
};
|
||||||
|
|
||||||
|
n: {
|
||||||
|
m: "n";
|
||||||
|
t: number;
|
||||||
|
n: Note[];
|
||||||
|
};
|
||||||
|
|
||||||
|
"+custom": {
|
||||||
|
m: "+custom";
|
||||||
|
};
|
||||||
|
|
||||||
|
"+ls": {
|
||||||
|
m: "+ls";
|
||||||
|
};
|
||||||
|
|
||||||
|
t: {
|
||||||
|
m: "t";
|
||||||
|
e: number;
|
||||||
|
};
|
||||||
|
|
||||||
|
unban: {
|
||||||
|
m: "unban";
|
||||||
|
_id: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
userset: {
|
||||||
|
m: "userset";
|
||||||
|
set: { name?: string; color?: string };
|
||||||
|
};
|
||||||
|
|
||||||
|
// Admin
|
||||||
|
|
||||||
|
color: {
|
||||||
|
m: "color";
|
||||||
|
_id: string;
|
||||||
|
color: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
name: {
|
||||||
|
m: "name";
|
||||||
|
_id: string;
|
||||||
|
name: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
user_flag: {
|
||||||
|
m: "user_flag";
|
||||||
|
_id: string;
|
||||||
|
key: keyof UserFlags;
|
||||||
|
value: UserFlags[keyof UserFlags];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
declare interface ClientEvents {
|
||||||
|
a: {
|
||||||
|
m: "a";
|
||||||
|
a: string;
|
||||||
|
p: Participant;
|
||||||
|
t: number;
|
||||||
|
};
|
||||||
|
|
||||||
|
b: {
|
||||||
|
m: "b";
|
||||||
|
code: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
c: {
|
||||||
|
m: "c";
|
||||||
|
c: IncomingMPPEvents["a"][];
|
||||||
|
};
|
||||||
|
|
||||||
|
ch: {
|
||||||
|
m: "ch";
|
||||||
|
p: string;
|
||||||
|
ch: ChannelInfo;
|
||||||
|
};
|
||||||
|
|
||||||
|
custom: {
|
||||||
|
m: "custom";
|
||||||
|
data: any;
|
||||||
|
p: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
hi: {
|
||||||
|
m: "hi";
|
||||||
|
t: number;
|
||||||
|
u: User;
|
||||||
|
permissions: any;
|
||||||
|
token?: any;
|
||||||
|
accountInfo: any;
|
||||||
|
};
|
||||||
|
|
||||||
|
ls: {
|
||||||
|
m: "ls";
|
||||||
|
c: boolean;
|
||||||
|
u: ChannelInfo[];
|
||||||
|
};
|
||||||
|
|
||||||
|
m: {
|
||||||
|
m: "m";
|
||||||
|
x: number;
|
||||||
|
y: number;
|
||||||
|
id: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
n: {
|
||||||
|
m: "n";
|
||||||
|
t: number;
|
||||||
|
n: Note[];
|
||||||
|
p: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
notification: {
|
||||||
|
duration?: number;
|
||||||
|
class?: string;
|
||||||
|
id?: string;
|
||||||
|
title?: string;
|
||||||
|
text?: string;
|
||||||
|
html?: string;
|
||||||
|
target?: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
nq: {
|
||||||
|
m: "nq";
|
||||||
|
allowance: number;
|
||||||
|
max: number;
|
||||||
|
maxHistLen: number;
|
||||||
|
};
|
||||||
|
|
||||||
|
p: {
|
||||||
|
m: "p";
|
||||||
|
x: number;
|
||||||
|
y: number;
|
||||||
|
} & Participant;
|
||||||
|
|
||||||
|
t: {
|
||||||
|
m: "t";
|
||||||
|
t: number;
|
||||||
|
e: number;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
declare type ServerEventListener<EventID extends keyof ServerEvents> = {
|
||||||
|
id: EventID;
|
||||||
|
callback: (msg: ServerEvents[EventID], socket: Socket) => void;
|
||||||
|
};
|
||||||
|
|
Loading…
Reference in New Issue