tiaoom 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +58 -0
- package/package.json +59 -0
- package/src/client.cjs +2 -0
- package/src/client.cjs.map +1 -0
- package/src/client.d.cts +383 -0
- package/src/client.d.mts +383 -0
- package/src/client.iife.js +2 -0
- package/src/client.iife.js.map +1 -0
- package/src/client.mjs +2 -0
- package/src/client.mjs.map +1 -0
- package/src/index.cjs +499 -0
- package/src/index.cjs.map +1 -0
- package/src/index.d.cts +350 -0
- package/src/index.d.mts +350 -0
- package/src/index.mjs +464 -0
- package/src/index.mjs.map +1 -0
package/src/index.d.cts
ADDED
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import EventEmitter$1, { EventEmitter } from "events";
|
|
3
|
+
|
|
4
|
+
//#region lib/events/base.d.ts
|
|
5
|
+
interface BaseEvents {
|
|
6
|
+
ready: () => void;
|
|
7
|
+
close: () => void;
|
|
8
|
+
error: (error: Error) => void;
|
|
9
|
+
}
|
|
10
|
+
//#endregion
|
|
11
|
+
//#region lib/events/player.d.ts
|
|
12
|
+
interface PlayerEvents extends BaseEvents {
|
|
13
|
+
/**
|
|
14
|
+
* 加入房间
|
|
15
|
+
**/
|
|
16
|
+
join: (room: Room, player: Player) => void;
|
|
17
|
+
/**
|
|
18
|
+
* 离开房间
|
|
19
|
+
**/
|
|
20
|
+
leave: (room: Room, player: Player) => void;
|
|
21
|
+
/**
|
|
22
|
+
* 玩家状态变化
|
|
23
|
+
**/
|
|
24
|
+
status: (status: PlayerStatus) => void;
|
|
25
|
+
/**
|
|
26
|
+
* 玩家命令
|
|
27
|
+
*/
|
|
28
|
+
command: (message: MessagePackage) => void;
|
|
29
|
+
/**
|
|
30
|
+
* 玩家私信
|
|
31
|
+
**/
|
|
32
|
+
message: (data: string, sender?: Player) => void;
|
|
33
|
+
}
|
|
34
|
+
//#endregion
|
|
35
|
+
//#region lib/models/player.d.ts
|
|
36
|
+
interface PlayerOptions {
|
|
37
|
+
id: string;
|
|
38
|
+
name: string;
|
|
39
|
+
attributes?: any;
|
|
40
|
+
sender?: (type: string, ...message: any) => void;
|
|
41
|
+
}
|
|
42
|
+
declare enum PlayerStatus {
|
|
43
|
+
ready = "ready",
|
|
44
|
+
unready = "unready",
|
|
45
|
+
online = "online",
|
|
46
|
+
playing = "playing",
|
|
47
|
+
}
|
|
48
|
+
interface IPlayer extends PlayerOptions {
|
|
49
|
+
status: PlayerStatus;
|
|
50
|
+
}
|
|
51
|
+
declare class Player extends EventEmitter$1 implements IPlayer {
|
|
52
|
+
on<K extends keyof PlayerEvents>(event: K, listener: PlayerEvents[K]): this;
|
|
53
|
+
emit<K extends keyof PlayerEvents>(event: K, ...args: Parameters<PlayerEvents[K]>): boolean;
|
|
54
|
+
id: string;
|
|
55
|
+
name: string;
|
|
56
|
+
attributes?: any;
|
|
57
|
+
status: PlayerStatus;
|
|
58
|
+
sender?: (type: string, ...message: any) => void;
|
|
59
|
+
constructor({
|
|
60
|
+
id,
|
|
61
|
+
name,
|
|
62
|
+
attributes,
|
|
63
|
+
sender
|
|
64
|
+
}: PlayerOptions);
|
|
65
|
+
toJSON(): {
|
|
66
|
+
id: string;
|
|
67
|
+
name: string;
|
|
68
|
+
attributes: any;
|
|
69
|
+
status: PlayerStatus;
|
|
70
|
+
};
|
|
71
|
+
toString(): string;
|
|
72
|
+
setSender(sender: (type: string, ...message: any) => void): this;
|
|
73
|
+
}
|
|
74
|
+
//#endregion
|
|
75
|
+
//#region lib/models/message.d.ts
|
|
76
|
+
declare enum MessageTypes {
|
|
77
|
+
RoomList = "room.list",
|
|
78
|
+
RoomCreate = "room.create",
|
|
79
|
+
RoomReady = "room.ready",
|
|
80
|
+
RoomStart = "room.start",
|
|
81
|
+
RoomEnd = "room.end",
|
|
82
|
+
RoomClose = "room.close",
|
|
83
|
+
RoomAllReady = "room.allready",
|
|
84
|
+
RoomCommand = "room.command",
|
|
85
|
+
RoomMessage = "room.message",
|
|
86
|
+
PlayerOffline = "player.offline",
|
|
87
|
+
PlayerList = "player.list",
|
|
88
|
+
PlayerLogin = "player.login",
|
|
89
|
+
PlayerLogout = "player.logout",
|
|
90
|
+
PlayerJoin = "player.join",
|
|
91
|
+
PlayerLeave = "player.leave",
|
|
92
|
+
PlayerReady = "player.ready",
|
|
93
|
+
PlayerUnready = "player.unready",
|
|
94
|
+
PlayerCommand = "player.command",
|
|
95
|
+
}
|
|
96
|
+
interface MessagePackage {
|
|
97
|
+
type: MessageTypes | string;
|
|
98
|
+
data?: PlayerOptions | IRoomOptions | IPlayer | IRoom | IRoomPlayer | any;
|
|
99
|
+
sender?: IPlayer | IRoom | IRoomPlayer;
|
|
100
|
+
}
|
|
101
|
+
interface Message extends EventEmitter$1 {
|
|
102
|
+
on<K extends keyof MessageEvents>(event: K, listener: MessageEvents[K]): this;
|
|
103
|
+
emit<K extends keyof MessageEvents>(event: K, ...args: Parameters<MessageEvents[K]>): boolean;
|
|
104
|
+
close(): void;
|
|
105
|
+
send(message: MessagePackage): void;
|
|
106
|
+
}
|
|
107
|
+
//#endregion
|
|
108
|
+
//#region lib/events/message.d.ts
|
|
109
|
+
interface MessageEvents extends BaseEvents {
|
|
110
|
+
/**
|
|
111
|
+
* 服务接收数据
|
|
112
|
+
*/
|
|
113
|
+
message: (data: MessagePackage, cb?: (...params: any) => any) => void;
|
|
114
|
+
}
|
|
115
|
+
//#endregion
|
|
116
|
+
//#region lib/events/room.d.ts
|
|
117
|
+
interface RoomEvents extends BaseEvents {
|
|
118
|
+
/**
|
|
119
|
+
* 加入房间
|
|
120
|
+
**/
|
|
121
|
+
join: (player: IRoomPlayer) => void;
|
|
122
|
+
/**
|
|
123
|
+
* 离开房间
|
|
124
|
+
**/
|
|
125
|
+
leave: (player: IRoomPlayer) => void;
|
|
126
|
+
/**
|
|
127
|
+
* 房间状态变化
|
|
128
|
+
**/
|
|
129
|
+
status: (status: RoomStatus) => void;
|
|
130
|
+
/**
|
|
131
|
+
* 房间聊天
|
|
132
|
+
**/
|
|
133
|
+
message: (data: string) => void;
|
|
134
|
+
/**
|
|
135
|
+
* 玩家发送的房间命令
|
|
136
|
+
*/
|
|
137
|
+
'player-command': (message: MessagePackage) => void;
|
|
138
|
+
/**
|
|
139
|
+
* 房间命令
|
|
140
|
+
*/
|
|
141
|
+
command: (message: MessagePackage) => void;
|
|
142
|
+
/**
|
|
143
|
+
* 房间更新
|
|
144
|
+
*/
|
|
145
|
+
update: (room: IRoom) => void;
|
|
146
|
+
/**
|
|
147
|
+
* 玩家准备
|
|
148
|
+
*/
|
|
149
|
+
'player-ready': (player: IRoomPlayer) => void;
|
|
150
|
+
/**
|
|
151
|
+
* 全部玩家已准备
|
|
152
|
+
*/
|
|
153
|
+
'all-ready': (players: IRoomPlayer[]) => void;
|
|
154
|
+
/**
|
|
155
|
+
* 玩家取消准备
|
|
156
|
+
*/
|
|
157
|
+
'player-unready': (player: IRoomPlayer) => void;
|
|
158
|
+
/**
|
|
159
|
+
* 房间开始游戏
|
|
160
|
+
*/
|
|
161
|
+
start: (room: IRoom) => void;
|
|
162
|
+
/**
|
|
163
|
+
* 房间结束游戏
|
|
164
|
+
*/
|
|
165
|
+
end: (room: IRoom) => void;
|
|
166
|
+
}
|
|
167
|
+
//#endregion
|
|
168
|
+
//#region lib/events/index.d.ts
|
|
169
|
+
/**
|
|
170
|
+
* Tiaoom 广播事件
|
|
171
|
+
*/
|
|
172
|
+
interface TiaoomEvents extends BaseEvents {
|
|
173
|
+
/**
|
|
174
|
+
* 房间创建事件
|
|
175
|
+
* @param room 房间信息
|
|
176
|
+
*/
|
|
177
|
+
room: (room: Room) => void;
|
|
178
|
+
/**
|
|
179
|
+
* 返回房间列表
|
|
180
|
+
* @param rooms 房间列表
|
|
181
|
+
*/
|
|
182
|
+
rooms: (rooms: Room[]) => void;
|
|
183
|
+
/**
|
|
184
|
+
* 房间玩家变更事件
|
|
185
|
+
* @param room 房间信息
|
|
186
|
+
*/
|
|
187
|
+
'room-player': (room: Room) => void;
|
|
188
|
+
/**
|
|
189
|
+
* 玩家变更事件
|
|
190
|
+
* @param player 玩家信息
|
|
191
|
+
* @param online 是否在线
|
|
192
|
+
*/
|
|
193
|
+
player: (player: Player, online: boolean) => void;
|
|
194
|
+
/**
|
|
195
|
+
* 返回玩家列表
|
|
196
|
+
* @param players 玩家列表
|
|
197
|
+
*/
|
|
198
|
+
players: (players: Player[]) => void;
|
|
199
|
+
/**
|
|
200
|
+
* 全局命令事件
|
|
201
|
+
* @param command 命令内容
|
|
202
|
+
*/
|
|
203
|
+
command: (data: any & {
|
|
204
|
+
sender: Player;
|
|
205
|
+
}) => void;
|
|
206
|
+
}
|
|
207
|
+
//#endregion
|
|
208
|
+
//#region lib/models/room.d.ts
|
|
209
|
+
interface IRoomOptions {
|
|
210
|
+
/**
|
|
211
|
+
* 房间号
|
|
212
|
+
*/
|
|
213
|
+
id?: string;
|
|
214
|
+
/**
|
|
215
|
+
* 房间名称
|
|
216
|
+
*/
|
|
217
|
+
name?: string;
|
|
218
|
+
/**
|
|
219
|
+
* 房间容量
|
|
220
|
+
*/
|
|
221
|
+
size?: number;
|
|
222
|
+
/**
|
|
223
|
+
* 最小容量
|
|
224
|
+
*/
|
|
225
|
+
minSize?: number;
|
|
226
|
+
/**
|
|
227
|
+
* 其他属性
|
|
228
|
+
*/
|
|
229
|
+
attrs?: Record<string, any>;
|
|
230
|
+
}
|
|
231
|
+
declare enum PlayerRole {
|
|
232
|
+
player = "player",
|
|
233
|
+
watcher = "watcher",
|
|
234
|
+
}
|
|
235
|
+
declare enum RoomStatus {
|
|
236
|
+
waiting = "waiting",
|
|
237
|
+
ready = "ready",
|
|
238
|
+
playing = "playing",
|
|
239
|
+
}
|
|
240
|
+
interface IRoom extends IRoomOptions {
|
|
241
|
+
players: RoomPlayer[];
|
|
242
|
+
}
|
|
243
|
+
interface IRoomPlayerOptions extends PlayerOptions {
|
|
244
|
+
roomId?: string;
|
|
245
|
+
}
|
|
246
|
+
interface IRoomPlayer extends IRoomPlayerOptions, IPlayer {
|
|
247
|
+
isReady: boolean;
|
|
248
|
+
role: PlayerRole;
|
|
249
|
+
isCreator: boolean;
|
|
250
|
+
}
|
|
251
|
+
declare class RoomPlayer extends Player implements IRoomPlayer {
|
|
252
|
+
isReady: boolean;
|
|
253
|
+
role: PlayerRole;
|
|
254
|
+
isCreator: boolean;
|
|
255
|
+
roomId?: string;
|
|
256
|
+
constructor(player: IPlayer | Player, role?: PlayerRole);
|
|
257
|
+
toJSON(): {
|
|
258
|
+
role: PlayerRole;
|
|
259
|
+
isReady: boolean;
|
|
260
|
+
isCreator: boolean;
|
|
261
|
+
id: string;
|
|
262
|
+
name: string;
|
|
263
|
+
attributes: any;
|
|
264
|
+
status: PlayerStatus;
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
declare class Room extends EventEmitter$1 implements IRoom {
|
|
268
|
+
on<K extends keyof RoomEvents>(event: K, listener: RoomEvents[K]): this;
|
|
269
|
+
emit<K extends keyof RoomEvents>(event: K, ...args: Parameters<RoomEvents[K]>): boolean;
|
|
270
|
+
id: string;
|
|
271
|
+
size: number;
|
|
272
|
+
name: string;
|
|
273
|
+
minSize: number;
|
|
274
|
+
attrs?: Record<string, any>;
|
|
275
|
+
players: RoomPlayer[];
|
|
276
|
+
get validPlayers(): RoomPlayer[];
|
|
277
|
+
get watchers(): RoomPlayer[];
|
|
278
|
+
private sender?;
|
|
279
|
+
get isReady(): boolean;
|
|
280
|
+
get status(): RoomStatus;
|
|
281
|
+
get isPlaying(): boolean;
|
|
282
|
+
get isFull(): boolean;
|
|
283
|
+
toJSON(): {
|
|
284
|
+
id: string;
|
|
285
|
+
name: string;
|
|
286
|
+
size: number;
|
|
287
|
+
minSize: number;
|
|
288
|
+
status: RoomStatus;
|
|
289
|
+
players: {
|
|
290
|
+
role: PlayerRole;
|
|
291
|
+
isReady: boolean;
|
|
292
|
+
isCreator: boolean;
|
|
293
|
+
id: string;
|
|
294
|
+
name: string;
|
|
295
|
+
attributes: any;
|
|
296
|
+
status: PlayerStatus;
|
|
297
|
+
}[];
|
|
298
|
+
attrs: Record<string, any> | undefined;
|
|
299
|
+
};
|
|
300
|
+
toString(): string;
|
|
301
|
+
constructor({
|
|
302
|
+
id,
|
|
303
|
+
name,
|
|
304
|
+
size,
|
|
305
|
+
minSize,
|
|
306
|
+
attrs
|
|
307
|
+
}: IRoomOptions);
|
|
308
|
+
addPlayer(player: Player, isCreator?: boolean): RoomPlayer | undefined;
|
|
309
|
+
kickPlayer(playerId: string): RoomPlayer;
|
|
310
|
+
kickPlayer(player: IPlayer): RoomPlayer;
|
|
311
|
+
searchPlayer(playerId: string): RoomPlayer | undefined;
|
|
312
|
+
searchPlayer(playerId: IPlayer): RoomPlayer | undefined;
|
|
313
|
+
start(): boolean;
|
|
314
|
+
end(): boolean;
|
|
315
|
+
setSender(sender: (type: string, ...message: any) => void): this;
|
|
316
|
+
}
|
|
317
|
+
//#endregion
|
|
318
|
+
//#region lib/index.d.ts
|
|
319
|
+
interface ITiaoomOptions {
|
|
320
|
+
socket: Message;
|
|
321
|
+
}
|
|
322
|
+
declare class Tiaoom extends EventEmitter {
|
|
323
|
+
rooms: Room[];
|
|
324
|
+
players: Player[];
|
|
325
|
+
messageInstance?: Message;
|
|
326
|
+
constructor({
|
|
327
|
+
socket
|
|
328
|
+
}: ITiaoomOptions);
|
|
329
|
+
on<K extends keyof TiaoomEvents>(event: K, listener: TiaoomEvents[K]): this;
|
|
330
|
+
emit<K extends keyof TiaoomEvents>(event: K, ...args: Parameters<TiaoomEvents[K]>): boolean;
|
|
331
|
+
run(): this;
|
|
332
|
+
searchPlayer(player: string): Player | undefined;
|
|
333
|
+
searchPlayer(player: PlayerOptions | IRoomPlayerOptions): Player | undefined;
|
|
334
|
+
searchRoom(room: string): Room | undefined;
|
|
335
|
+
searchRoom(room: Partial<IRoomOptions>): Room | undefined;
|
|
336
|
+
createRoom(sender: IPlayer, options: IRoomOptions): Room;
|
|
337
|
+
startRoom(sender: IPlayer, room: IRoom): boolean;
|
|
338
|
+
closeRoom(sender: IPlayer, room: IRoom): IRoom;
|
|
339
|
+
loginPlayer(player: PlayerOptions, cb?: (data: {
|
|
340
|
+
player: Player;
|
|
341
|
+
}) => void): Player;
|
|
342
|
+
joinPlayer(sender: IPlayer, player: IRoomPlayerOptions, isCreator?: boolean): RoomPlayer;
|
|
343
|
+
leavePlayer(sender: IPlayer, player: IRoomPlayerOptions): RoomPlayer;
|
|
344
|
+
readyPlayer(sender: IPlayer, player: IRoomPlayer): this;
|
|
345
|
+
unReadyPlayer(sender: IPlayer, player: IRoomPlayer): this;
|
|
346
|
+
removePlayer(sender: IPlayer): Player;
|
|
347
|
+
}
|
|
348
|
+
//#endregion
|
|
349
|
+
export { IPlayer, IRoom, IRoomOptions, IRoomPlayer, IRoomPlayerOptions, ITiaoomOptions, Message, MessageEvents, MessagePackage, MessageTypes, Player, PlayerEvents, PlayerOptions, PlayerRole, PlayerStatus, Room, RoomEvents, RoomPlayer, RoomStatus, Tiaoom, TiaoomEvents };
|
|
350
|
+
//# sourceMappingURL=index.d.cts.map
|
package/src/index.d.mts
ADDED
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import EventEmitter$1, { EventEmitter } from "events";
|
|
3
|
+
|
|
4
|
+
//#region lib/events/base.d.ts
|
|
5
|
+
interface BaseEvents {
|
|
6
|
+
ready: () => void;
|
|
7
|
+
close: () => void;
|
|
8
|
+
error: (error: Error) => void;
|
|
9
|
+
}
|
|
10
|
+
//#endregion
|
|
11
|
+
//#region lib/events/player.d.ts
|
|
12
|
+
interface PlayerEvents extends BaseEvents {
|
|
13
|
+
/**
|
|
14
|
+
* 加入房间
|
|
15
|
+
**/
|
|
16
|
+
join: (room: Room, player: Player) => void;
|
|
17
|
+
/**
|
|
18
|
+
* 离开房间
|
|
19
|
+
**/
|
|
20
|
+
leave: (room: Room, player: Player) => void;
|
|
21
|
+
/**
|
|
22
|
+
* 玩家状态变化
|
|
23
|
+
**/
|
|
24
|
+
status: (status: PlayerStatus) => void;
|
|
25
|
+
/**
|
|
26
|
+
* 玩家命令
|
|
27
|
+
*/
|
|
28
|
+
command: (message: MessagePackage) => void;
|
|
29
|
+
/**
|
|
30
|
+
* 玩家私信
|
|
31
|
+
**/
|
|
32
|
+
message: (data: string, sender?: Player) => void;
|
|
33
|
+
}
|
|
34
|
+
//#endregion
|
|
35
|
+
//#region lib/models/player.d.ts
|
|
36
|
+
interface PlayerOptions {
|
|
37
|
+
id: string;
|
|
38
|
+
name: string;
|
|
39
|
+
attributes?: any;
|
|
40
|
+
sender?: (type: string, ...message: any) => void;
|
|
41
|
+
}
|
|
42
|
+
declare enum PlayerStatus {
|
|
43
|
+
ready = "ready",
|
|
44
|
+
unready = "unready",
|
|
45
|
+
online = "online",
|
|
46
|
+
playing = "playing",
|
|
47
|
+
}
|
|
48
|
+
interface IPlayer extends PlayerOptions {
|
|
49
|
+
status: PlayerStatus;
|
|
50
|
+
}
|
|
51
|
+
declare class Player extends EventEmitter$1 implements IPlayer {
|
|
52
|
+
on<K extends keyof PlayerEvents>(event: K, listener: PlayerEvents[K]): this;
|
|
53
|
+
emit<K extends keyof PlayerEvents>(event: K, ...args: Parameters<PlayerEvents[K]>): boolean;
|
|
54
|
+
id: string;
|
|
55
|
+
name: string;
|
|
56
|
+
attributes?: any;
|
|
57
|
+
status: PlayerStatus;
|
|
58
|
+
sender?: (type: string, ...message: any) => void;
|
|
59
|
+
constructor({
|
|
60
|
+
id,
|
|
61
|
+
name,
|
|
62
|
+
attributes,
|
|
63
|
+
sender
|
|
64
|
+
}: PlayerOptions);
|
|
65
|
+
toJSON(): {
|
|
66
|
+
id: string;
|
|
67
|
+
name: string;
|
|
68
|
+
attributes: any;
|
|
69
|
+
status: PlayerStatus;
|
|
70
|
+
};
|
|
71
|
+
toString(): string;
|
|
72
|
+
setSender(sender: (type: string, ...message: any) => void): this;
|
|
73
|
+
}
|
|
74
|
+
//#endregion
|
|
75
|
+
//#region lib/models/message.d.ts
|
|
76
|
+
declare enum MessageTypes {
|
|
77
|
+
RoomList = "room.list",
|
|
78
|
+
RoomCreate = "room.create",
|
|
79
|
+
RoomReady = "room.ready",
|
|
80
|
+
RoomStart = "room.start",
|
|
81
|
+
RoomEnd = "room.end",
|
|
82
|
+
RoomClose = "room.close",
|
|
83
|
+
RoomAllReady = "room.allready",
|
|
84
|
+
RoomCommand = "room.command",
|
|
85
|
+
RoomMessage = "room.message",
|
|
86
|
+
PlayerOffline = "player.offline",
|
|
87
|
+
PlayerList = "player.list",
|
|
88
|
+
PlayerLogin = "player.login",
|
|
89
|
+
PlayerLogout = "player.logout",
|
|
90
|
+
PlayerJoin = "player.join",
|
|
91
|
+
PlayerLeave = "player.leave",
|
|
92
|
+
PlayerReady = "player.ready",
|
|
93
|
+
PlayerUnready = "player.unready",
|
|
94
|
+
PlayerCommand = "player.command",
|
|
95
|
+
}
|
|
96
|
+
interface MessagePackage {
|
|
97
|
+
type: MessageTypes | string;
|
|
98
|
+
data?: PlayerOptions | IRoomOptions | IPlayer | IRoom | IRoomPlayer | any;
|
|
99
|
+
sender?: IPlayer | IRoom | IRoomPlayer;
|
|
100
|
+
}
|
|
101
|
+
interface Message extends EventEmitter$1 {
|
|
102
|
+
on<K extends keyof MessageEvents>(event: K, listener: MessageEvents[K]): this;
|
|
103
|
+
emit<K extends keyof MessageEvents>(event: K, ...args: Parameters<MessageEvents[K]>): boolean;
|
|
104
|
+
close(): void;
|
|
105
|
+
send(message: MessagePackage): void;
|
|
106
|
+
}
|
|
107
|
+
//#endregion
|
|
108
|
+
//#region lib/events/message.d.ts
|
|
109
|
+
interface MessageEvents extends BaseEvents {
|
|
110
|
+
/**
|
|
111
|
+
* 服务接收数据
|
|
112
|
+
*/
|
|
113
|
+
message: (data: MessagePackage, cb?: (...params: any) => any) => void;
|
|
114
|
+
}
|
|
115
|
+
//#endregion
|
|
116
|
+
//#region lib/events/room.d.ts
|
|
117
|
+
interface RoomEvents extends BaseEvents {
|
|
118
|
+
/**
|
|
119
|
+
* 加入房间
|
|
120
|
+
**/
|
|
121
|
+
join: (player: IRoomPlayer) => void;
|
|
122
|
+
/**
|
|
123
|
+
* 离开房间
|
|
124
|
+
**/
|
|
125
|
+
leave: (player: IRoomPlayer) => void;
|
|
126
|
+
/**
|
|
127
|
+
* 房间状态变化
|
|
128
|
+
**/
|
|
129
|
+
status: (status: RoomStatus) => void;
|
|
130
|
+
/**
|
|
131
|
+
* 房间聊天
|
|
132
|
+
**/
|
|
133
|
+
message: (data: string) => void;
|
|
134
|
+
/**
|
|
135
|
+
* 玩家发送的房间命令
|
|
136
|
+
*/
|
|
137
|
+
'player-command': (message: MessagePackage) => void;
|
|
138
|
+
/**
|
|
139
|
+
* 房间命令
|
|
140
|
+
*/
|
|
141
|
+
command: (message: MessagePackage) => void;
|
|
142
|
+
/**
|
|
143
|
+
* 房间更新
|
|
144
|
+
*/
|
|
145
|
+
update: (room: IRoom) => void;
|
|
146
|
+
/**
|
|
147
|
+
* 玩家准备
|
|
148
|
+
*/
|
|
149
|
+
'player-ready': (player: IRoomPlayer) => void;
|
|
150
|
+
/**
|
|
151
|
+
* 全部玩家已准备
|
|
152
|
+
*/
|
|
153
|
+
'all-ready': (players: IRoomPlayer[]) => void;
|
|
154
|
+
/**
|
|
155
|
+
* 玩家取消准备
|
|
156
|
+
*/
|
|
157
|
+
'player-unready': (player: IRoomPlayer) => void;
|
|
158
|
+
/**
|
|
159
|
+
* 房间开始游戏
|
|
160
|
+
*/
|
|
161
|
+
start: (room: IRoom) => void;
|
|
162
|
+
/**
|
|
163
|
+
* 房间结束游戏
|
|
164
|
+
*/
|
|
165
|
+
end: (room: IRoom) => void;
|
|
166
|
+
}
|
|
167
|
+
//#endregion
|
|
168
|
+
//#region lib/events/index.d.ts
|
|
169
|
+
/**
|
|
170
|
+
* Tiaoom 广播事件
|
|
171
|
+
*/
|
|
172
|
+
interface TiaoomEvents extends BaseEvents {
|
|
173
|
+
/**
|
|
174
|
+
* 房间创建事件
|
|
175
|
+
* @param room 房间信息
|
|
176
|
+
*/
|
|
177
|
+
room: (room: Room) => void;
|
|
178
|
+
/**
|
|
179
|
+
* 返回房间列表
|
|
180
|
+
* @param rooms 房间列表
|
|
181
|
+
*/
|
|
182
|
+
rooms: (rooms: Room[]) => void;
|
|
183
|
+
/**
|
|
184
|
+
* 房间玩家变更事件
|
|
185
|
+
* @param room 房间信息
|
|
186
|
+
*/
|
|
187
|
+
'room-player': (room: Room) => void;
|
|
188
|
+
/**
|
|
189
|
+
* 玩家变更事件
|
|
190
|
+
* @param player 玩家信息
|
|
191
|
+
* @param online 是否在线
|
|
192
|
+
*/
|
|
193
|
+
player: (player: Player, online: boolean) => void;
|
|
194
|
+
/**
|
|
195
|
+
* 返回玩家列表
|
|
196
|
+
* @param players 玩家列表
|
|
197
|
+
*/
|
|
198
|
+
players: (players: Player[]) => void;
|
|
199
|
+
/**
|
|
200
|
+
* 全局命令事件
|
|
201
|
+
* @param command 命令内容
|
|
202
|
+
*/
|
|
203
|
+
command: (data: any & {
|
|
204
|
+
sender: Player;
|
|
205
|
+
}) => void;
|
|
206
|
+
}
|
|
207
|
+
//#endregion
|
|
208
|
+
//#region lib/models/room.d.ts
|
|
209
|
+
interface IRoomOptions {
|
|
210
|
+
/**
|
|
211
|
+
* 房间号
|
|
212
|
+
*/
|
|
213
|
+
id?: string;
|
|
214
|
+
/**
|
|
215
|
+
* 房间名称
|
|
216
|
+
*/
|
|
217
|
+
name?: string;
|
|
218
|
+
/**
|
|
219
|
+
* 房间容量
|
|
220
|
+
*/
|
|
221
|
+
size?: number;
|
|
222
|
+
/**
|
|
223
|
+
* 最小容量
|
|
224
|
+
*/
|
|
225
|
+
minSize?: number;
|
|
226
|
+
/**
|
|
227
|
+
* 其他属性
|
|
228
|
+
*/
|
|
229
|
+
attrs?: Record<string, any>;
|
|
230
|
+
}
|
|
231
|
+
declare enum PlayerRole {
|
|
232
|
+
player = "player",
|
|
233
|
+
watcher = "watcher",
|
|
234
|
+
}
|
|
235
|
+
declare enum RoomStatus {
|
|
236
|
+
waiting = "waiting",
|
|
237
|
+
ready = "ready",
|
|
238
|
+
playing = "playing",
|
|
239
|
+
}
|
|
240
|
+
interface IRoom extends IRoomOptions {
|
|
241
|
+
players: RoomPlayer[];
|
|
242
|
+
}
|
|
243
|
+
interface IRoomPlayerOptions extends PlayerOptions {
|
|
244
|
+
roomId?: string;
|
|
245
|
+
}
|
|
246
|
+
interface IRoomPlayer extends IRoomPlayerOptions, IPlayer {
|
|
247
|
+
isReady: boolean;
|
|
248
|
+
role: PlayerRole;
|
|
249
|
+
isCreator: boolean;
|
|
250
|
+
}
|
|
251
|
+
declare class RoomPlayer extends Player implements IRoomPlayer {
|
|
252
|
+
isReady: boolean;
|
|
253
|
+
role: PlayerRole;
|
|
254
|
+
isCreator: boolean;
|
|
255
|
+
roomId?: string;
|
|
256
|
+
constructor(player: IPlayer | Player, role?: PlayerRole);
|
|
257
|
+
toJSON(): {
|
|
258
|
+
role: PlayerRole;
|
|
259
|
+
isReady: boolean;
|
|
260
|
+
isCreator: boolean;
|
|
261
|
+
id: string;
|
|
262
|
+
name: string;
|
|
263
|
+
attributes: any;
|
|
264
|
+
status: PlayerStatus;
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
declare class Room extends EventEmitter$1 implements IRoom {
|
|
268
|
+
on<K extends keyof RoomEvents>(event: K, listener: RoomEvents[K]): this;
|
|
269
|
+
emit<K extends keyof RoomEvents>(event: K, ...args: Parameters<RoomEvents[K]>): boolean;
|
|
270
|
+
id: string;
|
|
271
|
+
size: number;
|
|
272
|
+
name: string;
|
|
273
|
+
minSize: number;
|
|
274
|
+
attrs?: Record<string, any>;
|
|
275
|
+
players: RoomPlayer[];
|
|
276
|
+
get validPlayers(): RoomPlayer[];
|
|
277
|
+
get watchers(): RoomPlayer[];
|
|
278
|
+
private sender?;
|
|
279
|
+
get isReady(): boolean;
|
|
280
|
+
get status(): RoomStatus;
|
|
281
|
+
get isPlaying(): boolean;
|
|
282
|
+
get isFull(): boolean;
|
|
283
|
+
toJSON(): {
|
|
284
|
+
id: string;
|
|
285
|
+
name: string;
|
|
286
|
+
size: number;
|
|
287
|
+
minSize: number;
|
|
288
|
+
status: RoomStatus;
|
|
289
|
+
players: {
|
|
290
|
+
role: PlayerRole;
|
|
291
|
+
isReady: boolean;
|
|
292
|
+
isCreator: boolean;
|
|
293
|
+
id: string;
|
|
294
|
+
name: string;
|
|
295
|
+
attributes: any;
|
|
296
|
+
status: PlayerStatus;
|
|
297
|
+
}[];
|
|
298
|
+
attrs: Record<string, any> | undefined;
|
|
299
|
+
};
|
|
300
|
+
toString(): string;
|
|
301
|
+
constructor({
|
|
302
|
+
id,
|
|
303
|
+
name,
|
|
304
|
+
size,
|
|
305
|
+
minSize,
|
|
306
|
+
attrs
|
|
307
|
+
}: IRoomOptions);
|
|
308
|
+
addPlayer(player: Player, isCreator?: boolean): RoomPlayer | undefined;
|
|
309
|
+
kickPlayer(playerId: string): RoomPlayer;
|
|
310
|
+
kickPlayer(player: IPlayer): RoomPlayer;
|
|
311
|
+
searchPlayer(playerId: string): RoomPlayer | undefined;
|
|
312
|
+
searchPlayer(playerId: IPlayer): RoomPlayer | undefined;
|
|
313
|
+
start(): boolean;
|
|
314
|
+
end(): boolean;
|
|
315
|
+
setSender(sender: (type: string, ...message: any) => void): this;
|
|
316
|
+
}
|
|
317
|
+
//#endregion
|
|
318
|
+
//#region lib/index.d.ts
|
|
319
|
+
interface ITiaoomOptions {
|
|
320
|
+
socket: Message;
|
|
321
|
+
}
|
|
322
|
+
declare class Tiaoom extends EventEmitter {
|
|
323
|
+
rooms: Room[];
|
|
324
|
+
players: Player[];
|
|
325
|
+
messageInstance?: Message;
|
|
326
|
+
constructor({
|
|
327
|
+
socket
|
|
328
|
+
}: ITiaoomOptions);
|
|
329
|
+
on<K extends keyof TiaoomEvents>(event: K, listener: TiaoomEvents[K]): this;
|
|
330
|
+
emit<K extends keyof TiaoomEvents>(event: K, ...args: Parameters<TiaoomEvents[K]>): boolean;
|
|
331
|
+
run(): this;
|
|
332
|
+
searchPlayer(player: string): Player | undefined;
|
|
333
|
+
searchPlayer(player: PlayerOptions | IRoomPlayerOptions): Player | undefined;
|
|
334
|
+
searchRoom(room: string): Room | undefined;
|
|
335
|
+
searchRoom(room: Partial<IRoomOptions>): Room | undefined;
|
|
336
|
+
createRoom(sender: IPlayer, options: IRoomOptions): Room;
|
|
337
|
+
startRoom(sender: IPlayer, room: IRoom): boolean;
|
|
338
|
+
closeRoom(sender: IPlayer, room: IRoom): IRoom;
|
|
339
|
+
loginPlayer(player: PlayerOptions, cb?: (data: {
|
|
340
|
+
player: Player;
|
|
341
|
+
}) => void): Player;
|
|
342
|
+
joinPlayer(sender: IPlayer, player: IRoomPlayerOptions, isCreator?: boolean): RoomPlayer;
|
|
343
|
+
leavePlayer(sender: IPlayer, player: IRoomPlayerOptions): RoomPlayer;
|
|
344
|
+
readyPlayer(sender: IPlayer, player: IRoomPlayer): this;
|
|
345
|
+
unReadyPlayer(sender: IPlayer, player: IRoomPlayer): this;
|
|
346
|
+
removePlayer(sender: IPlayer): Player;
|
|
347
|
+
}
|
|
348
|
+
//#endregion
|
|
349
|
+
export { IPlayer, IRoom, IRoomOptions, IRoomPlayer, IRoomPlayerOptions, ITiaoomOptions, Message, MessageEvents, MessagePackage, MessageTypes, Player, PlayerEvents, PlayerOptions, PlayerRole, PlayerStatus, Room, RoomEvents, RoomPlayer, RoomStatus, Tiaoom, TiaoomEvents };
|
|
350
|
+
//# sourceMappingURL=index.d.mts.map
|